Revision 639 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
1 1
package org.gvsig.scripting.swing.impl;
2 2

  
3 3
import java.awt.BorderLayout;
4
import java.awt.Component;
5 4
import java.awt.Dimension;
6 5
import java.awt.event.ActionEvent;
7 6
import java.awt.event.ActionListener;
8 7
import java.util.ArrayList;
9 8
import java.util.List;
9
import javax.swing.JComponent;
10
import javax.swing.JPanel;
10 11

  
11 12
import javax.swing.JTabbedPane;
12 13

  
13 14
import org.gvsig.scripting.ScriptingBaseScript;
14
import org.gvsig.scripting.ScriptingDialog;
15 15
import org.gvsig.scripting.ScriptingFolder;
16 16
import org.gvsig.scripting.ScriptingManager;
17 17
import org.gvsig.scripting.ScriptingRunningException;
18
import org.gvsig.scripting.ScriptingScript;
18
import org.gvsig.scripting.swing.api.JScriptingBrowser;
19
import org.gvsig.scripting.swing.api.JScriptingBrowser.BrowserActionEvent;
19 20
import org.gvsig.scripting.swing.api.JScriptingLauncher;
20 21
import org.gvsig.scripting.swing.api.ScriptingUIManager;
21
import org.gvsig.scripting.swing.impl.DefaultJScriptingBrowser.BrowserActionEvent;
22
import org.gvsig.scripting.swing.impl.composer.DefaultJScriptingComposer;
23
import org.gvsig.tools.task.AbstractMonitorableTask;
22
import org.gvsig.scripting.swing.impl.DefaultJScriptingBrowser.DefaultBrowserActionEvent;
24 23
import org.slf4j.Logger;
25 24
import org.slf4j.LoggerFactory;
26 25

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

  
29
	private static Logger LOG = LoggerFactory.getLogger(DefaultJScriptingLauncher.class);
30
	/**
31
	 *
32
	 */
33
	private static final long serialVersionUID = -2612734398104678920L;
28
    private static final Logger LOG = LoggerFactory.getLogger(DefaultJScriptingLauncher.class);
29
    /**
30
     *
31
     */
32
    private static final long serialVersionUID = -2612734398104678920L;
34 33

  
35
	protected ActionListener defaultActionlistener = null;
36
	protected ActionListener selectionActionlistener = null;
37
	protected ActionListener dropDownActionlistener = null;
38
	JTabbedPane pestana;
39
	ScriptingUIManager uimanager;
40
	ScriptingManager manager;
34
    protected ActionListener defaultActionlistener = null;
35
//    protected ActionListener selectionActionlistener = null;
36
//    protected ActionListener dropDownActionlistener = null;
37
    JTabbedPane pestana;
38
    ScriptingUIManager uimanager;
39
    ScriptingManager manager;
41 40

  
42
	public static class LauncherActionEvent extends ActionEvent{
41
    public DefaultJScriptingLauncher(ScriptingUIManager uimanager) {
42
        this.uimanager = uimanager;
43
        this.manager = uimanager.getManager();
43 44

  
44
		/**
45
		 *
46
		 */
47
		private static final long serialVersionUID = -6960022165103651050L;
48
		private ScriptingBaseScript script= null;
45
        List<ScriptingFolder> folders = new ArrayList<>();
46
        folders.add(manager.getUserFolder());
47
        folders.addAll(manager.getAlternativeUserFolders());
48
        folders.add(manager.getSystemFolder());
49
        pestana = new JTabbedPane();
50
        for (ScriptingFolder folder : folders) {
51
            DefaultJScriptingBrowser browser = new DefaultJScriptingBrowser(uimanager, folder);
52
            browser.addDefaultActionListener(this);
53
            pestana.addTab(uimanager.getTranslation(folder.getName()), browser);
54
        }
55
        this.setLayout(new BorderLayout());
56
        this.add(pestana, BorderLayout.CENTER);
57
        this.setPreferredSize(new Dimension(260, 300));
58
    }
49 59

  
50
		public LauncherActionEvent(Object source, int id, String command, ScriptingBaseScript script) {
51
			super(source,id,command);
52
			this.script = script;
53
		}
54 60

  
55
		public ScriptingBaseScript getScript(){
56
			return this.script;
57
		}
58
	}
61
    @Override
62
    public JScriptingBrowser getSelectedBrowser() {
63
        return (JScriptingBrowser) this.pestana.getSelectedComponent();
64
    }
