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

Source Code of org.mevenide.idea.editor.pom.ui.build.SourcesPanel

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

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.util.ui.CustomFormsComponentFactory;
import org.mevenide.idea.util.ui.UIUtils;

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

    /**
     * The source code directory field.
     */
    private final JTextField sourceDirField = new JTextField();

    /**
     * The aspects source code directory field.
     */
    private final JTextField aspectSourceDirField = new JTextField();

    /**
     * The resources panel.
     */
    private final ResourcesPanel resourcesPanel;
    private final BeanAdapter model;

    /**
     * Creates an instance for the given project and document.
     */
    public SourcesPanel(final PsiProject pProject) {
        model = new BeanAdapter(pProject, true);

        resourcesPanel = new ResourcesPanel(pProject.getResources());
        layoutComponents();
        bindComponents();
    }

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

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

        c = new GridBagConstraints();
        c.fill = BOTH;
        c.gridy = 1;
        c.weightx = 1;
        c.weighty = 1;
        add(resourcesPanel, c);
        UIUtils.installBorder(resourcesPanel, 10, 0, 0, 0);
    }

    private void bindComponents() {
        Bindings.bind(sourceDirField, model.getValueModel("sourceDirectory"));
        Bindings.bind(aspectSourceDirField, model.getValueModel("aspectSourceDirectory"));
    }

    /**
     * Creates the directories panel.
     *
     * @return panel
     */
    protected JPanel createDirectoriesPanel() {
        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("src.dirs.title"));
        builder.append(RES.get("java.src.dir"), sourceDirField);
        builder.append(RES.get("aspect.src.dir"), aspectSourceDirField);
        builder.appendSeparator(RES.get("conf.dirs.title"));
        return builder.getPanel();
    }
}
TOP

Related Classes of org.mevenide.idea.editor.pom.ui.build.SourcesPanel

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.