Revision 273

View differences:

tags/org.gvsig.customize.app-1.2.43/org.gvsig.customize.app.mainplugin/buildNumber.properties
1
#Wed Aug 16 20:20:38 CEST 2017
2
buildNumber=53
tags/org.gvsig.customize.app-1.2.43/org.gvsig.customize.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<!--
2

  
3
    gvSIG. Desktop Geographic Information System.
4

  
5
    Copyright (C) 2007-2013 gvSIG Association.
6

  
7
    This program is free software; you can redistribute it and/or
8
    modify it under the terms of the GNU General Public License
9
    as published by the Free Software Foundation; either version 3
10
    of the License, or (at your option) any later version.
11

  
12
    This program is distributed in the hope that it will be useful,
13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
    GNU General Public License for more details.
16

  
17
    You should have received a copy of the GNU General Public License
18
    along with this program; if not, write to the Free Software
19
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
    MA  02110-1301, USA.
21

  
22
    For any additional information, do not hesitate to contact us
23
    at info AT gvsig.com, or visit our website www.gvsig.com.
24

  
25
-->
26
<assembly>
27
  <id>gvsig-plugin-package</id>
28
  <formats>
29
    <format>zip</format>
30
  </formats>
31
  <baseDirectory>${project.artifactId}</baseDirectory>
32
  <includeBaseDirectory>true</includeBaseDirectory>
33
  <files>
34
    <file>
35
      <source>target/${project.artifactId}-${project.version}.jar</source>
36
      <outputDirectory>lib</outputDirectory>
37
    </file>
38
    <file>
39
      <source>target/package.info</source>
40
    </file>
41
  </files>
42

  
43
  <fileSets>
44
    <fileSet>
45
      <directory>src/main/resources-plugin</directory>
46
      <outputDirectory>.</outputDirectory>
47
    </fileSet>
48
  </fileSets>
49
  
50

  
51
<!--
52
    Si le quito los comentarios y dejo la seccion includes vacia, me incluye
53
    si o si, todas depedencias, como si no hiciese caso del parametro 
54
    useTransitiveDependencies
55
  <dependencySets>
56
    <dependencySet>
57
      <useProjectArtifact>false</useProjectArtifact>
58
      <useTransitiveDependencies>false</useTransitiveDependencies>
59
      <outputDirectory>lib</outputDirectory>
60
      <includes>
61
      </includes>
62
    </dependencySet>
63
  </dependencySets>
