Browsevar: Use the constant instead of the hardcoded value
[scilab.git] / scilab / modules / ui_data / src / java / org / scilab / modules / ui_data / variablebrowser / actions / DeleteAction.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Vincent COUVERT
4  * Copyright (C) 2013 - S/E - Sylvestre Ledru
5  *
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at
10  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  *
12  */
13
14 package org.scilab.modules.ui_data.variablebrowser.actions;
15
16 import org.scilab.modules.ui_data.variablebrowser.SwingScilabVariableBrowser;
17 import java.lang.reflect.InvocationTargetException;
18 import java.awt.event.ActionEvent;
19 import javax.swing.ImageIcon;
20 import javax.swing.KeyStroke;
21 import java.awt.event.ActionEvent;
22 import java.awt.event.MouseEvent;
23 import java.awt.event.ActionListener;
24 import javax.swing.JTable;
25
26 import org.scilab.modules.ui_data.utils.UiDataMessages;
27 import org.scilab.modules.ui_data.BrowseVar;
28
29 import static org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement.asynchronousScilabExec;
30
31 import org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement.InterpreterException;
32
33 import org.scilab.modules.gui.bridge.pushbutton.SwingScilabPushButton;
34 import org.scilab.modules.gui.bridge.menuitem.SwingScilabMenuItem;
35 import org.scilab.modules.gui.events.callback.CommonCallBack;
36 import org.scilab.modules.gui.menuitem.MenuItem;
37 import org.scilab.modules.gui.menuitem.ScilabMenuItem;
38 import org.scilab.modules.gui.pushbutton.PushButton;
39 import org.scilab.modules.gui.pushbutton.ScilabPushButton;
40 import org.scilab.modules.gui.utils.ScilabSwingUtilities;
41
42 /**
43  * Manage Delete Actions
44  * @author Vincent COUVERT
45  */
46 public final class DeleteAction extends CommonCallBack {
47
48     private static final long serialVersionUID = 1L;
49
50     private static ImageIcon icon = new ImageIcon(ScilabSwingUtilities.findIcon("edit-delete"));
51
52     private static final char MNEMONIC = 'D';
53
54     private static final String KEY = "DELETE";
55     private static final String SUPPR = "Suppr";
56
57     private final SwingScilabVariableBrowser variableBrowser;
58
59     /**
60      * Constructor
61      */
62     public DeleteAction(SwingScilabVariableBrowser variableBrowser) {
63         super("");
64         this.variableBrowser = variableBrowser;
65     }
66
67     /**
68      * Create a button for a tool bar
69      * @param title tooltip for the button
70      * @return the button
71      */
72     public static PushButton createButton(SwingScilabVariableBrowser variableBrowser, String title) {
73         PushButton button = ScilabPushButton.createPushButton();
74         ((SwingScilabPushButton) button.getAsSimplePushButton()).addActionListener(new DeleteAction(variableBrowser));
75         button.setToolTipText(title);
76         ((SwingScilabPushButton) button.getAsSimplePushButton()).setIcon(icon);
77
78         return button;
79     }
80
81     /**
82      * Create the associated menu
83      * @return the menu
84      */
85     public MenuItem createMenuItem() {
86         MenuItem menuItem = ScilabMenuItem.createMenuItem();
87         menuItem.setText(UiDataMessages.DELETE + " '" + getSelectedVariable() + "'");
88         menuItem.setMnemonic(MNEMONIC);
89         menuItem.setCallback(this);
90         ((SwingScilabMenuItem) menuItem.getAsSimpleMenuItem()).setIcon(icon);
91         return menuItem;
92     }
93
94
95     /**
96      * Action!
97      * @see org.scilab.modules.gui.events.callback.CallBack#callBack()
98      */
99     @Override
100     public void callBack() {
101         try {
102             asynchronousScilabExec(null, "clear('" + getSelectedVariable() + "'); updatebrowsevar()");
103         } catch (InterpreterException e1) {
104             System.err.println("An error in the interpreter has been catched: " + e1.getLocalizedMessage());
105         }
106     }
107
108     private String getSelectedVariable() {
109
110         int clickedRow = variableBrowser.getTable().getSelectedRow();
111         // Does nothing if no variable selected
112         if (clickedRow != -1) {
113             return variableBrowser.getTable().getValueAt(clickedRow, BrowseVar.NAME_COLUMN_INDEX).toString();
114         }
115         return "";
116     }
117 }