Gridarta Editor
Actions.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2015 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.textedit.scripteditor;
21 
22 import java.awt.event.ActionEvent;
23 import java.awt.event.ActionListener;
24 import javax.swing.Action;
32 import net.sf.japi.swing.action.ActionBuilder;
33 import net.sf.japi.swing.action.ActionBuilderFactory;
34 import net.sf.japi.swing.action.ActionMethod;
35 import org.jetbrains.annotations.NotNull;
36 
41 public class Actions {
42 
46  @NotNull
47  private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta");
48 
49  @NotNull
50  public static final ActionListener COPY = new Copy();
51 
52  @NotNull
53  public static final ActionListener CUT = new Cut();
54 
55  @NotNull
56  public static final ActionListener PASTE = new Paste();
57 
61  @NotNull
62  public static final Find FIND = new Find();
63 
67  @NotNull
68  public static final Replace REPLACE = new Replace();
69 
73  @NotNull
74  public static final FindAgain FIND_AGAIN = new FindAgain(FIND, REPLACE);
75 
79  @NotNull
80  private final Action aNewScript = ACTION_BUILDER.createAction(true, "scriptEditNewScript", this);
81 
85  @NotNull
86  private final Action aOpen = ACTION_BUILDER.createAction(true, "scriptEditOpen", this);
87 
91  @NotNull
92  private final Action aSaveAs = ACTION_BUILDER.createAction(true, "scriptEditSaveAs", this);
93 
97  @NotNull
98  private final Action aSave = ACTION_BUILDER.createAction(true, "scriptEditSave", this);
99 
103  @NotNull
104  private final Action aClose = ACTION_BUILDER.createAction(true, "scriptEditClose", this);
105 
109  @NotNull
110  private final Action aCloseAll = ACTION_BUILDER.createAction(true, "scriptEditCloseAll", this);
111 
115  @NotNull
116  private final Action aCopy = ACTION_BUILDER.createAction(true, "scriptEditCopy", this);
117 
121  @NotNull
122  private final Action aCut = ACTION_BUILDER.createAction(true, "scriptEditCut", this);
123 
127  @NotNull
128  private final Action aPaste = ACTION_BUILDER.createAction(true, "scriptEditPaste", this);
129 
133  @NotNull
134  private final Action aFind = ACTION_BUILDER.createAction(true, "scriptEditFind", this);
135 
139  @NotNull
140  private final Action aReplace = ACTION_BUILDER.createAction(true, "scriptEditReplace", this);
141 
145  @NotNull
146  private final Action aFindAgain = ACTION_BUILDER.createAction(true, "scriptEditFindAgain", this);
147 
151  @NotNull
152  private final ScriptEditControl control;
153 
158  public Actions(@NotNull final ScriptEditControl control) {
159  this.control = control;
160  }
161 
165  @ActionMethod
166  public void scriptEditNewScript() {
167  control.newScript();
168  }
169 
173  @ActionMethod
174  public void scriptEditOpen() {
175  control.openUser();
176  }
177 
181  @ActionMethod
182  public void scriptEditSaveAs() {
183  control.saveAsActiveTab();
184  }
185 
189  @ActionMethod
190  public void scriptEditSave() {
191  control.saveActiveTab();
192  }
193 
197  @ActionMethod
198  public void scriptEditClose() {
199  control.closeActiveTab();
200  }
201 
205  @ActionMethod
206  public void scriptEditCloseAll() {
207  control.closeAllTabs();
208  }
209 
213  @ActionMethod
214  public void scriptEditCut() {
215  executeAction("cut", CUT);
216  }
217 
221  @ActionMethod
222  public void scriptEditCopy() {
223  executeAction("copy", COPY);
224  }
225 
229  @ActionMethod
230  public void scriptEditPaste() {
231  executeAction("paste", PASTE);
232  }
233 
237  @ActionMethod
238  public void scriptEditFind() {
239  executeAction("find", FIND);
240  }
241 
245  @ActionMethod
246  public void scriptEditReplace() {
247  executeAction("replace", REPLACE);
248  }
249 
253  @ActionMethod
254  public void scriptEditFindAgain() {
255  executeAction("find-again", FIND_AGAIN);
256  }
257 
261  public void refresh() {
262  aSave.setEnabled(control.getActiveFilePath() != null);
263  }
264 
270  private void executeAction(@NotNull final String actionName, @NotNull final ActionListener actionListener) {
271  final JEditTextArea activeTA = control.getActiveTextArea();
272  if (activeTA != null) {
273  actionListener.actionPerformed(new ActionEvent(activeTA, 0, actionName));
274  }
275  }
276 
277 }
final Action aFind
Action called for "find".
Definition: Actions.java:134
static final ActionListener COPY
Definition: Actions.java:50
Actions(@NotNull final ScriptEditControl control)
Create a new instance.
Definition: Actions.java:158
static final ActionBuilder ACTION_BUILDER
Action Builder.
Definition: Actions.java:47
Action listener for PASTE actions.
Definition: Paste.java:31
static final Find FIND
The "find" action listener.
Definition: Actions.java:62
final Action aFindAgain
Action called for "find again".
Definition: Actions.java:146
final Action aCut
Action called for "cut".
Definition: Actions.java:122
void scriptEditCut()
Action for "cut".
Definition: Actions.java:214
final Action aClose
Action called for "close".
Definition: Actions.java:104
Action listener for "find".
Definition: Find.java:37
void scriptEditFindAgain()
Action for "find again".
Definition: Actions.java:254
final Action aNewScript
Action called for "new script".
Definition: Actions.java:80
boolean closeAllTabs()
Close all opened script-tabs.
Action listener for COPY actions.
Definition: Copy.java:23
void executeAction(@NotNull final String actionName, @NotNull final ActionListener actionListener)
Executes a named action.
Definition: Actions.java:270
Base package of all Gridarta classes.
final Action aReplace
Action called for "replace".
Definition: Actions.java:140
void scriptEditClose()
Action for "close".
Definition: Actions.java:198
void scriptEditCopy()
Action for "copy".
Definition: Actions.java:222
static final Replace REPLACE
The "replace" action listener.
Definition: Actions.java:68
void scriptEditOpen()
Action for "open".
Definition: Actions.java:174
Action listener for "replace".
Definition: Replace.java:50
void scriptEditPaste()
Action for "paste".
Definition: Actions.java:230
Actions used by the script editor.
Definition: Actions.java:41
Action listener for CUT actions.
Definition: Cut.java:23
final Action aCopy
Action called for "copy".
Definition: Actions.java:116
void scriptEditSave()
Action for "save".
Definition: Actions.java:190
final Action aSave
Action called for "save".
Definition: Actions.java:98
final Action aOpen
Action called for "open".
Definition: Actions.java:86
static final ActionListener CUT
Definition: Actions.java:53
void openUser()
Open a file which is chosen by the user.
final Action aPaste
Action called for "paste".
Definition: Actions.java:128
Action listener for "find again".
Definition: FindAgain.java:31
This package contains the other part of the script editor.
void scriptEditFind()
Action for "find".
Definition: Actions.java:238
final ScriptEditControl control
The controller to forward to.
Definition: Actions.java:152
ScriptEditControl - Manages events and data flow for the script editor entity.
void scriptEditNewScript()
Action for "new script".
Definition: Actions.java:166
void saveAsActiveTab()
Open a file browser and prompt the user for a location/name to store this file.
void refresh()
Refreshes the enable/disable state of all menus.
Definition: Actions.java:261
boolean closeActiveTab()
Close the active script-tab.
final Action aSaveAs
Action called for "save as".
Definition: Actions.java:92
static final FindAgain FIND_AGAIN
The "find again" action listener.
Definition: Actions.java:74
void scriptEditSaveAs()
Action for "save as".
Definition: Actions.java:182
void newScript()
Open a new empty script document.
void saveActiveTab()
Save the active script-tab to the stored file path.
static final ActionListener PASTE
Definition: Actions.java:56
void scriptEditReplace()
Action for "replace".
Definition: Actions.java:246
void scriptEditCloseAll()
Action for "close all".
Definition: Actions.java:206
final Action aCloseAll
Action called for "close".
Definition: Actions.java:110