Revision 463 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/java/org/gvsig/scripting/app/extension/ScriptingExtension.java

View differences:

ScriptingExtension.java
19 19
 * MA  02110-1301, USA.
20 20
 * 
21 21
 */
22

  
23 22
package org.gvsig.scripting.app.extension;
24 23

  
25

  
26 24
import java.io.File;
27 25
import java.util.Arrays;
28 26
import java.util.List;
......
50 48

  
51 49
public class ScriptingExtension extends Extension {
52 50

  
53
	private static Logger logger = LoggerFactory.getLogger(ScriptingExtension.class);
54
	
55
	public void execute(String actionCommand) {
56
		this.execute(actionCommand,null);
57
	}
58
	
59
	public void execute(String command, Object[] args) {
60
	    ScriptingUIManager uimanager = ScriptingSwingLocator.getUIManager();
61
		WindowManager winmanager = ToolsSwingLocator.getWindowManager();
62
		
63
		if( "tools-scripting-launcher".equalsIgnoreCase(command) ) {
64
		    winmanager.showWindow(uimanager.createLauncher(), uimanager.getTranslation("Scripting_Launcher"), WindowManager.MODE.TOOL);
65
		    
66
		} else if( "tools-scripting-composer".equalsIgnoreCase(command) ) {
67
			DynObject preferences = this.getPlugin().getPluginProperties();
68
			Boolean composerUseHisWindowManager = (Boolean) preferences.getDynValue("ComposerUseHisWindowManager");
69
			JScriptingComposer composer = uimanager.createComposer();
70
			if( composerUseHisWindowManager.booleanValue() ) {
71
				winmanager = new DefaultWindowManager();
72
				composer.setWindowManager(winmanager);
73
				winmanager.showWindow(composer, uimanager.getTranslation("Scripting_Composer"), WindowManager.MODE.WINDOW);
74
			} else {
75
				winmanager.showWindow(composer, uimanager.getTranslation("Scripting_Composer"), WindowManager.MODE.WINDOW);
76
			}
77
			
78
		} else { 
79
			ScriptingBaseScript script = uimanager.getManager().getScript(command);
80
			if( script != null ) {
81
				script.run(args);
82
			} else {
83
				ApplicationManager application = ApplicationLocator.getManager();
84
				application.messageDialog("Can't locate script '"+command+"'.", "ScriptLaunch", JOptionPane.OK_OPTION);
85
			}
86
		}
87
	}
88
	
89
	public void initialize() {
90
		IconThemeHelper.registerIcon("action", "tools-scripting-launcher", this);
91
		IconThemeHelper.registerIcon("action", "tools-scripting-composer", this);
92
		IconThemeHelper.registerIcon("action", "tools-scripting-console-jython", this);
93
	}
94
	
95
	public void postInitialize() {
96
	    super.postInitialize();
97
	    ScriptingManager manager = ScriptingLocator.getManager();
98
	    PluginsManager pluginManager = PluginsLocator.getManager();
51
    private static Logger logger = LoggerFactory.getLogger(ScriptingExtension.class);
99 52

  
100
	    File home = this.getPlugin().getPluginHomeFolder();
101
	    manager.setHomeFolder(home);
102
    	
103
	    List<File> pluginsFolders = Arrays.asList(pluginManager.getPluginsFolder().listFiles());
104
	    for( File pluginsFolder : pluginsFolders ) {
105
		    File[] folders = pluginsFolder.listFiles();
106
		    for (File folder : folders) {
107
			    File scriptsFolder = new File(folder,"scripting/scripts");
108
			    if( scriptsFolder.exists() ) {
109
			    	manager.registerSystemFolder(folder.getName(), scriptsFolder);
110
			    }
111
			    File libFolder = new File(folder,"scripting/lib");
112
			    if( libFolder.exists() ) {
113
			    	manager.addLibFolder(libFolder);
114
			    }
115
			}
116
	    }
117
	    File autorun_file = null;
118
	    ScriptingBaseScript autorun = null;
119
	    for( File pluginsFolder : pluginsFolders ) {
120
		    File[] folders = pluginsFolder.listFiles();
121
		    for (File folder : folders) {
122
		    	autorun_file = new File(folder,"scripting/scripts/autorun.inf");
123
			    if( autorun_file.exists() ) {
124
			    	autorun = manager.getScript(autorun_file);
125
			    	try {
126
			    		autorun.run();
127
			    	} catch(Exception ex) {
128
			    		logger.warn("Can't execute autorun from '"+autorun_file.getAbsolutePath()+"'.",ex);
129
			    	}
130
			    }
131
			}
132
	    }
133
    	try {
134
    		autorun_file = new File( manager.getRootUserFolder(),"autorun.inf" );
135
    		if( autorun_file.exists() ) {
136
	    	    autorun = (ScriptingBaseScript) manager.getUserFolder().getUnit(new File("autorun.inf"));
137
	    	    if( autorun!=null) {
138
	    	    	autorun.run();
139
	    	    }
140
    		}
141
    	} catch(Exception ex) {
142
    		logger.warn("Can't execute autorun in home.",ex);
143
    	}
53
    public void execute(String actionCommand) {
54
        this.execute(actionCommand, null);
55
    }
144 56

  
145
	    /*
146
	     * 
147
	    ProviderManager providerManager = InstallerProviderLocator.getProviderManager();
148
        providerManager.addProviderFactory(new ScriptingInstallerProviderFactory());
149
        */
150
	}
151
	
152
	public boolean isEnabled() {
153
		return true;
154
	}
57
    public void execute(String command, Object[] args) {
58
        ScriptingUIManager uimanager = ScriptingSwingLocator.getUIManager();
59
        WindowManager winmanager = ToolsSwingLocator.getWindowManager();
155 60

  
156
	public boolean isVisible() {
157
		return true;
158
	}
61
        if ("tools-scripting-launcher".equalsIgnoreCase(command)) {
62
            winmanager.showWindow(uimanager.createLauncher(), uimanager.getTranslation("Scripting_Launcher"), WindowManager.MODE.TOOL);
159 63

  
64
        } else if ("tools-scripting-composer".equalsIgnoreCase(command)) {
65
            DynObject preferences = this.getPlugin().getPluginProperties();
66
            Boolean composerUseHisWindowManager = (Boolean) preferences.getDynValue("ComposerUseHisWindowManager");
67
            JScriptingComposer composer = uimanager.createComposer();
68
            if (composerUseHisWindowManager.booleanValue()) {
69
                winmanager = new DefaultWindowManager();
70
                composer.setWindowManager(winmanager);
71
                winmanager.showWindow(composer, uimanager.getTranslation("Scripting_Composer"), WindowManager.MODE.WINDOW);
72
            } else {
73
                winmanager.showWindow(composer, uimanager.getTranslation("Scripting_Composer"), WindowManager.MODE.WINDOW);
74
            }
75

  
76
        } else {
77
            ScriptingBaseScript script = uimanager.getManager().getScript(command);
78
            if (script != null) {
79
                script.run(args);
80
            } else {
81
                ApplicationManager application = ApplicationLocator.getManager();
82
                application.messageDialog("Can't locate script '" + command + "'.", "ScriptLaunch", JOptionPane.OK_OPTION);
83
            }
84
        }
85
    }
86

  
87
    public void initialize() {
88
        IconThemeHelper.registerIcon("action", "tools-scripting-launcher", this);
89
        IconThemeHelper.registerIcon("action", "tools-scripting-composer", this);
90
        IconThemeHelper.registerIcon("action", "tools-scripting-console-jython", this);
91
    }
92

  
93
    public void postInitialize() {
94
        super.postInitialize();
95
        ScriptingManager manager = ScriptingLocator.getManager();
96
        PluginsManager pluginManager = PluginsLocator.getManager();
97

  
98
        File home = this.getPlugin().getPluginHomeFolder();
99
        manager.setHomeFolder(home);
100

  
101
        List<File> pluginsFolders = Arrays.asList(pluginManager.getPluginsFolder().listFiles());
102
        for (File pluginsFolder : pluginsFolders) {
103
            File[] folders = pluginsFolder.listFiles();
104
            for (File folder : folders) {
105
                File scriptsFolder = new File(folder, "scripting/scripts");
106
                if (scriptsFolder.exists()) {
107
                    manager.registerSystemFolder(folder.getName(), scriptsFolder);
108
                }
109
                File libFolder = new File(folder, "scripting/lib");
110
                if (libFolder.exists()) {
111
                    manager.addLibFolder(libFolder);
112
                }
113
            }
114
        }
115
        File autorun_file = null;
116
        ScriptingBaseScript autorun = null;
117
        for (File pluginsFolder : pluginsFolders) {
118
            File[] folders = pluginsFolder.listFiles();
119
            for (File folder : folders) {
120
                autorun_file = new File(folder, "scripting/scripts/autorun.inf");
121
                if (autorun_file.exists()) {
122
                    autorun = manager.getScript(autorun_file);
123
                    try {
124
                        autorun.run();
125
                    } catch (Exception ex) {
126
                        logger.warn("Can't execute autorun from '" + autorun_file.getAbsolutePath() + "'.", ex);
127
                    }
128
                }
129
            }
130
        }
131
        try {
132
            autorun_file = new File(manager.getRootUserFolder(), "autorun.inf");
133
            if (autorun_file.exists()) {
134
                autorun = (ScriptingBaseScript) manager.getUserFolder().getUnit(new File("autorun.inf"));
135
                if (autorun != null) {
136
                    autorun.run();
137
                }
138
            }
139
        } catch (Exception ex) {
140
            logger.warn("Can't execute autorun in home.", ex);
141
        }
142

  
143
        /*
144
         * 
145
         ProviderManager providerManager = InstallerProviderLocator.getProviderManager();
146
         providerManager.addProviderFactory(new ScriptingInstallerProviderFactory());
147
         */
148
    }
149

  
150
    public boolean isEnabled() {
151
        return true;
152
    }
153

  
154
    public boolean isVisible() {
155
        return true;
156
    }
157

  
160 158
}

Also available in: Unified diff