2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2009 - DIGITEO - Vincent COUVERT
4 * Copyright (C) 2010 - DIGITEO - Clement DAVID
5 * Copyright (C) 2011-2015 - Scilab Enterprises - Clement DAVID
7 * Copyright (C) 2012 - 2016 - Scilab Enterprises
9 * This file is hereby licensed under the terms of the GNU GPL v2.0,
10 * pursuant to article 5.3.4 of the CeCILL v.2.1.
11 * This file was originally licensed under the terms of the CeCILL v2.1,
12 * and continues to be available under such terms.
13 * For more information, see the COPYING file which you should have received
14 * along with this program.
18 package org.scilab.modules.xcos.block.actions;
20 import java.awt.Toolkit;
21 import java.awt.event.ActionEvent;
22 import java.awt.event.KeyEvent;
24 import org.scilab.modules.graph.ScilabGraph;
25 import org.scilab.modules.graph.actions.base.DefaultAction;
26 import org.scilab.modules.gui.menuitem.MenuItem;
27 import org.scilab.modules.xcos.JavaController;
28 import org.scilab.modules.xcos.Kind;
29 import org.scilab.modules.xcos.ObjectProperties;
30 import org.scilab.modules.xcos.Xcos;
31 import org.scilab.modules.xcos.XcosTab;
32 import org.scilab.modules.xcos.XcosView;
33 import org.scilab.modules.xcos.graph.XcosDiagram;
34 import org.scilab.modules.xcos.utils.XcosMessages;
37 * Show the parent graph (only installed on a {@link SuperBlockDiagram})
39 @SuppressWarnings(value = { "serial" })
40 public class ShowParentAction extends DefaultAction {
41 /** Name of the action */
42 public static final String NAME = XcosMessages.SHOW_PARENT;
43 /** Icon name of the action */
44 public static final String SMALL_ICON = "";
45 /** Mnemonic key of the action */
46 public static final int MNEMONIC_KEY = KeyEvent.VK_HOME;
47 /** Accelerator key for the action */
48 public static final int ACCELERATOR_KEY = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
56 public ShowParentAction(ScilabGraph scilabGraph) {
61 * Menu added to the menubar
67 public static MenuItem createMenu(ScilabGraph scilabGraph) {
68 return createMenu(scilabGraph, ShowParentAction.class);
74 * @see org.scilab.modules.graph.actions.base.DefaultAction#actionPerformed(java.awt.event.ActionEvent)
77 public void actionPerformed(ActionEvent e) {
78 final XcosDiagram graph = (XcosDiagram) getGraph(e);
80 if (graph.getKind() == Kind.BLOCK) {
81 JavaController controller = new JavaController();
82 long[] parent = new long[1];
83 Kind kind = Kind.BLOCK;
84 controller.getObjectProperty(graph.getUID(), kind, ObjectProperties.PARENT_BLOCK, parent);
87 controller.getObjectProperty(graph.getUID(), kind, ObjectProperties.PARENT_DIAGRAM, parent);
90 XcosView view = (XcosView) JavaController.lookup_view(Xcos.class.getName());
92 XcosDiagram diagram = (XcosDiagram) view.getVisibleObjects().get(parent[0]);
93 if (diagram == null) {
94 String[] strUID = new String[] { "" };
95 controller.getObjectProperty(graph.getUID(), kind, ObjectProperties.UID, strUID);
97 diagram = new XcosDiagram(controller, parent[0], kind, strUID[0]);
98 view.getVisibleObjects().put(parent[0], diagram);
101 final XcosTab tab = XcosTab.get(diagram);
103 XcosTab.restore(diagram);