Java tutorial
// Copyright 2009 Victor Iacoban // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software distributed under // the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, // either express or implied. See the License for the specific language governing permissions and // limitations under the License. package bazaar4idea.ui; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import org.apache.commons.lang.StringUtils; import bazaar4idea.command.BzrShowConfigCommand; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Collection; public class BzrPullDialog extends DialogWrapper { private final Project project; private BzrRepositorySelectorComponent hgRepositorySelector; private JTextField sourceTxt; private JPanel mainPanel; public BzrPullDialog(Project project) { super(project, false); this.project = project; hgRepositorySelector.setTitle("Select repository to pull changesets for"); hgRepositorySelector.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onChangeRepository(); } }); DocumentListener documentListener = new DocumentListener() { public void insertUpdate(DocumentEvent e) { onChangePullSource(); } public void removeUpdate(DocumentEvent e) { onChangePullSource(); } public void changedUpdate(DocumentEvent e) { onChangePullSource(); } }; sourceTxt.getDocument().addDocumentListener(documentListener); setTitle("Pull"); init(); } public VirtualFile getRepository() { return hgRepositorySelector.getRepository(); } public String getSource() { return sourceTxt.getText(); } public void setRoots(Collection<VirtualFile> repos) { hgRepositorySelector.setRoots(repos); onChangeRepository(); } protected JComponent createCenterPanel() { return mainPanel; } private void onChangeRepository() { VirtualFile repo = hgRepositorySelector.getRepository(); BzrShowConfigCommand configCommand = new BzrShowConfigCommand(project); String defaultPath = configCommand.getDefaultPath(repo); sourceTxt.setText(defaultPath); onChangePullSource(); } private void onChangePullSource() { setOKActionEnabled(StringUtils.isNotBlank(sourceTxt.getText())); } { // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< // DO NOT EDIT OR ADD ANY CODE HERE! $$$setupUI$$$(); } /** Method generated by IntelliJ IDEA GUI Designer * >>> IMPORTANT!! <<< * DO NOT edit this method OR call it in your code! * @noinspection ALL */ private void $$$setupUI$$$() { mainPanel = new JPanel(); mainPanel.setLayout(new GridLayoutManager(3, 1, new Insets(0, 0, 0, 0), -1, -1)); hgRepositorySelector = new BzrRepositorySelectorComponent(); mainPanel.add(hgRepositorySelector.$$$getRootComponent$$$(), new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); final Spacer spacer1 = new Spacer(); mainPanel.add(spacer1, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false)); final JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayoutManager(2, 2, new Insets(0, 0, 0, 0), -1, -1)); mainPanel.add(panel1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); final JLabel label1 = new JLabel(); label1.setText("Pull From:"); panel1.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final Spacer spacer2 = new Spacer(); panel1.add(spacer2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false)); sourceTxt = new JTextField(); panel1.add(sourceTxt, new GridConstraints(1, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); } /** @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return mainPanel; } }