All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ingenias.editor.ObjectTreeMenuEntries Maven / Gradle / Ivy

There is a newer version: 1.0.11
Show newest version

/** 
 * Copyright (C) 2010  Jorge J. Gomez-Sanz
 * 
 * This file is part of the INGENME tool. INGENME is an open source meta-editor
 * which produces customized editors for user-defined modeling languages
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation version 3 of the License
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see 
 **/

package ingenias.editor;

import ingenias.editor.entities.Entity;
import ingenias.editor.utils.DialogWindows;
import ingenias.exception.NotInitialised;
import ingenias.exception.NullEntity;
import ingenias.generator.browser.AttributedElement;
import ingenias.generator.browser.Browser;
import ingenias.generator.browser.BrowserImp;
import ingenias.generator.browser.Graph;
import ingenias.generator.browser.GraphAttribute;
import ingenias.generator.browser.GraphEntity;

import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.util.Enumeration;
import java.util.Hashtable;

import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;

import org.jgraph.JGraph;

public class ObjectTreeMenuEntries {

	private IDEState ids;
	private GUIResources resources;
	private Browser browser;

	public ObjectTreeMenuEntries(IDEState ids, GUIResources resources){
		this.ids=ids;
		this.resources=resources;
		browser=new BrowserImp(ids);
	}

	public JPopupMenu menuObjectTree(MouseEvent me1) {
		JPopupMenu menu = new JPopupMenu();
		final MouseEvent me = me1;
		final TreePath tp = ids.om.arbolObjetos.getSelectionPath();
		final TreePath[] tps = ids.om.arbolObjetos.getSelectionPaths();

		if (tp != null && ids.gm.getModel(tp.getPath()) == null) {
			JGraph jg = ids.gm.getCurrent();
			final javax.swing.tree.DefaultMutableTreeNode dmtn =
					(javax.swing.tree.DefaultMutableTreeNode) tp.getLastPathComponent();

			if (dmtn != null && dmtn.getUserObject()instanceof Entity) {
				Entity entity=(Entity) dmtn.getUserObject();


				// Edit
				menu.add(
						new AbstractAction("Add to current graph") {

							public void actionPerformed(ActionEvent e) {


								Entity sel = (Entity) dmtn.getUserObject();
								ids.editor.insertDuplicated(new Point(0, 0), sel);
								ids.otherChange();
							}
						});

				menu.add(
						new AbstractAction("Edit") {

							public void actionPerformed(ActionEvent e) {

								Entity sel = (Entity) dmtn.getUserObject();
								ingenias.editor.editiondialog.GeneralEditionFrame jf = new ingenias.editor.editiondialog.GeneralEditionFrame(ids.editor, 
										ids.om,ids.gm, resources.getMainFrame(),
										"Edit " + sel.getId(), sel);

								jf.setLocation(DialogWindows.getCenter(jf.getSize(),resources.getMainFrame()));
								jf.pack();
								jf.setVisible(true);
								if (jf.getStatus()==jf.ACCEPTED){
									ids.om.reload();								
									resources.getArbolObjetos().invalidate();								
									resources.getMainFrame().repaint();
									ids.setChanged(true);
									resources.setUnChanged();
								}
							}
						});

				menu.add(
						new AbstractAction("Remove") {

							public void actionPerformed(ActionEvent e) {
								for (int k=0;k
  • Explicit occurrences:
      "); Graph[] graphs=browser.getGraphs(); for (int k=0;k"+graphs[k].getName()+""); } } catch (NullEntity e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } result.append("
  • Occurrences inside other entities:
      "); graphs=browser.getGraphs(); for (int k=0;k()); } if (found){ result.append("
    • "+graphs[k].getName()+" inside entity "+ges[j].getID()+" "); } } catch (NullEntity e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IllegalAccessException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } result.append("
  • "); resources.getSearchDiagramPanel().setText(result.toString()); resources.focusSearchPane(); } } }); } else { menu.add( new AbstractAction("Expand") { public void actionPerformed(ActionEvent e){ Enumeration enumNodes=dmtn.depthFirstEnumeration(); while (enumNodes.hasMoreElements()){ DefaultMutableTreeNode next=enumNodes.nextElement(); resources.getArbolObjetos().expandPath(new TreePath(next.getPath())); } } }); } } return menu; } public static boolean isUsedInAtts(GraphEntity original, AttributedElement tested, Browser browser, Hashtable checked) throws IllegalAccessException, NullEntity{ boolean used=false; GraphAttribute [] fs=tested.getAllAttrs(); for (int j=0;j




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy