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

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

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

import com.intellij.psi.xml.XmlFile;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.mevenide.idea.editor.pom.ui.AbstractPomLayerPanel;
import org.mevenide.idea.psi.project.PsiResourcePatterns;
import org.mevenide.idea.psi.project.PsiResources;
import org.mevenide.idea.util.ui.SplitPanel;
import org.mevenide.idea.util.ui.table.CRUDTablePanel;

/**
* @author Arik
*/
public class ResourcesPanel extends AbstractPomLayerPanel implements ListSelectionListener {
    private final CRUDTablePanel<ResourcesTableModel> resources;
    private final CRUDTablePanel<ResourcePatternsTableModel> includes;
    private final CRUDTablePanel<ResourcePatternsTableModel> excludes;

    private final PsiResources psiResources;

    public ResourcesPanel(final PsiResources pPsiResources) {
        psiResources = pPsiResources;

        final XmlFile xmlFile = psiResources.getXmlFile();

        final ResourcesTableModel resourcesModel = new ResourcesTableModel(psiResources);
        resources = new CRUDTablePanel<ResourcesTableModel>(xmlFile, resourcesModel);

        final PsiResourcePatterns psiIncl = psiResources.getIncludes(-1);
        final ResourcePatternsTableModel includesModel;
        includesModel = new ResourcePatternsTableModel(psiIncl);
        includes = new CRUDTablePanel<ResourcePatternsTableModel>(xmlFile, includesModel);
        includes.getAddButton().setEnabled(false);
        includes.getRemoveButton().setEnabled(false);

        final ResourcePatternsTableModel excludesModel;
        excludesModel = new ResourcePatternsTableModel(psiResources.getExcludes(-1));
        excludes = new CRUDTablePanel<ResourcePatternsTableModel>(xmlFile, excludesModel);
        excludes.getAddButton().setEnabled(false);
        excludes.getRemoveButton().setEnabled(false);

        final JTable depsTable = resources.getComponent();
        depsTable.getSelectionModel().addListSelectionListener(this);

        final SplitPanel<JPanel, JPanel> patternsSplit;
        patternsSplit = new SplitPanel<JPanel, JPanel>(includes,
                                                       excludes,
                                                       true,
                                                       false);

        final SplitPanel<JPanel, JPanel> split;
        split = new SplitPanel<JPanel, JPanel>(resources, patternsSplit, true);

        setLayout(new BorderLayout());
        add(split, BorderLayout.CENTER);
    }

    public void valueChanged(final ListSelectionEvent pEvent) {
        final int row = resources.getSelectedRow();

        final PsiResourcePatterns psiIncludes = psiResources.getIncludes(row);
        includes.setTableModel(new ResourcePatternsTableModel(psiIncludes));

        final PsiResourcePatterns psiExcludes = psiResources.getExcludes(row);
        excludes.setTableModel(new ResourcePatternsTableModel(psiExcludes));

        includes.getAddButton().setEnabled(row >= 0);
        includes.getRemoveButton().setEnabled(row >= 0);

        excludes.getAddButton().setEnabled(row >= 0);
        excludes.getRemoveButton().setEnabled(row >= 0);
    }
}
TOP

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

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.