* Bug #15072 fixed: The context was stored as a root diagram attribute instead of...
[scilab.git] / scilab / modules / xcos / src / java / org / scilab / modules / xcos / actions / SetContextAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Allan SIMON
4  * Copyright (C) 2010 - DIGITEO - Clement DAVID
5  * Copyright (C) 2011-2015 - Scilab Enterprises - Clement DAVID
6  *
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  *
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.
15  *
16  */
17
18 package org.scilab.modules.xcos.actions;
19
20 import java.awt.event.ActionEvent;
21
22 import org.scilab.modules.graph.ScilabComponent;
23 import org.scilab.modules.graph.ScilabGraph;
24 import org.scilab.modules.gui.menuitem.MenuItem;
25 import org.scilab.modules.xcos.Kind;
26 import org.scilab.modules.xcos.Xcos;
27 import org.scilab.modules.xcos.actions.dialog.SetContextDialog;
28 import org.scilab.modules.xcos.graph.ScicosParameters;
29 import org.scilab.modules.xcos.graph.XcosDiagram;
30 import org.scilab.modules.xcos.graph.model.ScicosObjectOwner;
31 import org.scilab.modules.xcos.utils.XcosMessages;
32
33 /**
34  * Opens context settings Window
35  */
36 @SuppressWarnings(value = { "serial" })
37 public final class SetContextAction extends SimulationNotRunningAction {
38     /** Name of the action */
39     public static final String NAME = XcosMessages.SET_CONTEXT;
40     /** Icon name of the action */
41     public static final String SMALL_ICON = "";
42     /** Mnemonic key of the action */
43     public static final int MNEMONIC_KEY = 0;
44     /** Accelerator key for the action */
45     public static final int ACCELERATOR_KEY = 0;
46
47     /**
48      * Constructor
49      *
50      * @param scilabGraph
51      *            corresponding Scilab Graph
52      */
53     public SetContextAction(ScilabGraph scilabGraph) {
54         super(scilabGraph);
55     }
56
57     /**
58      * Create the associated menu
59      *
60      * @param scilabGraph
61      *            corresponding Scilab Graph
62      * @return the menu
63      */
64     public static MenuItem createMenu(ScilabGraph scilabGraph) {
65         return createMenu(scilabGraph, SetContextAction.class);
66     }
67
68     /**
69      * Action !
70      *
71      * @param e
72      *            the event
73      * @see org.scilab.modules.gui.events.callback.CallBack#actionPerformed(java.awt.event.ActionEvent)
74      */
75     @Override
76     public void actionPerformed(ActionEvent e) {
77         final XcosDiagram graph = (XcosDiagram) getGraph(e);
78
79         // action disabled when the cell is edited
80         final ScilabComponent comp = ((ScilabComponent) graph.getAsComponent());
81         if (comp.isEditing()) {
82             return;
83         }
84
85         ScicosObjectOwner current = new ScicosObjectOwner(graph.getUID(), graph.getKind());
86         final SetContextDialog dialog = new SetContextDialog(comp, graph, new ScicosParameters(Xcos.findRoot(graph), current));
87
88         dialog.pack();
89         dialog.setVisible(true);
90     }
91 }