Package org.mevenide.idea.editor.pom.ui.scm

Source Code of org.mevenide.idea.editor.pom.ui.scm.ScmPanel

package org.mevenide.idea.editor.pom.ui.scm;

import com.jgoodies.binding.adapter.Bindings;
import com.jgoodies.binding.beans.BeanAdapter;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;
import java.awt.*;
import static java.awt.GridBagConstraints.BOTH;
import javax.swing.*;
import org.mevenide.idea.Res;
import org.mevenide.idea.editor.pom.ui.AbstractPomLayerPanel;
import org.mevenide.idea.psi.project.PsiProject;
import org.mevenide.idea.psi.project.PsiScmRepository;
import org.mevenide.idea.util.ui.CustomFormsComponentFactory;
import org.mevenide.idea.util.ui.LabeledPanel;
import org.mevenide.idea.util.ui.SplitPanel;

/**
* @author Arik
*/
public class ScmPanel extends AbstractPomLayerPanel {
    /**
     * Resources
     */
    private static final Res RES = Res.getInstance(ScmPanel.class);

    private final JTextField anonymousConnection = new JTextField();
    private final JTextField developerConnection = new JTextField();
    private final JTextField browseUrl = new JTextField();

    private final JPanel versionsPanel;
    private final JPanel branchesPanel;

    protected final PsiScmRepository scmRepository;
    protected final BeanAdapter model;

    public ScmPanel(final PsiProject pProject) {
        scmRepository = pProject.getScmRepository();
        model = new BeanAdapter(scmRepository, true);

        bindComponents();

        versionsPanel = new VersionsPanel(pProject);
        branchesPanel = new BranchesPanel(pProject);

        layoutComponents();
    }

    private void layoutComponents() {
        setLayout(new GridBagLayout());
        GridBagConstraints c;

        c = new GridBagConstraints();
        c.fill = BOTH;
        add(createRepositoryPanel(), c);

        c = new GridBagConstraints();
        c.fill = BOTH;
        c.gridy = 1;
        c.weightx = 1;
        c.weighty = 1;
        final SplitPanel<JPanel, JPanel> splitPanel = new SplitPanel<JPanel, JPanel>(
                new LabeledPanel(RES.get("versions.desc"), versionsPanel),
                new LabeledPanel(RES.get("branches.desc"), branchesPanel),
                false);
        add(splitPanel, c);
    }

    private void bindComponents() {
        Bindings.bind(anonymousConnection, model.getValueModel("anonymousConnection"));
        Bindings.bind(developerConnection, model.getValueModel("developerConnection"));
        Bindings.bind(browseUrl, model.getValueModel("url"));
    }

    private JPanel createRepositoryPanel() {
        final FormLayout layout = new FormLayout("right:min, 2dlu, fill:pref:grow");
        DefaultFormBuilder builder = new DefaultFormBuilder(layout);
        builder.setComponentFactory(CustomFormsComponentFactory.getInstance());

        //
        //repository
        //
        builder.appendSeparator(RES.get("repository.title"));
        builder.append(RES.get("scm.anonymous.connection"), anonymousConnection);
        builder.append(RES.get("scm.developer.connection"), developerConnection);
        builder.append(RES.get("scm.browse.url"), browseUrl);
        builder.appendSeparator(RES.get("versions.title"));
        return builder.getPanel();
    }
}
TOP

Related Classes of org.mevenide.idea.editor.pom.ui.scm.ScmPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.