Revision 952 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/DefaultJScriptingLauncher.java

View differences:

DefaultJScriptingLauncher.java
21 21
import org.gvsig.scripting.swing.api.JScriptingLauncher;
22 22
import org.gvsig.scripting.swing.api.ScriptingUIManager;
23 23
import org.gvsig.scripting.swing.impl.DefaultJScriptingBrowser.DefaultBrowserActionEvent;
24
import org.gvsig.tools.swing.api.ActionListenerSupport;
25
import org.gvsig.tools.swing.api.ToolsSwingLocator;
26
import org.gvsig.tools.util.CancelledException;
24 27
import org.slf4j.Logger;
25 28
import org.slf4j.LoggerFactory;
26 29

  
27 30
public class DefaultJScriptingLauncher extends JPanel implements JScriptingLauncher, ActionListener {
28 31

  
29 32
    private static final Logger LOG = LoggerFactory.getLogger(DefaultJScriptingLauncher.class);
30
    /**
31
     *
32
     */
33

  
33 34
    private static final long serialVersionUID = -2612734398104678920L;
34 35

  
35
    protected ActionListener defaultActionlistener = null;
36
//    protected ActionListener selectionActionlistener = null;
37
//    protected ActionListener dropDownActionlistener = null;
36
    
37
    protected ActionListenerSupport defaultActionlisteners = null;
38 38
    JTabbedPane pestana;
39 39
    ScriptingUIManager uimanager;
40 40
    ScriptingManager manager;
......
43 43
        this.uimanager = uimanager;
44 44
        this.manager = uimanager.getManager();
45 45

  
46
        this.defaultActionlisteners = ToolsSwingLocator.getToolsSwingManager().createActionListenerSupport();
46 47
        List<ScriptingFolder> folders = new ArrayList<>();
47 48
        folders.add(manager.getUserFolder());
48 49
        folders.addAll(manager.getAlternativeUserFolders());
......
80 81

  
81 82
    @Override
82 83
    public void addDefaultActionListener(ActionListener actionlistener) {
83
        this.defaultActionlistener = actionlistener;
84
        this.defaultActionlisteners.addActionListener(actionlistener);
84 85
    }
85 86

  
86 87
    @Override
87 88
    public void actionPerformed(ActionEvent e) {
88
        BrowserActionEvent e2 = (BrowserActionEvent) e;
89

  
90
        switch (e.getID()) {
91
            case DefaultJScriptingBrowser.DEFAULT_ACTION:
92
                if (this.defaultActionlistener == null) {
93
                    ScriptingUnit unit = e2.getUnit();
94
                    if( unit instanceof ScriptingBaseScript ) {
95
                        ScriptingBaseScript script = (ScriptingBaseScript) unit;
96
                        try {
97
                            script.compile();
98
                            script.runAsTask(null);
99
                        } catch (ScriptingRunningException ex) {
100
                            LOG.warn("Problems launching script '" + script.getName() + "'", ex);
89
        try {
90
            BrowserActionEvent e2 = (BrowserActionEvent) e;
91
            switch (e.getID()) {
92
                case DefaultJScriptingBrowser.DEFAULT_ACTION:
93
                    if( this.defaultActionlisteners.hasActionListeners() ) {
94
                        this.defaultActionlisteners.fireActionEvent(
95
                            new DefaultBrowserActionEvent(this, DEFAULT_ACTION, "default", e2.getUnit())
96
                        );
97
                    } else {
98
                        ScriptingUnit unit = e2.getUnit();
99
                        if( unit instanceof ScriptingBaseScript ) {
100
                            ScriptingBaseScript script = (ScriptingBaseScript) unit;
101
                            try {
102
                                script.compile();
103
                                script.runAsTask(null);
104
                            } catch (ScriptingRunningException ex) {
105
                                LOG.warn("Problems launching script '" + script.getName() + "'", ex);
106
                            }
101 107
                        }
102 108
                    }
103
                } else {
104
                    this.defaultActionlistener.actionPerformed(
105
                            new DefaultBrowserActionEvent(this, DEFAULT_ACTION, "default", e2.getUnit())
109
                    break;
110
                case DefaultJScriptingBrowser.DROPDOWN_ACTION:
111
                case DefaultJScriptingBrowser.SELECTION_ACTION:
112
                    this.defaultActionlisteners.fireActionEvent(
113
                            new DefaultBrowserActionEvent(this, e.getID(), "default", e2.getUnit())
106 114
                    );
107
                }
108
                break;
109
            case DefaultJScriptingBrowser.DROPDOWN_ACTION:
110
            case DefaultJScriptingBrowser.SELECTION_ACTION:
111
                if (this.defaultActionlistener != null) {
112
                    this.defaultActionlistener.actionPerformed(
113
                            new DefaultBrowserActionEvent(this, DEFAULT_ACTION, "default", e2.getUnit())
114
                    );
115
                }
116
                break;
115
                    break;
116
            }
117
        } catch( CancelledException ex) {
118
            // Do norhing
119
        } catch(Throwable th) {
120
            LOG.warn("",th);
117 121
        }
118 122
    }
119 123
}

Also available in: Unified diff