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-2023 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() {
184  }
185 
189  @ActionMethod
190  public void scriptEditSave() {
192  }
193 
197  @ActionMethod
198  public void scriptEditClose() {
200  }
201 
205  @ActionMethod
206  public void scriptEditCloseAll() {
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 }
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditNewScript
void scriptEditNewScript()
Action for "new script".
Definition: Actions.java:166
net.sf.gridarta.textedit.textarea.actions.Copy
Action listener for COPY actions.
Definition: Copy.java:23
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.getActiveFilePath
String getActiveFilePath()
Definition: ScriptEditControl.java:426
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.saveActiveTab
void saveActiveTab()
Save the active script-tab to the stored file path.
Definition: ScriptEditControl.java:377
net.sf.gridarta.textedit.textarea.JEditTextArea
jEdit's text area component.
Definition: JEditTextArea.java:91
net.sf.gridarta.textedit.textarea.actions.Replace
Action listener for "replace".
Definition: Replace.java:50
net.sf.gridarta.textedit.scripteditor.Actions.aCut
final Action aCut
Action called for "cut".
Definition: Actions.java:122
net.sf.gridarta.textedit.textarea
This package contains the other part of the script editor.
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.closeAllTabs
boolean closeAllTabs()
Close all opened script-tabs.
Definition: ScriptEditControl.java:307
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditCopy
void scriptEditCopy()
Action for "copy".
Definition: Actions.java:222
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.textedit.scripteditor.Actions.refresh
void refresh()
Refreshes the enable/disable state of all menus.
Definition: Actions.java:261
net.sf
net.sf.gridarta.textedit.scripteditor.Actions.aCloseAll
final Action aCloseAll
Action called for "close".
Definition: Actions.java:110
net.sf.gridarta.textedit.scripteditor.Actions.FIND_AGAIN
static final FindAgain FIND_AGAIN
The "find again" action listener.
Definition: Actions.java:74
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditSaveAs
void scriptEditSaveAs()
Action for "save as".
Definition: Actions.java:182
net.sf.gridarta.textedit.scripteditor.Actions.CUT
static final ActionListener CUT
Definition: Actions.java:53
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditCloseAll
void scriptEditCloseAll()
Action for "close all".
Definition: Actions.java:206
net.sf.gridarta.textedit.scripteditor.Actions.aFind
final Action aFind
Action called for "find".
Definition: Actions.java:134
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditOpen
void scriptEditOpen()
Action for "open".
Definition: Actions.java:174
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.getActiveTextArea
JEditTextArea getActiveTextArea()
Definition: ScriptEditControl.java:418
net.sf.gridarta.textedit.scripteditor.Actions.REPLACE
static final Replace REPLACE
The "replace" action listener.
Definition: Actions.java:68
net.sf.gridarta.textedit
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditFind
void scriptEditFind()
Action for "find".
Definition: Actions.java:238
net.sf.gridarta.textedit.textarea.actions.Cut
Action listener for CUT actions.
Definition: Cut.java:23
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditClose
void scriptEditClose()
Action for "close".
Definition: Actions.java:198
net.sf.gridarta.textedit.scripteditor.Actions.FIND
static final Find FIND
The "find" action listener.
Definition: Actions.java:62
net.sf.gridarta.textedit.scripteditor.Actions.aCopy
final Action aCopy
Action called for "copy".
Definition: Actions.java:116
net.sf.gridarta.textedit.scripteditor.Actions.Actions
Actions(@NotNull final ScriptEditControl control)
Creates a new instance.
Definition: Actions.java:158
net.sf.gridarta.textedit.textarea.actions.Paste
Action listener for PASTE actions.
Definition: Paste.java:31
net.sf.gridarta.textedit.scripteditor.Actions.aNewScript
final Action aNewScript
Action called for "new script".
Definition: Actions.java:80
net
net.sf.gridarta.textedit.scripteditor.Actions.aSave
final Action aSave
Action called for "save".
Definition: Actions.java:98
net.sf.gridarta.textedit.scripteditor.Actions
Actions used by the script editor.
Definition: Actions.java:41
net.sf.gridarta.textedit.scripteditor.Actions.aPaste
final Action aPaste
Action called for "paste".
Definition: Actions.java:128
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditSave
void scriptEditSave()
Action for "save".
Definition: Actions.java:190
net.sf.gridarta.textedit.scripteditor.Actions.aSaveAs
final Action aSaveAs
Action called for "save as".
Definition: Actions.java:92
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.openUser
void openUser()
Open a file which is chosen by the user.
Definition: ScriptEditControl.java:252
net.sf.gridarta.textedit.textarea.actions
Definition: Backspace.java:11
net.sf.gridarta.textedit.scripteditor.Actions.aClose
final Action aClose
Action called for "close".
Definition: Actions.java:104
net.sf.gridarta.textedit.textarea.actions.Find
Action listener for "find".
Definition: Find.java:37
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.saveAsActiveTab
void saveAsActiveTab()
Open a file browser and prompt the user for a location/name to store this file.
Definition: ScriptEditControl.java:321
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditCut
void scriptEditCut()
Action for "cut".
Definition: Actions.java:214
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditFindAgain
void scriptEditFindAgain()
Action for "find again".
Definition: Actions.java:254
net.sf.gridarta.textedit.scripteditor.Actions.PASTE
static final ActionListener PASTE
Definition: Actions.java:56
net.sf.gridarta.textedit.scripteditor.Actions.aReplace
final Action aReplace
Action called for "replace".
Definition: Actions.java:140
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditReplace
void scriptEditReplace()
Action for "replace".
Definition: Actions.java:246
net.sf.gridarta.textedit.textarea.actions.FindAgain
Action listener for "find again".
Definition: FindAgain.java:31
net.sf.gridarta.textedit.scripteditor.ScriptEditControl
ScriptEditControl - Manages events and data flow for the script editor entity.
Definition: ScriptEditControl.java:59
net.sf.gridarta.textedit.scripteditor.Actions.scriptEditPaste
void scriptEditPaste()
Action for "paste".
Definition: Actions.java:230
net.sf.gridarta.textedit.scripteditor.Actions.aOpen
final Action aOpen
Action called for "open".
Definition: Actions.java:86
net.sf.gridarta.textedit.scripteditor.Actions.aFindAgain
final Action aFindAgain
Action called for "find again".
Definition: Actions.java:146
net.sf.gridarta.textedit.scripteditor.Actions.control
final ScriptEditControl control
The controller to forward to.
Definition: Actions.java:152
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.newScript
void newScript()
Open a new empty script document.
Definition: ScriptEditControl.java:146
net.sf.gridarta.textedit.scripteditor.Actions.ACTION_BUILDER
static final ActionBuilder ACTION_BUILDER
Action Builder.
Definition: Actions.java:47
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.closeActiveTab
boolean closeActiveTab()
Close the active script-tab.
Definition: ScriptEditControl.java:276
net.sf.gridarta.textedit.scripteditor.Actions.COPY
static final ActionListener COPY
Definition: Actions.java:50
net.sf.gridarta.textedit.scripteditor.Actions.executeAction
void executeAction(@NotNull final String actionName, @NotNull final ActionListener actionListener)
Executes a named action.
Definition: Actions.java:270