Revision 687 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/DefaultScriptingUIManager.java
DefaultScriptingUIManager.java | ||
---|---|---|
6 | 6 |
import java.net.URLClassLoader; |
7 | 7 |
import java.util.Collection; |
8 | 8 |
import java.util.HashMap; |
9 |
import java.util.HashSet; |
|
9 | 10 |
import java.util.Locale; |
10 | 11 |
import java.util.Map; |
12 |
import java.util.Set; |
|
11 | 13 |
import javax.help.HelpSet; |
12 | 14 |
import javax.help.HelpSetException; |
13 | 15 |
import javax.help.JHelp; |
... | ... | |
43 | 45 |
import org.gvsig.scripting.swing.impl.syntaxhighlight.JRSyntaxTextArea; |
44 | 46 |
import org.gvsig.tools.ToolsLocator; |
45 | 47 |
import org.gvsig.tools.i18n.I18nManager; |
48 |
import org.gvsig.tools.swing.api.Component; |
|
46 | 49 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
47 | 50 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
48 | 51 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
... | ... | |
60 | 63 |
private final Map<String,Action> composerTools = new HashMap<>(); |
61 | 64 |
private final Map<String,MenuEntry> composerMenus = new HashMap<>(); |
62 | 65 |
private JScriptingComposer activeComposer; |
66 |
private Set<CreateComponentListener> createComponentListeners; |
|
63 | 67 |
|
64 | 68 |
private static class DefaultMenuEntry implements MenuEntry { |
65 | 69 |
private final Action action; |
... | ... | |
85 | 89 |
|
86 | 90 |
this.manager = ScriptingLocator.getManager(); |
87 | 91 |
this.manager.put("ScriptingUIManager", this); |
88 |
|
|
92 |
|
|
89 | 93 |
this.i18nManager = ToolsLocator.getI18nManager(); |
90 | 94 |
} |
95 |
|
|
96 |
@Override |
|
97 |
public void addCreatedComponentListener(CreateComponentListener listener) { |
|
98 |
if( this.createComponentListeners==null ) { |
|
99 |
this.createComponentListeners = new HashSet<>(); |
|
100 |
} |
|
101 |
this.createComponentListeners.add(listener); |
|
102 |
} |
|
103 |
|
|
104 |
@Override |
|
105 |
public void removeCreatedComponentListener(CreateComponentListener listener) { |
|
106 |
if( this.createComponentListeners==null ) { |
|
107 |
return; |
|
108 |
} |
|
109 |
this.createComponentListeners.remove(listener); |
|
110 |
} |
|
111 |
|
|
112 |
public void fireCreateComponent(Component component) { |
|
113 |
if (this.createComponentListeners == null) { |
|
114 |
return; |
|
115 |
} |
|
116 |
for (ScriptingUIManager.CreateComponentListener listener : this.createComponentListeners) { |
|
117 |
try { |
|
118 |
listener.componentCreated(component); |
|
119 |
} catch (Throwable th) { |
|
91 | 120 |
|
121 |
} |
|
122 |
} |
|
123 |
} |
|
124 |
|
|
92 | 125 |
@Override |
93 | 126 |
public JScriptingComposer createComposer() { |
94 |
return new DefaultJScriptingComposer(this); |
|
127 |
JScriptingComposer composer = new DefaultJScriptingComposer(this); |
|
128 |
fireCreateComponent(composer); |
|
129 |
return composer; |
|
95 | 130 |
} |
96 | 131 |
|
97 | 132 |
@Override |
... | ... | |
102 | 137 |
|
103 | 138 |
@Override |
104 | 139 |
public JScriptingLauncher createLauncher() { |
105 |
return new DefaultJScriptingLauncher(this); |
|
140 |
JScriptingLauncher launcher = new DefaultJScriptingLauncher(this); |
|
141 |
fireCreateComponent(launcher); |
|
142 |
return launcher; |
|
106 | 143 |
} |
107 | 144 |
|
108 | 145 |
@Override |
... | ... | |
243 | 280 |
|
244 | 281 |
@Override |
245 | 282 |
public JScriptingBrowser createBrowser(ScriptingFolder root, boolean foldersOnly) { |
246 |
return new DefaultJScriptingBrowser(this, root, foldersOnly); |
|
283 |
JScriptingBrowser browser = new DefaultJScriptingBrowser(this, root, foldersOnly); |
|
284 |
fireCreateComponent(browser); |
|
285 |
return browser; |
|
247 | 286 |
} |
248 | 287 |
|
249 | 288 |
@Override |
250 | 289 |
public JScriptingBrowser createBrowser(ScriptingFolder root) { |
251 |
return new DefaultJScriptingBrowser(this, root, false);
|
|
290 |
return this.createBrowser(root,false);
|
|
252 | 291 |
} |
253 | 292 |
|
254 | 293 |
@Override |
255 | 294 |
public JCodeEditor createJCodeEditor(ScriptingScript script) { |
256 |
return new DefaultJCodeEditor(this, script); |
|
295 |
JCodeEditor editor = new DefaultJCodeEditor(this, script); |
|
296 |
fireCreateComponent(editor); |
|
297 |
return editor; |
|
257 | 298 |
} |
258 | 299 |
|
259 | 300 |
@Override |
... | ... | |
306 | 347 |
|
307 | 348 |
@Override |
308 | 349 |
public JScriptingConsole createJScriptingConsole() { |
309 |
return new DefaultJScriptingConsole(true);
|
|
350 |
return this.createJScriptingConsole(true);
|
|
310 | 351 |
} |
311 | 352 |
|
312 | 353 |
@Override |
313 | 354 |
public JScriptingConsole createJScriptingConsole(boolean captureOutput) { |
314 |
return new DefaultJScriptingConsole(captureOutput); |
|
355 |
JScriptingConsole console = new DefaultJScriptingConsole(captureOutput); |
|
356 |
fireCreateComponent(console); |
|
357 |
return console; |
|
315 | 358 |
} |
316 | 359 |
|
317 | 360 |
@Override |
... | ... | |
338 | 381 |
|
339 | 382 |
@Override |
340 | 383 |
public JEditor createEditor(ScriptingUnit unit) { |
384 |
JEditor editor; |
|
341 | 385 |
if( unit instanceof ScriptingDialog ) { |
342 |
return new DefaultJDialogEditor(this, (ScriptingDialog) unit); |
|
386 |
editor = new DefaultJDialogEditor(this, (ScriptingDialog) unit); |
|
387 |
} else if( unit instanceof ScriptingScript ) { |
|
388 |
editor = new DefaultJCodeEditor(this, (ScriptingScript) unit); |
|
389 |
} else { |
|
390 |
return null; |
|
343 | 391 |
} |
344 |
if( unit instanceof ScriptingScript ) { |
|
345 |
return new DefaultJCodeEditor(this, (ScriptingScript) unit); |
|
346 |
} |
|
347 |
return null; |
|
392 |
fireCreateComponent(editor); |
|
393 |
return editor; |
|
348 | 394 |
} |
349 | 395 |
|
350 | 396 |
public void setActiveComposer(JScriptingComposer composer) { |
351 | 397 |
this.activeComposer = composer; |
352 | 398 |
} |
353 | 399 |
|
400 |
@Override |
|
354 | 401 |
public JScriptingComposer getActiveComposer() { |
355 | 402 |
return this.activeComposer; |
356 | 403 |
} |
Also available in: Unified diff