Revision 468 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
39 39
import org.gvsig.tools.i18n.I18nManager;
40 40
import org.gvsig.tools.swing.api.ToolsSwingLocator;
41 41
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
42
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
43

  
42 44
import org.slf4j.Logger;
43 45
import org.slf4j.LoggerFactory;
44 46

  
47
public class DefaultScriptingUIManager implements ScriptingUIManager {
45 48

  
46
public class DefaultScriptingUIManager implements ScriptingUIManager{
47

  
48
	private final static Logger logger= LoggerFactory.getLogger(DefaultScriptingUIManager.class);
49
;
49
    private final static Logger logger = LoggerFactory.getLogger(DefaultScriptingUIManager.class);
50
    ;
50 51
	private ScriptingManager manager;
51
	private Map<String,URL> userHelps= new HashMap<String, URL>();
52
	private I18nManager i18nManager;
53
	
52
    private Map<String, URL> userHelps = new HashMap<String, URL>();
53
    private I18nManager i18nManager;
54
    private WindowManager windowsManager = null;
54 55

  
56
    public DefaultScriptingUIManager() {
55 57

  
56
	public DefaultScriptingUIManager(){
57
		
58
		this.manager =  ScriptingLocator.getManager();
59
		this.manager.put("ScriptingUIManager",this);
60
		
61
		this.i18nManager = ToolsLocator.getI18nManager();
62
	}
63
	
64
	public JScriptingComposer createComposer() {
65
		return new DefaultJScriptingComposer(this);
66
	}
58
        this.manager = ScriptingLocator.getManager();
59
        this.manager.put("ScriptingUIManager", this);
67 60

  
68
	public JPanel createInstaller() {
69
		// TODO Auto-generated method stub
70
		return null;
71
	}
61
        this.i18nManager = ToolsLocator.getI18nManager();
62
    }
72 63

  
73
	public JScriptingLauncher createLauncher() {
74
		return new DefaultJScriptingLauncher(this);
75
	}
64
    public JScriptingComposer createComposer() {
65
        return new DefaultJScriptingComposer(this);
66
    }
76 67

  
77
	public ImageIcon getIcon(String name){
78
		return this.getIcon(name, null);
79
	}
80
	
81
	public ImageIcon getIcon(String name, String size) {
82
		if( name == null ) {
83
			return new ImageIcon();
84
		}
85
		String tamanyo = "16x16/";
86
		if(size != null && size.equals("big"))
87
			tamanyo = "32x32/";
88
		ClassLoader loader = this.getClass().getClassLoader();
89
		URL url = loader.getResource("org/gvsig/scripting/images/"+tamanyo+name+".png");
90
		if (url == null){
91
			url = loader.getResource("org/gvsig/scripting/images/"+tamanyo+"image-missing.png");
92
		}
93
		if (url == null){
94
			return new ImageIcon();
95
		}
96
		return new ImageIcon(url);
97
	}
68
    public JPanel createInstaller() {
69
        // TODO Auto-generated method stub
70
        return null;
71
    }
98 72

  
99
	public ScriptingManager getManager() {
100
		return this.manager;
101
	}
102
	
103
	public JPanel getAPIHelp(){
104
		JPanel panel = new JPanel();
105
		panel.setLayout(new BorderLayout());
106
                HelpSet hs = this.getManager().getHelpManager().getHelpSet();
107
		panel.add(new JHelp(hs),BorderLayout.CENTER);
108
		panel.setPreferredSize(new Dimension(800,600));
109
		return panel;
110
	}
73
    public JScriptingLauncher createLauncher() {
74
        return new DefaultJScriptingLauncher(this);
75
    }
111 76

  
112
	public String[] getPrerreferedLanguages(){
113
		String curr = Locale.getDefault().getLanguage().toLowerCase();
114
		if(curr.equals("gl")){
115
			return new String[]{"gl","es","en"};
116
		}
117
		if(curr.equals("ca")){
118
			return new String[]{"ca","es","en"};
119
		}
120
		if(curr.equals("eu")){
121
			return new String[]{"eu","es","en"};
122
		}
123
		if(curr.equals("va")){
124
			return new String[]{"va","ca","es","en"};
125
		}
126
		return new String[]{curr,"en","es"};
127
	}
128
	
129
	public JPanel getUserHelp() {
130
		String[] langs= this.getPrerreferedLanguages();
131
		URL url=null;
132
		for (int i=0; i<langs.length;i++){
133
			url = this.userHelps.get(langs[i]);
134
			if(url!=null){
135
				break;
136
			}
137
		}
77
    public ImageIcon getIcon(String name) {
78
        return this.getIcon(name, null);
79
    }
138 80

  
139
		if(url==null){
140
			logger.warn("Can't have help");
141
			return null;
142
		}
143
		
144
		URL[] urls = new URL[1];
145
		urls[0] = url;
146
        ClassLoader loader = new URLClassLoader(urls,this.getClass().getClassLoader());
147
        
148
		HelpSet helpSet=null;
149
		try {
150
			URL resource;
151
			resource = loader.getResource("org/gvsig/scripting/help/help.hs");
152
			
153
			helpSet = new HelpSet(loader,resource);
154
		} catch (HelpSetException e) {
155
			logger.warn("Can't load helpset '"+url.toString()+"'.",e);
156
			return null;
157
		}
158
		
159
		JPanel panel = new JPanel();
160
		panel.setLayout(new BorderLayout());
161
		panel.add(new JHelp(helpSet),BorderLayout.CENTER);
162
		panel.setPreferredSize(new Dimension(800,600));
163
		return panel;
81
    public ImageIcon getIcon(String name, String size) {
82
        if (name == null) {
83
            return new ImageIcon();
84
        }
85
        String tamanyo = "16x16/";
86
        if (size != null && size.equals("big")) {
87
            tamanyo = "32x32/";
88
        }
89
        ClassLoader loader = this.getClass().getClassLoader();
90
        URL url = loader.getResource("org/gvsig/scripting/images/" + tamanyo + name + ".png");
91
        if (url == null) {
92
            url = loader.getResource("org/gvsig/scripting/images/" + tamanyo + "image-missing.png");
93
        }
94
        if (url == null) {
95
            return new ImageIcon();
96
        }
97
        return new ImageIcon(url);
98
    }
164 99

  
165
	}
100
    public ScriptingManager getManager() {
101
        return this.manager;
102
    }
166 103

  
167
	public void addUserHelp(String langName, URL resource) {
168
		this.userHelps.put(langName.toLowerCase(), resource);
169
	}
170
	
171
	public AboutManager getAboutManager(){
172
		return AboutLocator.getManager();
173
	}
104
    public JPanel getAPIHelp() {
105
        JPanel panel = new JPanel();
106
        panel.setLayout(new BorderLayout());
107
        HelpSet hs = this.getManager().getHelpManager().getHelpSet();
108
        panel.add(new JHelp(hs), BorderLayout.CENTER);
109
        panel.setPreferredSize(new Dimension(800, 600));
110
        return panel;
111
    }
174 112

  
113
    public String[] getPrerreferedLanguages() {
114
        String curr = Locale.getDefault().getLanguage().toLowerCase();
115
        if (curr.equals("gl")) {
116
            return new String[]{"gl", "es", "en"};
117
        }
118
        if (curr.equals("ca")) {
119
            return new String[]{"ca", "es", "en"};
120
        }
121
        if (curr.equals("eu")) {
122
            return new String[]{"eu", "es", "en"};
123
        }
124
        if (curr.equals("va")) {
125
            return new String[]{"va", "ca", "es", "en"};
126
        }
127
        return new String[]{curr, "en", "es"};
128
    }
129

  
130
    public JPanel getUserHelp() {
131
        String[] langs = this.getPrerreferedLanguages();
132
        URL url = null;
133
        for (int i = 0; i < langs.length; i++) {
134
            url = this.userHelps.get(langs[i]);
135
            if (url != null) {
136
                break;
137
            }
138
        }
139

  
140
        if (url == null) {
141
            logger.warn("Can't have help");
142
            return null;
143
        }
144

  
145
        URL[] urls = new URL[1];
146
        urls[0] = url;
147
        ClassLoader loader = new URLClassLoader(urls, this.getClass().getClassLoader());
148

  
149
        HelpSet helpSet = null;
150
        try {
151
            URL resource;
152
            resource = loader.getResource("org/gvsig/scripting/help/help.hs");
153

  
154
            helpSet = new HelpSet(loader, resource);
155
        } catch (HelpSetException e) {
156
            logger.warn("Can't load helpset '" + url.toString() + "'.", e);
157
            return null;
158
        }
159

  
160
        JPanel panel = new JPanel();
161
        panel.setLayout(new BorderLayout());
162
        panel.add(new JHelp(helpSet), BorderLayout.CENTER);
163
        panel.setPreferredSize(new Dimension(800, 600));
164
        return panel;
165

  
166
    }
167

  
168
    public void addUserHelp(String langName, URL resource) {
169
        this.userHelps.put(langName.toLowerCase(), resource);
170
    }
171

  
172
    public AboutManager getAboutManager() {
173
        return AboutLocator.getManager();
174
    }
175

  
176
    private void showWindow(JPanel panel, String title, WindowManager.MODE mode) {
177
        WindowManager winmanager = this.getWindowManager();
178
        if( winmanager instanceof WindowManager_v2 ) {
179
            ((WindowManager_v2)winmanager).showWindow(panel, title, mode, getIcon("scripting_python").getImage());
180
        } else {
181
            winmanager.showWindow(panel, title, mode);
182
        }
183
    }
184
    
175 185
    public void showDialog(JPanel panel, String title) {
176
        WindowManager winmanager = ToolsSwingLocator.getWindowManager();
177
        winmanager.showWindow(panel, title, WindowManager.MODE.DIALOG);
186
        this.showWindow(panel, title, WindowManager.MODE.DIALOG);
178 187
    }
179 188

  
180 189
    public void showWindow(JPanel panel, String title) {
181
        WindowManager winmanager = ToolsSwingLocator.getWindowManager();
182
        winmanager.showWindow(panel, title, WindowManager.MODE.WINDOW);
190
        this.showWindow(panel, title, WindowManager.MODE.WINDOW);
183 191
    }
184 192

  
185 193
    public void showTool(JPanel panel, String title) {
186
        WindowManager winmanager = ToolsSwingLocator.getWindowManager();
187
        winmanager.showWindow(panel, title, WindowManager.MODE.TOOL);
194
        this.showWindow(panel, title, WindowManager.MODE.TOOL);
188 195
    }
189 196

  
190
	public JScriptingBrowser createBrowser(ScriptingUIManager uimanager, ScriptingFolder root, boolean foldersOnly) {
191
		return new DefaultJScriptingBrowser(uimanager, root, foldersOnly);
192
	}
193
	
194
	public JScriptingBrowser createBrowser(ScriptingUIManager uimanager, ScriptingFolder root) {
195
		return new DefaultJScriptingBrowser(uimanager, root, false);
196
	}
197
    public JScriptingBrowser createBrowser(ScriptingUIManager uimanager, ScriptingFolder root, boolean foldersOnly) {
198
        return new DefaultJScriptingBrowser(uimanager, root, foldersOnly);
199
    }
197 200

  
198
	public JCodeEditor createJCodeEditor(ScriptingUIManager uimanager, ScriptingScript script) {
199
		return new DefaultJCodeEditor(uimanager,script);
200
	}
201
    public JScriptingBrowser createBrowser(ScriptingUIManager uimanager, ScriptingFolder root) {
202
        return new DefaultJScriptingBrowser(uimanager, root, false);
203
    }
201 204

  
202
	public JDialogEditor createJDialogEditor(ScriptingUIManager uimanager, ScriptingDialog script) {
203
		return new DefaultJDialogEditor(uimanager,script);
204
	}
205
    public JCodeEditor createJCodeEditor(ScriptingUIManager uimanager, ScriptingScript script) {
206
        return new DefaultJCodeEditor(uimanager, script);
207
    }
205 208

  
206
	public JThinG createJThinG() {
207
		JThinG thing = new DefaultJThinG();
208
		return thing;
209
	}
209
    public JDialogEditor createJDialogEditor(ScriptingUIManager uimanager, ScriptingDialog script) {
210
        return new DefaultJDialogEditor(uimanager, script);
211
    }
210 212

  
211
	public JThinlet createJThinlet() {
212
		JThinlet thinlet = new DefaultJThinlet();
213
		return thinlet;
214
	}
213
    public JThinG createJThinG() {
214
        JThinG thing = new DefaultJThinG();
215
        return thing;
216
    }
215 217

  
216
	public SyntaxtHighlightTextComponent createSyntaxHighlightingPanel() {
217
		try {
218
			return new JRSyntaxTextArea();
219
		} catch( Throwable t) {
220
			logger.info("Can't create advanced SyntaxHighlightingPanel.", t);
221
			return new JEditorPaneSyntaxHighlighting();
222
		}
223
	}
224
	
225
	public String getTranslation(String key){
226
		if(this.i18nManager==null){
227
			this.i18nManager = ToolsLocator.getI18nManager();
228
		}
229
		return i18nManager.getTranslation(key);
230
	}
218
    public JThinlet createJThinlet() {
219
        JThinlet thinlet = new DefaultJThinlet();
220
        return thinlet;
221
    }
231 222

  
223
    public SyntaxtHighlightTextComponent createSyntaxHighlightingPanel() {
224
        try {
225
            return new JRSyntaxTextArea();
226
        } catch (Throwable t) {
227
            logger.info("Can't create advanced SyntaxHighlightingPanel.", t);
228
            return new JEditorPaneSyntaxHighlighting();
229
        }
230
    }
231

  
232
    public String getTranslation(String key) {
233
        if (this.i18nManager == null) {
234
            this.i18nManager = ToolsLocator.getI18nManager();
235
        }
236
        return i18nManager.getTranslation(key);
237
    }
238

  
239
    public WindowManager getWindowManager() {
240
        if( this.windowsManager==null ) {
241
            this.windowsManager = ToolsSwingLocator.getWindowManager();
242
        }
243
        return this.windowsManager;
244
    }
245

  
246
    public void setWindowManager(WindowManager windowsManager) {
247
        this.windowsManager = windowsManager;
248
    }
232 249
}

Also available in: Unified diff