59 65

  
60
	public DefaultJScriptingLauncher(ScriptingUIManager uimanager) {
61
		this.uimanager = uimanager;
62
		this.manager = uimanager.getManager();
66
    @Override
67
    public JComponent asJComponent() {
68
        return this;
69
    }
63 70

  
71
    @Override
72
    public void refresh() {
73
        for (int i = 0; i < pestana.getTabCount(); i++) {
74
            DefaultJScriptingBrowser browser = (DefaultJScriptingBrowser) (pestana.getComponentAt(i));
75
            browser.refresh();
76
        }
77
        pestana.repaint();
78
    }
64 79

  
65
                List<ScriptingFolder> folders = new ArrayList<ScriptingFolder>();
66
                folders.add(manager.getUserFolder());
67
                folders.addAll(manager.getAlternativeUserFolders());
68
                folders.add(manager.getSystemFolder());
69
		pestana = new JTabbedPane();
70
                for (ScriptingFolder folder : folders) {
71
                    DefaultJScriptingBrowser browser = new DefaultJScriptingBrowser(uimanager,folder);
72
                    browser.addDefaultActionListener(this);
73
                    pestana.addTab( uimanager.getTranslation(folder.getName()), browser);
74
                }
75
      		this.setLayout( new BorderLayout() );
76
		this.add(pestana,BorderLayout.CENTER );
77
		this.setPreferredSize(new Dimension(260,300));
78
	}
80
    @Override
81
    public void addDefaultActionListener(ActionListener actionlistener) {
82
        this.defaultActionlistener = actionlistener;
83
    }
79 84

  
80
	public void refresh(){
81
		for( int i=0; i < pestana.getTabCount(); i++ ) {
82
			DefaultJScriptingBrowser browser = (DefaultJScriptingBrowser)(pestana.getComponentAt(i));
83
                        browser.refresh();
84
		}
85
		pestana.repaint();
86
	}
85
    @Override
86
    public void actionPerformed(ActionEvent e) {
87
        BrowserActionEvent e2 = (BrowserActionEvent) e;
87 88

  
88
	public JTabbedPane getTabbedPane(){
89
		return this.pestana;
90
	}
91

  
92
	public void addDefaultActionListener(ActionListener actionlistener) {
93
		this.defaultActionlistener = actionlistener;
94
	}
95

  
96
	public void addSelectionActionListener(ActionListener actionlistener) {
97
		this.selectionActionlistener = actionlistener;
98
	}
99

  
100
	public void addDropDownActionListener(ActionListener actionlistener) {
101
		this.dropDownActionlistener = actionlistener;
102
	}
103

  
104
	public void actionPerformed(ActionEvent e) {
105
		BrowserActionEvent e2 = (BrowserActionEvent) e;
106

  
107
		switch(e.getID()){
108
		case DefaultJScriptingBrowser.DEFAULT_ACTION:
109
			if(this.defaultActionlistener==null){
110
				ScriptingBaseScript script = e2.getScript();
111
				try {
112
					script.compile();
113
					script.runAsTask(null);
114
				} catch (ScriptingRunningException ex) {
115
					LOG.warn("Problems launching script '"+script.getName()	+"'", ex);
116
				}
117
			}else{
118
				this.defaultActionlistener.actionPerformed(
119
						new LauncherActionEvent(this, DEFAULT_ACTION, "default", e2.getScript())
120
				);
121
			}
122
			break;
123
		case DefaultJScriptingBrowser.DROPDOWN_ACTION:
124
		case DefaultJScriptingBrowser.SELECTION_ACTION:
125
                        if( this.defaultActionlistener != null ) {
126
                            this.defaultActionlistener.actionPerformed(
127
                                            new LauncherActionEvent(this, DEFAULT_ACTION, "default", e2.getScript())
128
                            );
129
                        }
130
			break;
131
		}
132
	}
89
        switch (e.getID()) {
90
            case DefaultJScriptingBrowser.DEFAULT_ACTION:
91
                if (this.defaultActionlistener == null) {
92
                    ScriptingBaseScript script = e2.getScript();
93
                    try {
94
                        script.compile();
95
                        script.runAsTask(null);
96
                    } catch (ScriptingRunningException ex) {
97
                        LOG.warn("Problems launching script '" + script.getName() + "'", ex);
98
                    }
99
                } else {
100
                    this.defaultActionlistener.actionPerformed(
101
                            new DefaultBrowserActionEvent(this, DEFAULT_ACTION, "default", e2.getScript())
102
                    );
103
                }
104
                break;
105
            case DefaultJScriptingBrowser.DROPDOWN_ACTION:
106
            case DefaultJScriptingBrowser.SELECTION_ACTION:
107
                if (this.defaultActionlistener != null) {
108
                    this.defaultActionlistener.actionPerformed(
109
                            new DefaultBrowserActionEvent(this, DEFAULT_ACTION, "default", e2.getScript())
110
                    );
111
                }
112
                break;
113
        }
114
    }
133 115
}

Also available in: Unified diff