64
-->
65

  
66
</assembly>
67

  
tags/org.gvsig.customize.app-1.2.43/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeTask.java
1
package org.gvsig.customize;
2

  
3
import java.io.File;
4
import java.io.IOException;
5
import java.util.ArrayList;
6
import java.util.Date;
7
import java.util.HashSet;
8
import java.util.Iterator;
9
import java.util.List;
10
import java.util.Locale;
11
import java.util.Set;
12
import java.util.logging.Level;
13
import java.util.regex.Matcher;
14
import java.util.regex.Pattern;
15
import javax.swing.JComponent;
16
import javax.swing.JOptionPane;
17
import javax.swing.SwingUtilities;
18
import org.apache.commons.io.FileUtils;
19
import org.apache.commons.lang.BooleanUtils;
20
import org.apache.commons.lang3.LocaleUtils;
21
import org.apache.commons.lang3.StringUtils;
22
import org.cresques.cts.IProjection;
23
import org.gvsig.andami.LocaleManager;
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.andami.PluginsLocator;
26
import org.gvsig.andami.PluginsManager;
27
import org.gvsig.andami.actioninfo.ActionInfo;
28
import org.gvsig.andami.actioninfo.ActionInfoManager;
29
import org.gvsig.andami.firewall.FirewallConfiguration;
30
import org.gvsig.andami.persistence.serverData.ServerDataPersistence;
31
import org.gvsig.andami.ui.mdiFrame.MainFrame;
32
import org.gvsig.app.ApplicationLocator;
33
import org.gvsig.app.ApplicationManager;
34
import org.gvsig.app.project.ProjectManager;
35
import org.gvsig.app.project.ProjectPreferences;
36
import org.gvsig.app.project.documents.view.ViewManager;
37
import org.gvsig.installer.lib.api.InstallerLocator;
38
import org.gvsig.installer.lib.api.InstallerManager;
39
import org.gvsig.installer.lib.api.PackageInfo;
40
import org.gvsig.installer.lib.api.execution.InstallPackageService;
41
import org.gvsig.tools.ToolsLocator;
42
import org.gvsig.tools.dynobject.DynObject;
43
import org.gvsig.tools.i18n.I18nManager;
44
import org.gvsig.tools.observer.ObservableHelper;
45
import org.gvsig.tools.packageutils.PackageManager;
46
import org.gvsig.tools.swing.api.ToolsSwingLocator;
47
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
48
import org.gvsig.tools.task.SimpleTaskStatus;
49
import org.gvsig.tools.task.impl.BaseTaskStatus;
50
import org.gvsig.utils.swing.jcomboServer.ServerData;
51
import org.slf4j.Logger;
52
import org.slf4j.LoggerFactory;
53

  
54
public class CustomizeTask implements Runnable {
55

  
56
    private final static Logger logger = LoggerFactory.getLogger(CustomizeExtension.class);
57

  
58
    private static final String PROXY_SECTION = "httpproxy";
59
    private static final String CRS_SECTION = "crs";
60
    private static final String THEME_SECTION = "theme";
61

  
62
    private int errorCount = 0;
63
    private DynObject pluginProperties = null;
64
    private Class scriptingExtension = null;
65
    private PluginServices plugin = null;
66

  
67
    public CustomizeTask() {
68
    }
69

  
70
    private void showWindow(final JComponent component, final String title, final WindowManager.MODE mode) {
71
        if (!SwingUtilities.isEventDispatchThread()) {
72
            SwingUtilities.invokeLater(new Runnable() {
73
                @Override
74
                public void run() {
75
                    showWindow(component, title, mode);
76
                }
77
            });
78
            try {
79
                Thread.sleep(10);
80
            } catch (InterruptedException ex) {
81
                // Do nothing
82
            }
83
            return;
84
        }
85
        ToolsSwingLocator.getWindowManager().showWindow(
86
                component,
87
                title,
88
                mode
89
        );
90
    }
91

  
92
    private static class MyServerData {
93

  
94
        private final ServerDataPersistence serversDataPersistence;
95

  
96
        public MyServerData(ServerDataPersistence serversDataPersistence) {
97
            this.serversDataPersistence = serversDataPersistence;
98
        }
99

  
100
        public List<ServerData> getServerData() {
101
            return this.serversDataPersistence.getServerData();
102
        }
103

  
104
        public void remove(String serverAddress) {
105
            if (StringUtils.isBlank(serverAddress)) {
106
                return;
107
            }
108
            Iterator<ServerData> it = getServerData().iterator();
109
            while (it.hasNext()) {
110
                ServerData x = it.next();
111
                if (serverAddress.equalsIgnoreCase(x.getServerAddress())) {
112
                    it.remove();
113
                    return;
114
                }
115
            }
116
        }
117

  
118
        public void add(String server, String protocol) {
119
            if (StringUtils.isBlank(server)) {
120
                return;
121
            }
122
            this.add(new ServerData(server, protocol));
123
        }
124

  
125
        public void add(ServerData server) {
126
            String address = server.getServerAddress().trim();
127
            for (int i = 0; i < getServerData().size(); i++) {
128
                ServerData sd = getServerData().get(i);
129
                if (sd.getServerAddress().trim().equals(address)) {
130
                    getServerData().set(i, server);
131
                    return;
132
                }
133
            }
134
            getServerData().add(server);
135
        }
136

  
137
        public boolean contains(String serverAddress) {
138
            if (StringUtils.isBlank(serverAddress)) {
139
                return false;
140
            }
141
            serverAddress = serverAddress.trim();
142
            for (int i = 0; i < getServerData().size(); i++) {
143
                String address = getServerData().get(i).getServerAddress().trim();
144
                if (serverAddress.equalsIgnoreCase(address)) {
145
                    return true;
146
                }
147
            }
148
            return false;
149
        }
150
    }
151

  
152
    private PluginServices getPlugin() {
153
        if (this.plugin == null) {
154
            PluginsManager pluginsManager = PluginsLocator.getManager();
155
            this.plugin = pluginsManager.getPlugin(this);
156
        }
157
        return this.plugin;
158
    }
159

  
160
    protected PluginServices getPlugin(String name) {
161
        PluginsManager pluginsManager = PluginsLocator.getManager();
162
        return pluginsManager.getPlugin(name);
163
    }
164

  
165
    private Class getScriptingExtension() {
166
        if (this.scriptingExtension == null) {
167
            try {
168
                this.scriptingExtension = Class.forName("org.gvsig.scripting.app.extension.ScriptingExtension");
169
            } catch (Throwable ex) {
170
                return null;
171
            }
172
        }
173
        return this.scriptingExtension;
174
    }
175

  
176
    protected void errors_add(String message, Throwable th) {
177
        errorCount++;
178
        logger.warn(message, th);
179
    }
180

  
181
    protected int errors_count() {
182
        return errorCount;
183
    }
184

  
185
    protected void errors_reset() {
186
        this.errorCount = 0;
187
    }
188

  
189
    protected DynObject getPluginProperties() {
190
        if (this.pluginProperties == null) {
191
            this.pluginProperties = this.getPlugin().getPluginProperties();
192
        }
193
        return this.pluginProperties;
194
    }
195

  
196
    protected void setProperty(String name, Object value) {
197
        this.getPluginProperties().setDynValue(name, value);
198
    }
199

  
200
    protected Object getProperty(String name) {
201
        return this.getPluginProperties().getDynValue(name);
202
    }
203

  
204
    protected String getPropertyString(String name) {
205
        return (String) this.getProperty(name);
206
    }
207

  
208
    protected int getPropertyInt(String name) {
209
        return ((Integer) this.getProperty(name)).intValue();
210
    }
211

  
212
    protected boolean getPropertyBoolean(String name) {
213
        return ((Boolean) this.getProperty(name)).booleanValue();
214
    }
215

  
216
    protected void setValue(DynObject config, String section, String option, String value) {
217
        Object subconfig = config.getDynValue(section);
218
        if (subconfig instanceof DynObject) {
219
            ((DynObject) subconfig).setDynValue(option, value);
220
        } else {
221
            config.setDynValue(option, value);
222
        }
223
    }
224

  
225
    protected String getValue(DynObject config, String section, String option, String defaultValue) {
226
        String value = null;
227
        Object subconfig = null;
228
        if (!StringUtils.isBlank(section)) {
229
            subconfig = config.getDynValue(section);
230
        }
231
        if (subconfig instanceof DynObject) {
232
            Object v = ((DynObject) subconfig).getDynValue(option);
233
            if (v != null) {
234
                value = v.toString();
235
            }
236
        } else {
237
            Object v = config.getDynValue(option);
238
            if (v != null) {
239
                value = v.toString();
240
            }
241
        }
242
        if (StringUtils.isBlank(value)) {
243
            return defaultValue;
244
        }
245
        if (THEME_SECTION.equalsIgnoreCase(section)) {
246
            return value;
247
        }
248
        if (value.contains("${")) {
249
            value = expand(config, section, value);
250
        }
251
        return value;
252
    }
253
    private static final Pattern VARIABLE = Pattern.compile("[$][{]([a-zA-Z0-9_/]+)[}]");
254

  
255
    private String expand(DynObject config, String section, String s) {
256
        String s2 = s;
257
        String v = null;
258
        Matcher m = VARIABLE.matcher(s);
259
        while (m.find()) {
260
            String name = m.group(1);
261
            String[] ss = name.split("/");
262
            switch (ss.length) {
263
                case 2:
264
                    v = getValue(config, ss[0], ss[1], "");
265
                    break;
266
                case 1:
267
                    v = getValue(config, section, ss[0], "");
268
                    break;
269
                default:
270
                    v = name;
271
            }
272
            s2 = m.replaceFirst(v);
273
            m = VARIABLE.matcher(s2);
274
        }
275

  
276
        return s2;
277
    }
278

  
279
    private void configureLocale(DynObject config) {
280
        if (!BooleanUtils.isTrue((Boolean) getProperty("configureLocale"))) {
281
            return;
282
        }
283
        try {
284
            LocaleManager localeManager = PluginsLocator.getLocaleManager();
285
            String localeCode = getValue(config, null, "default_locale", null);
286
            if( localeCode != null ) {
287
                Locale locale = LocaleUtils.toLocale(localeCode);
288
                localeManager.setCurrentLocale(locale);
289

  
290
                logger.info("Set default locale to '" + localeCode + "'.");
291
                setProperty("configureLocale", Boolean.FALSE);
292
            }
293
        } catch (Exception ex) {
294
            errors_add("Can't apply locale configuration.", ex);
295
        }
296
    }
297

  
298
    private void configureHttpproxy(DynObject config) {
299
        if (!BooleanUtils.isTrue((Boolean) getProperty("configureHTTPPproxy"))) {
300
            return;
301
        }
302
        try {
303
            FirewallConfiguration conf = getFirewallConfiguration();
304
            String host = getValue(config, "httpproxy", "host", "");
305
            String port = getValue(config, "httpproxy", "port", "");
306
            String nonProxyHosts = getValue(config, "httpproxy", "nonProxyHosts", "");
307
            String userName = getValue(config, "httpproxy", "username", "");
308
            String password = getValue(config, "httpproxy", "password", "");
309
            String enabled = getValue(config, "httpproxy", "enabled", "false");
310
            conf.setHost(host, port);
311
            conf.setNonProxyHosts(nonProxyHosts);
312
            if (!StringUtils.isBlank(userName)) {
313
                conf.setUserName(userName);
314
            }
315
            if (!StringUtils.isBlank(password)) {
316
                conf.setPassword(password);
317
            }
318
            conf.setEnabled(BooleanUtils.toBoolean(enabled));
319
            conf.apply();
320
            logger.info("Set httpproxy host:port to '" + host + ":" + port + "', enabled " + BooleanUtils.toBoolean(enabled) + ".");
321
            setProperty("configureHTTPPproxy", Boolean.FALSE);
322
        } catch (Exception ex) {
323
            errors_add("Can't apply proxy configuration.", ex);
324
        }
325
    }
326

  
327
    private FirewallConfiguration getFirewallConfiguration() {
328
        FirewallConfiguration conf = (FirewallConfiguration) ToolsLocator.getInstance().get(ToolsLocator.FIREWALL_MANAGER_NAME);
329
//        FirewallConfiguration conf = PluginsLocator.getManager().getFirewallConfiguration();
330
        return conf;
331
    }
332

  
333
    private boolean configureHttpproxyUser(DynObject config) {
334
        try {
335
            FirewallConfiguration conf = getFirewallConfiguration();
336
            String userName = conf.getUserName();
337
            String password = conf.getPassword();
338

  
339
            HttpProxyLoginDialog dialog = new HttpProxyLoginDialog();
340
            if (StringUtils.isBlank(userName)) {
341
                userName = getValue(config, "httpproxy", "username", "");
342
            }
343
            if (StringUtils.isBlank(password)) {
344
                password = getValue(config, "httpproxy", "password", "");
345
            }
346

  
347
            dialog.setUserName(userName);
348
            dialog.setPassword(password);
349
            if (dialog.login()) {
350
                conf.setUserName(dialog.getUserName());
351
                conf.setPassword(dialog.getPassword());
352
                conf.setEnabled(true);
353
                conf.apply();
354
            } else {
355
                conf.setUserName(dialog.getUserName());
356
                conf.setPassword("");
357
                conf.setEnabled(false);
358
                conf.apply();
359
            }
360
            logger.info("Set httpproxy user to '" + conf.getUserName() + "'.");
361
            logger.info("Set httpproxy password.");
362
            // Set values in config to allow variable sustitution
363
            setValue(config, "httpproxy", "username", conf.getUserName());
364
            setValue(config, "httpproxy", "password", conf.getPassword());
365
            return true;
366
        } catch (Exception ex) {
367
            errors_add("Can't apply username/password proxy configuration.", ex);
368
            return false;
369
        }
370
    }
371

  
372
    private void configureCRS(DynObject config) {
373
        if (!BooleanUtils.isTrue((Boolean) getProperty("configureProjection"))) {
374
            return;
375
        }
376
        try {
377
            ProjectManager projectManager = ApplicationLocator.getProjectManager();
378
            ProjectPreferences projectPreferences = projectManager.getProjectPreferences();
379
            DynObject crsOptions = (DynObject) config.getDynValue("CRS");
380
            IProjection proj = (IProjection) crsOptions.getDynValue("default_projection");
381
            projectPreferences.setDefaultProjection(proj.getFullCode());
382
            logger.info("Set default projection to '" + proj.getFullCode() + "'.");
383
            setProperty("configureProjection", Boolean.FALSE);
384
        } catch (Exception ex) {
385
            errors_add("Can't apply CRS configuration.", ex);
386
        }
387
    }
388

  
389
    private void configureServers(String protocol, String pluginName, List<DynObject> servers) {
390
        if (!getPropertyBoolean("configureOGCServers_" + protocol)) {
391
            return;
392
        }
393
        if( servers==null ) {
394
            logger.info("No servers specifieds for protocol "+protocol+".");
395
            return;
396
        }
397
        if (pluginName == null) {
398
            logger.info("Skip '" + pluginName + "' servers configurations..");
399
            return;
400
        }
401
        PluginServices plugin = getPlugin(pluginName);
402
        if (plugin == null) {
403
            logger.info("Skip '" + pluginName + "' servers configurations. Plugin not installed.");
404
            return;
405
        }
406
        ServerDataPersistence serversDataPersistence = (ServerDataPersistence) plugin.getPluginProperties().getDynValue("Servers");
407
        if (serversDataPersistence == null) {
408
            serversDataPersistence = new ServerDataPersistence(protocol);
409
            plugin.getPluginProperties().setDynValue("Servers", serversDataPersistence);
410
        }
411
        MyServerData serversData = new MyServerData(serversDataPersistence);
412

  
413
        for (int i = 0; i < servers.size(); i++) {
414
            String server = (String) servers.get(i).getDynValue("url");
415
            boolean remove = BooleanUtils.isTrue((Boolean) servers.get(i).getDynValue("remove"));
416
            if (remove) {
417
                serversData.remove(server);
418
                logger.info("Remove '" + protocol + "' server '" + server + "'.");
419
            } else {
420
                if (!serversData.contains(server)) {
421
                    serversData.add(server, protocol);
422
                    logger.info("Insert '" + protocol + "' server '" + server + "'.");
423
                }
424
            }
425
        }
426
        plugin.savePluginProperties();
427
        logger.info("Save properties of plugin '" + pluginName + "'.");
428
        setProperty("configureOGCServers_" + protocol, Boolean.FALSE);
429

  
430
    }
431

  
432
    private void createActionsScripts(DynObject config) {
433
        List<DynObject> scriptActions = (List<DynObject>) config.getDynValue("scriptActions");
434
        if (scriptActions == null) {
435
            return;
436
        }
437
        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
438

  
439
        for (int i = 0; i < scriptActions.size(); i++) {
440
            DynObject scriptAction = scriptActions.get(i);
441
            String name = (String) scriptAction.getDynValue("name");
442
            ActionInfo action = actionManager.getAction(name);
443
            if (action == null) {
444
                String script = (String) scriptAction.getDynValue("script");
445
                String label = (String) scriptAction.getDynValue("label");
446
                String icon = (String) scriptAction.getDynValue("icon");
447
                long position = ((Long) (scriptAction.getDynValue("position"))).longValue();
448
                String tip = (String) scriptAction.getDynValue("tip");
449
                createActionScript(name, script, label, icon, position, tip);
450
            } else {
451
                logger.info("Can't create action script, action '" + name + "' already defined.");
452
            }
453
        }
454
    }
455

  
456
    private void addTOCActions(DynObject config) {
457
        List<DynObject> viewTOCActions = (List<DynObject>) config.getDynValue("viewTocActions");
458
        if (viewTOCActions == null) {
459
            return;
460
        }
461
        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
462
        ProjectManager projectManager = ApplicationLocator.getProjectManager();
463
        ViewManager viewManager = (ViewManager) projectManager.getDocumentManager(ViewManager.TYPENAME);
464
        for (int i = 0; i < viewTOCActions.size(); i++) {
465
            DynObject viewTOCAction = viewTOCActions.get(i);
466
            String name = (String) viewTOCAction.getDynValue("name");
467
            ActionInfo action = actionManager.getAction(name);
468
            if (action != null) {
469
                String group = (String) viewTOCAction.getDynValue("group");
470
                int grouporder = ((Long) (viewTOCAction.getDynValue("grouporder"))).intValue();
471
                viewManager.addTOCContextAction(action, group, grouporder);
472
            } else {
473
                logger.info("Can't add context menu entry to the view TOC. Action '" + name + "' don't exists.");
474
            }
475
        }
476
    }
477

  
478
    private void addMenuActions(DynObject config) {
479
        List<DynObject> menuActions = (List<DynObject>) config.getDynValue("menuActions");
480
        if (menuActions == null) {
481
            return;
482
        }
483
        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
484
        ApplicationManager application = ApplicationLocator.getManager();
485
        for (int i = 0; i < menuActions.size(); i++) {
486
            DynObject menuAction = menuActions.get(i);
487
            String name = (String) menuAction.getDynValue("name");
488
            ActionInfo action = actionManager.getAction(name);
489
            if (action != null) {
490
                String text = (String) menuAction.getDynValue("text");
491
                application.addMenu(action, text);
492
            } else {
493
                logger.info("Can't add menu entry. Action '" + name + "' don't exists.");
494
            }
495
        }
496
    }
497

  
498
    private void addToolActions(DynObject config) {
499
        List<DynObject> toolActions = (List<DynObject>) config.getDynValue("toolActions");
500
        if (toolActions == null) {
501
            return;
502
        }
503
        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
504
        ApplicationManager application = ApplicationLocator.getManager();
505
        for (int i = 0; i < toolActions.size(); i++) {
506
            DynObject toolAction = toolActions.get(i);
507
            String name = (String) toolAction.getDynValue("name");
508
            ActionInfo action = actionManager.getAction(name);
509
            if (action != null) {
510
                String toolbarName = (String) toolAction.getDynValue("toolbarName");
511
                application.addTool(action, toolbarName);
512
            } else {
513
                logger.info("Can't add tool entry. Action '" + name + "' don't exists.");
514
            }
515
        }
516
    }
517

  
518
    private ActionInfo createActionScript(String actionName, String scriptName, String label, String iconName, long position, String tip) {
519
        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
520

  
521
        Class scriptingExtension = this.getScriptingExtension();
522
        if (scriptingExtension == null) {
523
            logger.warn("Can't create action script '" + actionName + "', can't locate scripting extension");
524
            return null;
525
        }
526
        if (StringUtils.isBlank(iconName)) {
527
            iconName = null;
528
        }
529
        if (StringUtils.isBlank(tip)) {
530
            tip = actionName;
531
        }
532

  
533
        ActionInfo action = actionManager.createAction(scriptingExtension, actionName, label, scriptName, iconName, null, position, tip);
534
        return actionManager.registerAction(action);
535
    }
536

  
537
    @Override
538
    public void run() {
539

  
540
        errors_reset();
541

  
542
        MainFrame mainWindow = PluginsLocator.getMainFrame();
543

  
544
        try {
545
            Configuration configManager = new Configuration();
546
            DynObject config = configManager.load();
547

  
548
            if (config == null) {
549
                PluginsLocator.getMainFrame().messageDialog(
550
                        "_No_se_ha_podido_acceder_a_la_configuracion_de_personalizacion_Consulte_el_registro_de_errores_si_precisa_mas_informacion",
551
                        "_Atencion",
552
                        JOptionPane.WARNING_MESSAGE
553
                );
554
                return;
555
            }
556

  
557
            configureLocale(config);
558
            configureHttpproxy(config);
559
            DynObject httpProxyConfiguration = (DynObject) config.getDynValue("httpproxy");
560
            if (((Boolean) (httpProxyConfiguration.getDynValue("promptUserAndPassword"))).booleanValue()) {
561
                configureHttpproxyUser(config);
562
            }
563

  
564
            configureCRS(config);
565

  
566
            mainWindow.message("_Updating_server_information", JOptionPane.INFORMATION_MESSAGE);
567
            configureServers(
568
                    "WMS",
569
                    "org.gvsig.raster.wms.app.wmsclient",
570
                    (List<DynObject>) config.getDynValue("wmsUrls")
571
            );
572
            configureServers(
573
                    "WMTS",
574
                    "org.gvsig.raster.wmts.app.wmtsclient",
575
                    (List<DynObject>) config.getDynValue("wmtsUrls")
576
            );
577
            configureServers(
578
                    "WCS",
579
                    "org.gvsig.raster.wcs.app.wcsclient",
580
                    (List<DynObject>) config.getDynValue("wcsUrls")
581
            );
582
            configureServers(
583
                    "WFS",
584
                    "org.gvsig.wfs.app.mainplugin",
585
                    (List<DynObject>) config.getDynValue("wfsUrls")
586
            );
587

  
588

  
589
//
590
//            configureAllPlugins(config);
591
//
592
            createActionsScripts(config);
593

  
594
            addTOCActions(config);
595
            addMenuActions(config);
596
            addToolActions(config);
597

  
598
        } catch (Exception ex) {
599
            errors_add("Problems apply defaut configuration.", ex);
600
        }
601

  
602
        if (errors_count() > 0) {
603
            mainWindow.messageDialog(
604
                    "_Se_han_producido_errores_actualizando_la_configuracion_por_defecto_Consulte_el_registro_de_errores_si_precisa_mas_informacion",
605
                    "_Setting_custom_configuration",
606
                    JOptionPane.WARNING_MESSAGE
607
            );
608
        }
609
        installAdditionalPackages();
610
        mainWindow.message(null, JOptionPane.INFORMATION_MESSAGE);
611
    }
612

  
613
    private Set loadDefaultPackages(File packages) throws IOException {
614
        Set defaultPackages = new HashSet<String>();
615

  
616
        List<String> lines = FileUtils.readLines(packages);
617
        defaultPackages.clear();
618
        for (String line : lines) {
619
            line = line.trim();
620
            if (line.startsWith("#") || line.startsWith(";")) {
621
                continue;
622
            }
623
            defaultPackages.add(line.toLowerCase());
624
        }
625
        return defaultPackages;
626
    }
627

  
628
    /**
629
     * Workaround to bug in SimpleTaskStatus of gvSIG 2.2.0
630
     */
631
    private static class MyTaskStatus extends BaseTaskStatus {
632

  
633
        public MyTaskStatus(String title) {
634
            super(title);
635
        }
636

  
637
        public MyTaskStatus(String tittle, long minValue, long maxValue) {
638
            super(tittle, minValue, maxValue);
639
        }
640

  
641
        public void message(String message) {
642
            this.lastModification = new Date();
643
            super.message(message);
644
        }
645

  
646
    }
647

  
648
    private void installAdditionalPackages() {
649
        if (!BooleanUtils.isTrue((Boolean) getProperty("installAdditionalComponents"))) {
650
            return;
651
        }
652

  
653
        File defaultPackagesFile = new File(getPlugin().getPluginDirectory(), "defaultPackages");
654
        if (!defaultPackagesFile.exists()) {
655
            logger.info("Skip additional package instalation (don't exists " + defaultPackagesFile.getAbsolutePath() + ").");
656
            return;
657
        }
658

  
659
        I18nManager i18nManager = ToolsLocator.getI18nManager();
660
        boolean needRestart = false;
661
        SimpleTaskStatus taskStatus = new MyTaskStatus(i18nManager.getTranslation("_Installing_additional_components"));
662
        InstallPackagesPanel dialog = new InstallPackagesPanel(taskStatus);
663
        try {
664
            taskStatus.add();
665
            taskStatus.setAutoremove(true);
666

  
667
            showWindow(
668
                    dialog,
669
                    i18nManager.getTranslation("_Terminating_installation"),
670
                    WindowManager.MODE.WINDOW
671
            );
672
            taskStatus.message(i18nManager.getTranslation("_Preparing_additional_components_installation"));
673

  
674
            PluginsManager pluginsManmager = PluginsLocator.getManager();
675
            InstallerManager installerManager = InstallerLocator.getInstallerManager();
676
            InstallPackageService installer = null;
677
            List<PackageInfo> packagesToInstall = new ArrayList<PackageInfo>();
678
            Set<String> defaultSelectedPacakgeCodes = loadDefaultPackages(
679
                    defaultPackagesFile
680
            );
681

  
682
            installer = installerManager.getInstallPackageService();
683

  
684
            taskStatus.message(i18nManager.getTranslation("_Searching_available_packages"));
685
            installer.addBundlesFromDirectory(pluginsManmager.getInstallFolder(),taskStatus);
686

  
687
            taskStatus.message(i18nManager.getTranslation("_Filtering_packages"));
688
            for (String packageCode : defaultSelectedPacakgeCodes) {
689
                PackageInfo pkg = installer.getPackageInfo(packageCode);
690
                if (pkg != null) {
691
                    File folder = installerManager.getAddonFolder(pkg.getCode());
692
                    if (folder == null) {
693
                        packagesToInstall.add(pkg);
694
                    }
695
                }
696
            }
697
            if (!packagesToInstall.isEmpty()) {
698
                taskStatus.setRangeOfValues(1, packagesToInstall.size());
699
                for (int i = 0; i < packagesToInstall.size(); i++) {
700
                    PackageInfo pkg = packagesToInstall.get(i);
701
                    taskStatus.setCurValue(i + 1);
702
                    taskStatus.message(i18nManager.getTranslation("_Installing_{0}",
703
                            new String[] { pkg.getCode() }
704
                    ));
705
                    try {
706
                        logger.info("install package '" + pkg.getCode() + "'.");
707
                        installer.installPackage(pluginsManmager.getApplicationFolder(), pkg);
708
                        if (needRestart(installer,pkg)) {
709
                            needRestart = true;
710
                        }
711
                    } catch (Throwable th) {
712
                        logger.warn("can't install package '" + pkg.getCode() + "'.", th);
713
                    }
714
                }
715
                taskStatus.message(i18nManager.getTranslation("_Installation_terminated"));
716
                taskStatus.terminate();
717
                setProperty("installAdditionalComponents", Boolean.FALSE);
718
                if (needRestart) {
719
                    dialog.message(i18nManager.getTranslation("_Additional_components_installed_succesfully_Restart_applicaction"));
720
                } else {
721
                    dialog.message(i18nManager.getTranslation("_Additional_components_installed_succesfully"));
722
                }
723
            } else {
724
                taskStatus.message(i18nManager.getTranslation("_Installation_terminated"));
725
                taskStatus.terminate();
726
                dialog.message(i18nManager.getTranslation("_Additional_components_installed_succesfully"));
727
            }
728
            setProperty("installAdditionalComponents", Boolean.FALSE);
729
        } catch (Throwable th) {
730
            taskStatus.cancel();
731
            dialog.message(i18nManager.getTranslation("_Problems_installing_additional_components"));
732
            logger.warn("can't install additional packages.", th);
733

  
734
        } finally {
735
            taskStatus.remove();
736
        }
737
    }
738

  
739
    private boolean needRestart(InstallPackageService installer, PackageInfo pkg) {
740
//        return installer.needRestart(pkg);
741
        if( "plugin".equalsIgnoreCase(pkg.getType()) ) {
742
            return true;
743
        } else if( "symbols".equalsIgnoreCase(pkg.getType()) ) {
744
            return false;
745
        } else if( "jCRS_EPSG".equalsIgnoreCase(pkg.getType()) ) {
746
            return true;
747
        } else {
748
            return true;
749
        }
750

  
751
    }
752
}
tags/org.gvsig.customize.app-1.2.43/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.form
1
<?xml version="1.0" encoding="UTF-8" ?>
2

  
3
<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
4
  <Properties>
