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

View differences:

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