bazaar4idea.ui.BzrPullDialog.java Source code

Java tutorial

Introduction

Here is the source code for bazaar4idea.ui.BzrPullDialog.java

Source

// 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;
    }
}