5
    <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
6
      <Dimension value="[400, 115]"/>
7
    </Property>
8
  </Properties>
9
  <AuxValues>
10
    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
11
    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
12
    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
13
    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
14
    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
15
    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
16
    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
17
    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
18
    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="4"/>
19
    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-107,0,0,1,-112"/>
20
  </AuxValues>
21
  <SubComponents>
22
    <Component class="javax.swing.JLabel" name="lblTitle">
23
      <Properties>
24
        <Property name="text" type="java.lang.String" value="Configuring installation"/>
25
      </Properties>
26
      <Constraints>
27
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
28
          <GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.3" weightY="0.0"/>
29
        </Constraint>
30
      </Constraints>
31
    </Component>
32
    <Component class="javax.swing.Box$Filler" name="filler1">
33
      <Properties>
34
        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
35
          <Dimension value="[4, 4]"/>
36
        </Property>
37
        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
38
          <Dimension value="[4, 4]"/>
39
        </Property>
40
        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
41
          <Dimension value="[4, 4]"/>
42
        </Property>
43
      </Properties>
44
      <AuxValues>
45
        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
46
      </AuxValues>
47
      <Constraints>
48
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
49
          <GridBagConstraints gridX="4" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
50
        </Constraint>
51
      </Constraints>
52
    </Component>
