Package de.FeatureModellingTool.ElementLocating

Source Code of de.FeatureModellingTool.ElementLocating.ElementLocatingImplementation$InfoExplorer2Probe

package de.FeatureModellingTool.ElementLocating;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

import org.jdesktop.swingx.JXTreeTable;

import de.FeatureModellingTool.FeatureModel.CFRelation;
import de.FeatureModellingTool.FeatureModel.Constraint;
import de.FeatureModellingTool.FeatureModel.Feature;
import de.FeatureModellingTool.FeatureModel.FeatureRelation;
import de.FeatureModellingTool.FeatureModel.Interaction;
import de.FeatureModellingTool.FeatureModel.ResourceComponent;
import de.FeatureModellingTool.GraphicalEditor.ElementLocator;
import de.FeatureModellingTool.InfoExplorer.InfoExplorer;
import de.FeatureModellingTool.InfoExplorer2.FeatureNode;
import de.FeatureModellingTool.InfoExplorer2.InfoExplorer2;
import de.reuse.Context;
import de.reuse.ContextImplementation;

/**
* Created by IntelliJ IDEA.
* User: saturn
* Date: 2004-5-3
* Time: 14:50:05
* To change this template use File | Settings | File Templates.
*/
class ElementLocatingImplementation implements ElementLocating, ConstantDefinition{

    protected InfoExplorer infoExplorer = null;
    protected InfoExplorer2 infoExplorer2 = null;
    protected ElementLocator elementLocator = null;

    protected final ContextImplementation context = new ContextImplementation();

    private InfoExplorerProbe infoExplorerProbe = new InfoExplorerProbe();
    private InfoExplorer2Probe infoExplorer2Probe = new InfoExplorer2Probe();

    public Context getContext() {
        return context;
    }

    public ElementLocatingImplementation(){
        context.addContextChangeListener(new ContextChangeListener());
    }

    protected class ContextChangeListener implements PropertyChangeListener {
        public void propertyChange(PropertyChangeEvent e) {
            contextChange(e);
        }
    }

    protected void contextChange(PropertyChangeEvent e) {
        String propertyName = e.getPropertyName();

        if (INFO_EXPLORER.equals(propertyName)) {
            infoExplorer = (InfoExplorer) e.getNewValue();
            infoExplorer.getContext().getMVContext().addValue("mouseListener", infoExplorerProbe);
        } else if (INFO_EXPLORER2.equals(propertyName)) {
            infoExplorer2 = (InfoExplorer2) e.getNewValue();
            infoExplorer2.getContext().getMVContext().addValue("mouseListener", infoExplorer2Probe);
        } else if (ELEMENT_LOCATOR.equals(propertyName)) {
            elementLocator = (ElementLocator) e.getNewValue();
        }
    }

    protected class InfoExplorerProbe extends MouseAdapter {
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                Object object = e.getSource();
                if (!(object instanceof JTree)) return;

                JTree tree = (JTree) object;
                TreePath tp = tree.getPathForLocation(e.getX(), e.getY());
                if (tp == null) return;

                Object node = tp.getLastPathComponent();

                if ((node == null) || (!(node instanceof DefaultMutableTreeNode)))return;

                Object userObject = ((DefaultMutableTreeNode)node).getUserObject();

                String id = null;

                if (userObject instanceof String) return;

                if (userObject instanceof Feature){
                    id = ((Feature)userObject).getID();
                } else if (userObject instanceof ResourceComponent){
                    id = ((ResourceComponent)userObject).getID();
                } else if (userObject instanceof FeatureRelation){
                    id = ((FeatureRelation)userObject).getID();
                } else if (userObject instanceof Constraint){
                    id = ((Constraint)userObject).getID();
                } else if (userObject instanceof CFRelation){
                    id = ((CFRelation)userObject).getID();
                } else if (userObject instanceof Interaction){
                    id = ((Interaction)userObject).getID();
                }

                if (id == null) return;

                if (elementLocator != null){
                    elementLocator.locateInDefinitionView(id);
                }

            }
        }

        public void mousePressed(MouseEvent e) {
            if (e.getClickCount() == 1) {
                Object object = e.getSource();
                if (!(object instanceof JTree)) return;

                JTree tree = (JTree) object;
                TreePath tp = tree.getPathForLocation(e.getX(), e.getY());
                if (tp == null) return;

                Object node = tp.getLastPathComponent();

                if ((node == null) || (!(node instanceof DefaultMutableTreeNode)))return;

                Object userObject = ((DefaultMutableTreeNode)node).getUserObject();

                String id = null;

                if (userObject instanceof String) return;

                if (userObject instanceof Feature){
                    id = ((Feature)userObject).getID();
                } else if (userObject instanceof ResourceComponent){
                    id = ((ResourceComponent)userObject).getID();
                } else if (userObject instanceof FeatureRelation){
                    id = ((FeatureRelation)userObject).getID();
                } else if (userObject instanceof Constraint){
                    id = ((Constraint)userObject).getID();
                } else if (userObject instanceof CFRelation){
                    id = ((CFRelation)userObject).getID();
                } else if (userObject instanceof Interaction){
                    id = ((Interaction)userObject).getID();
                }

                if (id == null) return;

                if (elementLocator != null){
                    elementLocator.locateInCurrentView(id);
                }
            }
        }
    }
   
    protected class InfoExplorer2Probe extends MouseAdapter {
        public void mouseClicked(MouseEvent e) {
//            if (e.getClickCount() != 2)
//          return;

            Object object = e.getSource();
            if (!(object instanceof JXTreeTable)) return;

            JXTreeTable treeTable = (JXTreeTable) object;
            TreePath tp = treeTable.getPathForLocation(e.getX(), e.getY());
            if (tp == null) return;

            Object node = tp.getLastPathComponent();

            if ((node == null) || (!(node instanceof FeatureNode)))return;

            FeatureNode featureNode = (FeatureNode)node;
           
            if (featureNode.getNodeType() != FeatureNode.NODE_TYPE_NORMAL)
          return;
           
            String featureId = featureNode.getFeature().getID();
            if (featureId == null)
          return;
            if (elementLocator != null){
          if (e.getClickCount() == 1)
              elementLocator.locateInCurrentView(featureId);
          else
              elementLocator.locateInDefinitionView(featureId);
            }           
        }
       
        public void mousePressed(MouseEvent e) {
            //if (e.getClickCount() != 1)
          //return;

            Object object = e.getSource();
            if (!(object instanceof JXTreeTable)) return;

            JXTreeTable treeTable = (JXTreeTable) object;
            TreePath tp = treeTable.getPathForLocation(e.getX(), e.getY());
            if (tp == null) return;

            Object node = tp.getLastPathComponent();

            if ((node == null) || (!(node instanceof FeatureNode)))return;

            FeatureNode featureNode = (FeatureNode)node;
           
            if (featureNode.getNodeType() != FeatureNode.NODE_TYPE_NORMAL)
          return;
           
            String featureId = featureNode.getFeature().getID();
            if (featureId == null)
          return;
            if (elementLocator != null){
                elementLocator.locateInCurrentView(featureId);
            }           
        }       
    }

}
TOP

Related Classes of de.FeatureModellingTool.ElementLocating.ElementLocatingImplementation$InfoExplorer2Probe

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.