53
    <Component class="javax.swing.Box$Filler" name="filler2">
54
      <Properties>
55
        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
56
          <Dimension value="[4, 4]"/>
57
        </Property>
58
        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
59
          <Dimension value="[4, 4]"/>
60
        </Property>
61
        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
62
          <Dimension value="[4, 4]"/>
63
        </Property>
64
      </Properties>
65
      <AuxValues>
66
        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
67
      </AuxValues>
68
      <Constraints>
69
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
70
          <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
71
        </Constraint>
72
      </Constraints>
73
    </Component>
74
    <Container class="javax.swing.JPanel" name="pnlProgress">
75
      <Properties>
76
        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
77
          <Dimension value="[300, 80]"/>
78
        </Property>
79
      </Properties>
80
      <Constraints>
81
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
82
          <GridBagConstraints gridX="2" gridY="4" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
83
        </Constraint>
84
      </Constraints>
85

  
86
      <Layout>
87
        <DimensionLayout dim="0">
88
          <Group type="103" groupAlignment="0" attributes="0">
89
              <EmptySpace min="0" pref="382" max="32767" attributes="0"/>
90
          </Group>
91
        </DimensionLayout>
92
        <DimensionLayout dim="1">
93
          <Group type="103" groupAlignment="0" attributes="0">
94
              <EmptySpace min="0" pref="80" max="32767" attributes="0"/>
95
          </Group>
96
        </DimensionLayout>
97
      </Layout>
98
    </Container>
99
    <Component class="javax.swing.JButton" name="butClose">
100
      <Properties>
101
        <Property name="text" type="java.lang.String" value="Close"/>
102
      </Properties>
103
      <Constraints>
104
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
105
          <GridBagConstraints gridX="2" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
106
        </Constraint>
107
      </Constraints>
108
    </Component>
109
    <Component class="javax.swing.Box$Filler" name="filler3">
110
      <Properties>
111
        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
112
          <Dimension value="[0, 32767]"/>
113
        </Property>
114
      </Properties>
115
      <AuxValues>
116
        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
117
      </AuxValues>
118
      <Constraints>
119
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
120
          <GridBagConstraints gridX="4" gridY="10" gridWidth="1" gridHeight="1" fill="3" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.1"/>
121
        </Constraint>
122
      </Constraints>
123
    </Component>
124
    <Component class="javax.swing.JLabel" name="lblMessage">
125
      <Constraints>
126
        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
127
          <GridBagConstraints gridX="2" gridY="6" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
128
        </Constraint>
129
      </Constraints>
130
    </Component>
131
  </SubComponents>
132
  <LayoutCode>
133
    <CodeStatement>
134
      <CodeExpression id="1_layout">
135
        <CodeVariable name="layout" type="4096" declaredType="java.awt.GridBagLayout"/>
136
        <ExpressionOrigin>
137
          <ExpressionProvider type="CodeConstructor">
138
            <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
139
          </ExpressionProvider>
140
        </ExpressionOrigin>
141
      </CodeExpression>
142
      <StatementProvider type="CodeExpression">
143
        <CodeExpression id="1_layout"/>
144
      </StatementProvider>
145
    </CodeStatement>
146
    <CodeStatement>
147
      <CodeExpression id="1_layout"/>
148
      <StatementProvider type="CodeField">
149
        <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
150
      </StatementProvider>
151
      <Parameters>
152
        <CodeExpression id="2">
153
          <ExpressionOrigin>
154
            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
155
              <PropertyValue value="[0, 5, 0, 5, 0]"/>
156
            </Value>
157
          </ExpressionOrigin>
158
        </CodeExpression>
159
      </Parameters>
160
    </CodeStatement>
161
    <CodeStatement>
162
      <CodeExpression id="1_layout"/>
163
      <StatementProvider type="CodeField">
164
        <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
165
      </StatementProvider>
166
      <Parameters>
167
        <CodeExpression id="3">
168
          <ExpressionOrigin>
169
            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
170
              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
171
            </Value>
172
          </ExpressionOrigin>
173
        </CodeExpression>
174
      </Parameters>
175
    </CodeStatement>
176
    <CodeStatement>
177
      <CodeExpression id="4">
178
        <ExpressionOrigin>
179
          <ExpressionProvider type="ComponentRef">
180
            <ComponentRef name="."/>
181
          </ExpressionProvider>
182
        </ExpressionOrigin>
183
      </CodeExpression>
184
      <StatementProvider type="CodeMethod">
185
        <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
186
      </StatementProvider>
187
      <Parameters>
188
        <CodeExpression id="1_layout"/>
189
      </Parameters>
190
    </CodeStatement>
191
    <CodeStatement>
192
      <CodeExpression id="5_gridBagConstraints">
193
        <CodeVariable name="gridBagConstraints" type="20480" declaredType="java.awt.GridBagConstraints"/>
194
        <ExpressionOrigin>
195
          <ExpressionProvider type="CodeConstructor">
196
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
197
          </ExpressionProvider>
198
        </ExpressionOrigin>
199
      </CodeExpression>
200
      <StatementProvider type="CodeExpression">
201
        <CodeExpression id="5_gridBagConstraints"/>
202
      </StatementProvider>
203
    </CodeStatement>
204
    <CodeStatement>
205
      <CodeExpression id="5_gridBagConstraints"/>
206
      <StatementProvider type="CodeField">
207
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
208
      </StatementProvider>
209
      <Parameters>
210
        <CodeExpression id="6">
211
          <ExpressionOrigin>
212
            <Value type="int" value="2"/>
213
          </ExpressionOrigin>
214
        </CodeExpression>
215
      </Parameters>
216
    </CodeStatement>
217
    <CodeStatement>
218
      <CodeExpression id="5_gridBagConstraints"/>
219
      <StatementProvider type="CodeField">
220
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
221
      </StatementProvider>
222
      <Parameters>
223
        <CodeExpression id="7">
224
          <ExpressionOrigin>
225
            <Value type="int" value="2"/>
226
          </ExpressionOrigin>
227
        </CodeExpression>
228
      </Parameters>
229
    </CodeStatement>
230
    <CodeStatement>
231
      <CodeExpression id="5_gridBagConstraints"/>
232
      <StatementProvider type="CodeField">
233
        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
234
      </StatementProvider>
235
      <Parameters>
236
        <CodeExpression id="8">
237
          <ExpressionOrigin>
238
            <Value type="int" value="2"/>
239
          </ExpressionOrigin>
240
        </CodeExpression>
241
      </Parameters>
242
    </CodeStatement>
243
    <CodeStatement>
244
      <CodeExpression id="5_gridBagConstraints"/>
245
      <StatementProvider type="CodeField">
246
        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
247
      </StatementProvider>
248
      <Parameters>
249
        <CodeExpression id="9">
250
          <ExpressionOrigin>
251
            <Value type="int" value="21"/>
252
          </ExpressionOrigin>
253
        </CodeExpression>
254
      </Parameters>
255
    </CodeStatement>
256
    <CodeStatement>
257
      <CodeExpression id="5_gridBagConstraints"/>
258
      <StatementProvider type="CodeField">
259
        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
260
      </StatementProvider>
261
      <Parameters>
262
        <CodeExpression id="10">
263
          <ExpressionOrigin>
264
            <Value type="double" value="0.3"/>
265
          </ExpressionOrigin>
266
        </CodeExpression>
267
      </Parameters>
268
    </CodeStatement>
269
    <CodeStatement>
270
      <CodeExpression id="4"/>
271
      <StatementProvider type="CodeMethod">
272
        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
273
      </StatementProvider>
274
      <Parameters>
275
        <CodeExpression id="11_lblTitle">
276
          <CodeVariable name="lblTitle" type="8196" declaredType="javax.swing.JLabel"/>
277
          <ExpressionOrigin>
278
            <ExpressionProvider type="ComponentRef">
279
              <ComponentRef name="lblTitle"/>
280
            </ExpressionProvider>
281
          </ExpressionOrigin>
282
        </CodeExpression>
283
        <CodeExpression id="5_gridBagConstraints"/>
284
      </Parameters>
285
    </CodeStatement>
286
    <CodeStatement>
287
      <CodeExpression id="12_gridBagConstraints">
288
        <CodeVariable name="gridBagConstraints"/>
289
        <ExpressionOrigin>
290
          <ExpressionProvider type="CodeConstructor">
291
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
292
          </ExpressionProvider>
293
        </ExpressionOrigin>
294
      </CodeExpression>
295
      <StatementProvider type="CodeExpression">
296
        <CodeExpression id="12_gridBagConstraints"/>
297
      </StatementProvider>
298
    </CodeStatement>
299
    <CodeStatement>
300
      <CodeExpression id="12_gridBagConstraints"/>
301
      <StatementProvider type="CodeField">
302
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
303
      </StatementProvider>
304
      <Parameters>
305
        <CodeExpression id="13">
306
          <ExpressionOrigin>
307
            <Value type="int" value="4"/>
308
          </ExpressionOrigin>
309
        </CodeExpression>
310
      </Parameters>
311
    </CodeStatement>
312
    <CodeStatement>
313
      <CodeExpression id="12_gridBagConstraints"/>
314
      <StatementProvider type="CodeField">
315
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
316
      </StatementProvider>
317
      <Parameters>
318
        <CodeExpression id="14">
319
          <ExpressionOrigin>
320
            <Value type="int" value="0"/>
321
          </ExpressionOrigin>
322
        </CodeExpression>
323
      </Parameters>
324
    </CodeStatement>
325
    <CodeStatement>
326
      <CodeExpression id="4"/>
327
      <StatementProvider type="CodeMethod">
328
        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
329
      </StatementProvider>
330
      <Parameters>
331
        <CodeExpression id="15_filler1">
332
          <CodeVariable name="filler1" type="8196" declaredType="javax.swing.Box$Filler"/>
333
          <ExpressionOrigin>
334
            <ExpressionProvider type="ComponentRef">
335
              <ComponentRef name="filler1"/>
336
            </ExpressionProvider>
337
          </ExpressionOrigin>
338
        </CodeExpression>
339
        <CodeExpression id="12_gridBagConstraints"/>
340
      </Parameters>
341
    </CodeStatement>
342
    <CodeStatement>
343
      <CodeExpression id="16_gridBagConstraints">
344
        <CodeVariable name="gridBagConstraints"/>
345
        <ExpressionOrigin>
346
          <ExpressionProvider type="CodeConstructor">
347
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
348
          </ExpressionProvider>
349
        </ExpressionOrigin>
350
      </CodeExpression>
351
      <StatementProvider type="CodeExpression">
352
        <CodeExpression id="16_gridBagConstraints"/>
353
      </StatementProvider>
354
    </CodeStatement>
355
    <CodeStatement>
356
      <CodeExpression id="16_gridBagConstraints"/>
357
      <StatementProvider type="CodeField">
358
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
359
      </StatementProvider>
360
      <Parameters>
361
        <CodeExpression id="17">
362
          <ExpressionOrigin>
363
            <Value type="int" value="0"/>
364
          </ExpressionOrigin>
365
        </CodeExpression>
366
      </Parameters>
367
    </CodeStatement>
368
    <CodeStatement>
369
      <CodeExpression id="16_gridBagConstraints"/>
370
      <StatementProvider type="CodeField">
371
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
372
      </StatementProvider>
373
      <Parameters>
374
        <CodeExpression id="18">
375
          <ExpressionOrigin>
376
            <Value type="int" value="0"/>
377
          </ExpressionOrigin>
378
        </CodeExpression>
379
      </Parameters>
380
    </CodeStatement>
381
    <CodeStatement>
382
      <CodeExpression id="4"/>
383
      <StatementProvider type="CodeMethod">
384
        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
385
      </StatementProvider>
386
      <Parameters>
387
        <CodeExpression id="19_filler2">
388
          <CodeVariable name="filler2" type="8196" declaredType="javax.swing.Box$Filler"/>
389
          <ExpressionOrigin>
390
            <ExpressionProvider type="ComponentRef">
391
              <ComponentRef name="filler2"/>
392
            </ExpressionProvider>
393
          </ExpressionOrigin>
394
        </CodeExpression>
395
        <CodeExpression id="16_gridBagConstraints"/>
396
      </Parameters>
397
    </CodeStatement>
398
    <CodeStatement>
399
      <CodeExpression id="20_gridBagConstraints">
400
        <CodeVariable name="gridBagConstraints"/>
401
        <ExpressionOrigin>
402
          <ExpressionProvider type="CodeConstructor">
403
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
404
          </ExpressionProvider>
405
        </ExpressionOrigin>
406
      </CodeExpression>
407
      <StatementProvider type="CodeExpression">
408
        <CodeExpression id="20_gridBagConstraints"/>
409
      </StatementProvider>
410
    </CodeStatement>
411
    <CodeStatement>
412
      <CodeExpression id="20_gridBagConstraints"/>
413
      <StatementProvider type="CodeField">
414
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
415
      </StatementProvider>
416
      <Parameters>
417
        <CodeExpression id="21">
418
          <ExpressionOrigin>
419
            <Value type="int" value="2"/>
420
          </ExpressionOrigin>
421
        </CodeExpression>
422
      </Parameters>
423
    </CodeStatement>
424
    <CodeStatement>
425
      <CodeExpression id="20_gridBagConstraints"/>
426
      <StatementProvider type="CodeField">
427
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
428
      </StatementProvider>
429
      <Parameters>
430
        <CodeExpression id="22">
431
          <ExpressionOrigin>
432
            <Value type="int" value="4"/>
433
          </ExpressionOrigin>
434
        </CodeExpression>
435
      </Parameters>
436
    </CodeStatement>
437
    <CodeStatement>
438
      <CodeExpression id="20_gridBagConstraints"/>
439
      <StatementProvider type="CodeField">
440
        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
441
      </StatementProvider>
442
      <Parameters>
443
        <CodeExpression id="23">
444
          <ExpressionOrigin>
445
            <Value type="int" value="1"/>
446
          </ExpressionOrigin>
447
        </CodeExpression>
448
      </Parameters>
449
    </CodeStatement>
450
    <CodeStatement>
451
      <CodeExpression id="4"/>
452
      <StatementProvider type="CodeMethod">
453
        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
454
      </StatementProvider>
455
      <Parameters>
456
        <CodeExpression id="24_pnlProgress">
457
          <CodeVariable name="pnlProgress" type="8196" declaredType="javax.swing.JPanel"/>
458
          <ExpressionOrigin>
459
            <ExpressionProvider type="ComponentRef">
460
              <ComponentRef name="pnlProgress"/>
461
            </ExpressionProvider>
462
          </ExpressionOrigin>
463
        </CodeExpression>
464
        <CodeExpression id="20_gridBagConstraints"/>
465
      </Parameters>
466
    </CodeStatement>
467
    <CodeStatement>
468
      <CodeExpression id="25_gridBagConstraints">
469
        <CodeVariable name="gridBagConstraints"/>
470
        <ExpressionOrigin>
471
          <ExpressionProvider type="CodeConstructor">
472
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
473
          </ExpressionProvider>
474
        </ExpressionOrigin>
475
      </CodeExpression>
476
      <StatementProvider type="CodeExpression">
477
        <CodeExpression id="25_gridBagConstraints"/>
478
      </StatementProvider>
479
    </CodeStatement>
480
    <CodeStatement>
481
      <CodeExpression id="25_gridBagConstraints"/>
482
      <StatementProvider type="CodeField">
483
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
484
      </StatementProvider>
485
      <Parameters>
486
        <CodeExpression id="26">
487
          <ExpressionOrigin>
488
            <Value type="int" value="2"/>
489
          </ExpressionOrigin>
490
        </CodeExpression>
491
      </Parameters>
492
    </CodeStatement>
493
    <CodeStatement>
494
      <CodeExpression id="25_gridBagConstraints"/>
495
      <StatementProvider type="CodeField">
496
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
497
      </StatementProvider>
498
      <Parameters>
499
        <CodeExpression id="27">
500
          <ExpressionOrigin>
501
            <Value type="int" value="8"/>
502
          </ExpressionOrigin>
503
        </CodeExpression>
504
      </Parameters>
505
    </CodeStatement>
506
    <CodeStatement>
507
      <CodeExpression id="25_gridBagConstraints"/>
508
      <StatementProvider type="CodeField">
509
        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
510
      </StatementProvider>
511
      <Parameters>
512
        <CodeExpression id="28">
513
          <ExpressionOrigin>
514
            <Value type="int" value="22"/>
515
          </ExpressionOrigin>
516
        </CodeExpression>
517
      </Parameters>
518
    </CodeStatement>
519
    <CodeStatement>
520
      <CodeExpression id="4"/>
521
      <StatementProvider type="CodeMethod">
522
        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
523
      </StatementProvider>
524
      <Parameters>
525
        <CodeExpression id="29_butClose">
526
          <CodeVariable name="butClose" type="8196" declaredType="javax.swing.JButton"/>
527
          <ExpressionOrigin>
528
            <ExpressionProvider type="ComponentRef">
529
              <ComponentRef name="butClose"/>
530
            </ExpressionProvider>
531
          </ExpressionOrigin>
532
        </CodeExpression>
533
        <CodeExpression id="25_gridBagConstraints"/>
534
      </Parameters>
535
    </CodeStatement>
536
    <CodeStatement>
537
      <CodeExpression id="30_gridBagConstraints">
538
        <CodeVariable name="gridBagConstraints"/>
539
        <ExpressionOrigin>
540
          <ExpressionProvider type="CodeConstructor">
541
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
542
          </ExpressionProvider>
543
        </ExpressionOrigin>
544
      </CodeExpression>
545
      <StatementProvider type="CodeExpression">
546
        <CodeExpression id="30_gridBagConstraints"/>
547
      </StatementProvider>
548
    </CodeStatement>
549
    <CodeStatement>
550
      <CodeExpression id="30_gridBagConstraints"/>
551
      <StatementProvider type="CodeField">
552
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
553
      </StatementProvider>
554
      <Parameters>
555
        <CodeExpression id="31">
556
          <ExpressionOrigin>
557
            <Value type="int" value="4"/>
558
          </ExpressionOrigin>
559
        </CodeExpression>
560
      </Parameters>
561
    </CodeStatement>
562
    <CodeStatement>
563
      <CodeExpression id="30_gridBagConstraints"/>
564
      <StatementProvider type="CodeField">
565
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
566
      </StatementProvider>
567
      <Parameters>
568
        <CodeExpression id="32">
569
          <ExpressionOrigin>
570
            <Value type="int" value="10"/>
571
          </ExpressionOrigin>
572
        </CodeExpression>
573
      </Parameters>
574
    </CodeStatement>
575
    <CodeStatement>
576
      <CodeExpression id="30_gridBagConstraints"/>
577
      <StatementProvider type="CodeField">
578
        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
579
      </StatementProvider>
580
      <Parameters>
581
        <CodeExpression id="33">
582
          <ExpressionOrigin>
583
            <Value type="int" value="3"/>
584
          </ExpressionOrigin>
585
        </CodeExpression>
586
      </Parameters>
587
    </CodeStatement>
588
    <CodeStatement>
589
      <CodeExpression id="30_gridBagConstraints"/>
590
      <StatementProvider type="CodeField">
591
        <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
592
      </StatementProvider>
593
      <Parameters>
594
        <CodeExpression id="34">
595
          <ExpressionOrigin>
596
            <Value type="double" value="0.1"/>
597
          </ExpressionOrigin>
598
        </CodeExpression>
599
      </Parameters>
600
    </CodeStatement>
601
    <CodeStatement>
602
      <CodeExpression id="4"/>
603
      <StatementProvider type="CodeMethod">
604
        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
605
      </StatementProvider>
606
      <Parameters>
607
        <CodeExpression id="35_filler3">
608
          <CodeVariable name="filler3" type="8196" declaredType="javax.swing.Box$Filler"/>
609
          <ExpressionOrigin>
610
            <ExpressionProvider type="ComponentRef">
611
              <ComponentRef name="filler3"/>
612
            </ExpressionProvider>
613
          </ExpressionOrigin>
614
        </CodeExpression>
615
        <CodeExpression id="30_gridBagConstraints"/>
616
      </Parameters>
617
    </CodeStatement>
618
    <CodeStatement>
619
      <CodeExpression id="36_gridBagConstraints">
620
        <CodeVariable name="gridBagConstraints"/>
621
        <ExpressionOrigin>
622
          <ExpressionProvider type="CodeConstructor">
623
            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
624
          </ExpressionProvider>
625
        </ExpressionOrigin>
626
      </CodeExpression>
627
      <StatementProvider type="CodeExpression">
628
        <CodeExpression id="36_gridBagConstraints"/>
629
      </StatementProvider>
630
    </CodeStatement>
631
    <CodeStatement>
632
      <CodeExpression id="36_gridBagConstraints"/>
633
      <StatementProvider type="CodeField">
634
        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
635
      </StatementProvider>
636
      <Parameters>
637
        <CodeExpression id="37">
638
          <ExpressionOrigin>
639
            <Value type="int" value="2"/>
640
          </ExpressionOrigin>
641
        </CodeExpression>
642
      </Parameters>
643
    </CodeStatement>
644
    <CodeStatement>
645
      <CodeExpression id="36_gridBagConstraints"/>
646
      <StatementProvider type="CodeField">
647
        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
648
      </StatementProvider>
649
      <Parameters>
650
        <CodeExpression id="38">
651
          <ExpressionOrigin>
652
            <Value type="int" value="6"/>
653
          </ExpressionOrigin>
654
        </CodeExpression>
655
      </Parameters>
656
    </CodeStatement>
657
    <CodeStatement>
658
      <CodeExpression id="36_gridBagConstraints"/>
659
      <StatementProvider type="CodeField">
660
        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff