Revision 3458 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.app/org.gvsig.vcsgis.app.mainplugin/src/main/java/org/gvsig/vcsgis/app/VCSGisExtension.java

View differences:

VCSGisExtension.java
23 23

  
24 24
import org.gvsig.vcsgis.app.addlayer.WizardVCSGisVectorial;
25 25
import org.gvsig.vcsgis.app.addlayer.WizardVCSGisTabular;
26
import java.awt.event.ActionEvent;
27
import java.awt.event.ComponentAdapter;
28
import java.awt.event.ComponentEvent;
29 26
import java.util.Map;
30 27
import javax.swing.JOptionPane;
31 28
import org.gvsig.andami.IconThemeHelper;
32 29
import org.gvsig.andami.PluginsLocator;
33 30
import org.gvsig.andami.plugins.Extension;
34 31
import org.gvsig.app.ApplicationLocator;
35
import org.gvsig.app.ApplicationManager;
36 32
import org.gvsig.app.extension.AddLayer;
37
import org.gvsig.app.project.documents.view.ViewDocument;
38
import org.gvsig.app.project.documents.view.gui.IView;
39 33
import org.gvsig.fmap.dal.feature.FeatureStore;
40 34
import org.gvsig.tools.ToolsLocator;
41 35
import org.gvsig.tools.dynobject.DynObject;
42 36
import org.gvsig.tools.i18n.I18nManager;
43 37
import org.gvsig.tools.swing.api.ToolsSwingLocator;
44 38
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
45
import org.gvsig.tools.swing.api.windowmanager.Dialog;
46 39
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
47 40
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
41
import org.gvsig.vcsgis.app.VCSGisDialogsHelper.VCSGisDialogInfo;
48 42
import org.gvsig.vcsgis.lib.VCSGisEntity;
49 43
import org.gvsig.vcsgis.lib.VCSGisLocator;
50 44
import org.gvsig.vcsgis.lib.VCSGisManager;
51 45
import org.gvsig.vcsgis.lib.workspace.VCSGisWorkspace;
52 46
import org.gvsig.vcsgis.lib.workspace.VCSGisWorkspaceDescriptor;
53 47
import org.gvsig.vcsgis.swing.VCSGisJAddToWorkspace;
54
import org.gvsig.vcsgis.swing.VCSGisJChanges;
55 48
import org.gvsig.vcsgis.swing.VCSGisJCheckout;
56 49
import org.gvsig.vcsgis.swing.VCSGisJCreateResourceTable;
57 50
import org.gvsig.vcsgis.swing.VCSGisJExport;
58 51
import org.gvsig.vcsgis.swing.VCSGisJImportHistory;
59 52
import org.gvsig.vcsgis.swing.VCSGisJInitServer;
60 53
import org.gvsig.vcsgis.swing.VCSGisJInitWorkspace;
61
import org.gvsig.vcsgis.swing.VCSGisJRegisterWorkspace;
62
import org.gvsig.vcsgis.swing.VCSGisJRevisions;
63 54
import org.gvsig.vcsgis.swing.VCSGisJShowServerTableForm;
64 55
import org.gvsig.vcsgis.swing.VCSGisSwingLocator;
65 56
import org.gvsig.vcsgis.swing.VCSGisSwingManager;
66
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
68 57

  
69 58
/**
70 59
 *
......
72 61
 */
73 62
public class VCSGisExtension extends Extension {
74 63

  
75
    private static final Logger LOGGER = LoggerFactory.getLogger(VCSGisExtension.class);
64
    private VCSGisDialogsHelper dialogsHelper;
76 65

  
77
    private VCSGisJAddToWorkspace addToWorkspacePanel = null;
78
    private VCSGisJImportHistory importHistoryPanel = null;
79
    private VCSGisJChanges changesPanel = null;    
80
    private VCSGisJCheckout checkoutPanel = null;    
81
    private VCSGisJRevisions revisionsPanel = null;    
82
    private VCSGisJExport exportPanel = null;   
83
    private VCSGisJCreateResourceTable createResurceTable = null;
84
    
85
    private boolean addToWorkspacePanelClosed = true;
86
    private boolean importHistoryPanelClosed = true;
87
    private boolean changesPanelClosed = true;
88
    private boolean checkoutPanelClosed = true;
89
    private boolean revisionsPanelClosed = true;
90
    private boolean exportPanelClosed = true;
91
    
92 66
    @Override
93 67
    public void initialize() {
94 68
        IconThemeHelper.registerIcon("action", "tools-vcsgis-init-server", this);
......
99 73
        IconThemeHelper.registerIcon("action", "tools-vcsgis-showchanges", this);
100 74
        IconThemeHelper.registerIcon("action", "tools-vcsgis-register-workspace", this);
101 75
        IconThemeHelper.registerIcon("action", "tools-vcsgis-show-revisions", this);
76
        
77
        this.dialogsHelper = new VCSGisDialogsHelper();
102 78
    }
103 79

  
104 80
    @Override
......
112 88
        Map<String, VCSGisWorkspaceDescriptor> workspaces = (Map) pluginProperties.getDynValue("workspaces");
113 89
        manager.restoreWorkspaces(workspaces);
114 90

  
115
        PluginsLocator.getPluginsManager().addShutdownTask("VCSGisSave", () -> {
116
            VCSGisManager manager1 = VCSGisLocator.getVCSGisManager();
117
            DynObject pluginProperties1 = getPlugin().getPluginProperties();
118
            pluginProperties1.setDynValue("workspaces", manager1.getWorkspaces());
119
        },
91
        PluginsLocator.getPluginsManager().addShutdownTask(
92
                "VCSGisSave", 
93
                () -> {
94
                    VCSGisManager manager1 = VCSGisLocator.getVCSGisManager();
95
                    DynObject pluginProperties1 = getPlugin().getPluginProperties();
96
                    pluginProperties1.setDynValue("workspaces", manager1.getWorkspaces());
97
                },
120 98
                false,
121 99
                100
122 100
        );
123
        
124
        ApplicationLocator.getManager().registerAddTableWizard("VCSGis", "VCSGis", WizardVCSGisTabular.class);
101

  
102
        ApplicationLocator.getManager().registerAddTableWizard(
103
                "VCSGis", 
104
                "VCSGis", 
105
                WizardVCSGisTabular.class
106
        );
125 107
        AddLayer.addWizard(WizardVCSGisVectorial.class);
126
        
108

  
127 109
    }
128 110

  
129 111
    @Override
......
135 117
                break;
136 118

  
137 119
            case "tools-vcsgis-init-server":
138
                showInitServerDialog();
120
                showInitializaRepositoryDialog();
139 121
                break;
140 122
            case "tools-vcsgis-init-workspace":
141 123
                showInitWorkspaceDialog();
......
165 147
                showImportHistoryDialog();
166 148
                break;
167 149
            case "tools-vcsgis-create-resource-table":
168
                createResourceTableDialog();
150
                showCreateResourceTableDialog();
169 151
                break;
170
                    
171

  
172 152
        }
173 153
    }
174 154

  
155
    @Override
156
    public boolean isEnabled() {
157
        return true;
158
    }
159

  
160
    @Override
161
    public boolean isVisible() {
162
        return true;
163
    }
164

  
165
//    private void cleanHighligthed() {
166
//        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
167
//        swingManager.getDefaultServices().cleanHighligthed();
168
//    }
169
//
170

  
175 171
    private void showAddToWorkspaceDialog() {
176
        I18nManager i18nManager = ToolsLocator.getI18nManager();
177
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
178 172
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
179 173

  
180
        if( this.addToWorkspacePanel==null ) {
181
            addToWorkspacePanel = swingManager.createAddToWorkspacePanel();
182
            this.addToWorkspacePanel.asJComponent().addComponentListener(new ComponentAdapter() {
183
                @Override
184
                public void componentHidden(ComponentEvent e) {
185
                    addToWorkspacePanelClosed=true;
186
                    if( !addToWorkspacePanel.isProcessing() ) {
187
                        addToWorkspacePanel=null;
174
        VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
175
                "AddToWorkingCopy",
176
                swingManager.createAddToWorkspacePanel(),
177
                "_VCS_Add_to_workspace",
178
                "_VCS_Add_to_workspace",
179
                "_VCS_Add_to_workspace",
180
                () -> {
181
                    I18nManager i18n = ToolsLocator.getI18nManager();
182
                    ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
183
                    VCSGisJAddToWorkspace addToWorkspacePanel = (VCSGisJAddToWorkspace) this.dialogsHelper.getDialog("AddToWorkingCopy").getPanel();
184
                    int r = addToWorkspacePanel.add();
185
                    if (r != 0) {
186
                        FeatureStore featureStore = addToWorkspacePanel.getFeatureStore();
187
                        String targetName = addToWorkspacePanel.getTabletName();
188
                        VCSGisWorkspace workspace = addToWorkspacePanel.getWorkspace();
189
                        dialogsManager.messageDialog(
190
                                i18n.getTranslation(
191
                                        "_Cant_add_{0}_as_{1}_in_{2}",
192
                                        new String[]{
193
                                            featureStore.getName(),
194
                                            targetName,
195
                                            workspace.getLabel()
196
                                        }
197
                                ) + "\n" + workspace.getErrorMessage(r),
198
                                i18n.getTranslation("_VCS_Add_to_workspace"),
199
                                JOptionPane.WARNING_MESSAGE
200
                        );
188 201
                    }
189 202
                }
190
            });
191
        } else {
192
            if( !this.addToWorkspacePanelClosed ) {
193
                return;
194
            }
195
        }
196

  
197
        final Dialog dialogAddToWorkspace = winManager.createDialog(
198
                addToWorkspacePanel.asJComponent(),
199
                i18nManager.getTranslation("_VCS_Add_to_workspace"),
200
                i18nManager.getTranslation("_VCS_Add_to_workspace"),
201
                WindowManager_v2.BUTTONS_OK_CANCEL
202 203
        );
203
        dialogAddToWorkspace.setAutoclose(false);
204

  
205
        addToWorkspacePanel.setDialog(dialogAddToWorkspace);
206
        dialogAddToWorkspace.setButtonLabel(
207
                WindowManager_v2.BUTTON_OK,
208
                i18nManager.getTranslation("_VCS_Add_to_workspace")
209
        );
210
        dialogAddToWorkspace.setButtonLabel(
211
                WindowManager_v2.BUTTON_CANCEL,
212
                i18nManager.getTranslation("_Close")
213
        );
214
        dialogAddToWorkspace.addActionListener((ActionEvent e) -> {
215
            switch (dialogAddToWorkspace.getAction()) {
216
                case WindowManager_v2.BUTTON_OK:
217

  
218
                    Thread task = new Thread(() -> {
219
                        int r = addToWorkspacePanel.add();
220
                        if (r != 0) {
221
                            FeatureStore featureStore = addToWorkspacePanel.getFeatureStore();
222
                            String targetName = addToWorkspacePanel.getTabletName();
223
                            VCSGisWorkspace workspace = addToWorkspacePanel.getWorkspace();
224

  
225
                            String message = "_Cant_add_{0}_as_{1}_in_{2}";
226

  
227
                            StringBuilder compoundMessage = new StringBuilder();
228
                            String[] messageArgs = new String[]{featureStore.getName(), targetName, workspace.getLabel()};
229

  
230
                            compoundMessage.append(i18nManager.getTranslation(
231
                                    message,
232
                                    messageArgs
233
                            ));
234
                            compoundMessage.append("\n");
235
                            compoundMessage.append(workspace.getErrorMessage(r));
236
                            ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
237
                            dialogsManager.messageDialog(
238
                                    compoundMessage.toString(),
239
                                    i18nManager.getTranslation("_VCS_Add_to_workspace"),
240
                                    JOptionPane.WARNING_MESSAGE
241
                            );
242
                        }
243
                    }, "Adding_to_workspace");
244
                    task.start();
245
                    break;
246
                case WindowManager_v2.BUTTON_CANCEL:
247
//                    dialog.asJComponent().getParent().setVisible(false);
248
                    dialogAddToWorkspace.asJComponent().setVisible(false);
249
                    break;
250

  
251
            }
252
        });
253
        dialogAddToWorkspace.show(WindowManager.MODE.WINDOW);
204
        dialog.show();
254 205
    }
255 206

  
256 207
    private void showImportHistoryDialog() {
257

  
258
        I18nManager i18nManager = ToolsLocator.getI18nManager();
259
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
260 208
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
261 209

  
262
        if( this.importHistoryPanel==null ) {
263
            importHistoryPanel = swingManager.createImportHistoryPanel();
264
            
265
            this.importHistoryPanel.asJComponent().addComponentListener(new ComponentAdapter() {
266
                @Override
267
                public void componentHidden(ComponentEvent e) {
268
                    importHistoryPanelClosed=true;
269
                    if( !importHistoryPanel.isProcessing() ) {
270
                        importHistoryPanel=null;
210
        VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
211
                "ImportHistory",
212
                swingManager.createInitWorkspacePanel(),
213
                "_VCS_Import_history",
214
                "_VCS_Import_history",
215
                "_VCS_Import_history",
216
                () -> {
217
                    I18nManager i18n = ToolsLocator.getI18nManager();
218
                    ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
219
                    VCSGisJImportHistory importHistoryPanel = (VCSGisJImportHistory) this.dialogsHelper.getDialog("ImportHistory").getPanel();
220
                    int r = importHistoryPanel.importHistory();
221
                    if (r != 0) {
222
                        FeatureStore featureStore = importHistoryPanel.getFeatureStore();
223
                        String targetName = importHistoryPanel.getTabletName();
224
                        VCSGisWorkspace workspace = importHistoryPanel.getWorkspace();
225
                        dialogsManager.messageDialog(
226
                                i18n.getTranslation(
227
                                        "_Cant_add_{0}_as_{1}_in_{2}",
228
                                        new String[]{
229
                                            featureStore.getName(),
230
                                            targetName,
231
                                            workspace.getLabel()
232
                                        }
233
                                ) + "\n" + workspace.getErrorMessage(r),
234
                                i18n.getTranslation("_VCS_Import_history"),
235
                                JOptionPane.WARNING_MESSAGE
236
                        );
271 237
                    }
272 238
                }
273
            });
274
        } else {
275
            if( !this.importHistoryPanelClosed ) {
276
                return;
277
            }
278
        }
279

  
280
        final Dialog dialogImportHistory = winManager.createDialog(
281
                importHistoryPanel.asJComponent(),
282
                i18nManager.getTranslation("_VCS_Import_history"), 
283
                i18nManager.getTranslation("_VCS_Import_history"), 
284
                WindowManager_v2.BUTTONS_OK_CANCEL
285 239
        );
286
        dialogImportHistory.setAutoclose(false);
287

  
288
        importHistoryPanel.setDialog(dialogImportHistory);
289
        dialogImportHistory.setButtonLabel(
290
                WindowManager_v2.BUTTON_OK,
291
                i18nManager.getTranslation("_VCS_Import_history") 
292
        );
293
        dialogImportHistory.setButtonLabel(
294
                WindowManager_v2.BUTTON_CANCEL,
295
                i18nManager.getTranslation("_Close")
296
        );
297
        dialogImportHistory.addActionListener((ActionEvent e) -> {
298
            switch (dialogImportHistory.getAction()) {
299
                case WindowManager_v2.BUTTON_OK:
300

  
301
                    Thread task = new Thread(() -> {
302
                        int r = importHistoryPanel.importHistory();
303
                        if (r != 0) {
304
                            FeatureStore featureStore = importHistoryPanel.getFeatureStore();
305
                            String targetName = importHistoryPanel.getTabletName();
306
                            VCSGisWorkspace workspace = importHistoryPanel.getWorkspace();
307

  
308
                            String message = "_Cant_add_{0}_as_{1}_in_{2}";
309

  
310
                            StringBuilder compoundMessage = new StringBuilder();
311
                            String[] messageArgs = new String[]{featureStore.getName(), targetName, workspace.getLabel()};
312

  
313
                            compoundMessage.append(i18nManager.getTranslation(
314
                                    message,
315
                                    messageArgs
316
                            ));
317
                            compoundMessage.append("\n");
318
                            compoundMessage.append(workspace.getErrorMessage(r));
319
                            ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
320
                            dialogsManager.messageDialog(
321
                                    compoundMessage.toString(),
322
                                    i18nManager.getTranslation("_VCS_Import_history"), 
323
                                    JOptionPane.WARNING_MESSAGE
324
                            );
325
                        }
326
                    }, "ImportHistory");
327
                    task.start();
328
                    break;
329
                case WindowManager_v2.BUTTON_CANCEL:
330
//                    dialog.asJComponent().getParent().setVisible(false);
331
                    dialogImportHistory.asJComponent().setVisible(false);
332
                    break;
333

  
334
            }
335
        });
336
        dialogImportHistory.show(WindowManager.MODE.WINDOW);
337

  
338
//        I18nManager i18nManager = ToolsLocator.getI18nManager();
339
//        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
340
//        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
341
//
342
//        if( this.importHistoryPanel==null ) {
343
//            Hay que  darlo de alta en el mamager del api y de la impl.
344
//            addToWorkspacePanel = swingManager.createImportHistoryPanel();
345
//            
346
//            this.importHistoryPanel.asJComponent().addComponentListener(new ComponentAdapter() {
347
//                @Override
348
//                public void componentHidden(ComponentEvent e) {
349
//                    importHistoryPanelClosed=true;
350
//                    if( !importHistoryPanel.isProcessing() ) {
351
//                        importHistoryPanel=null;
352
//                    }
353
//                }
354
//            });
355
//        } else {
356
//            if( !this.importHistoryPanelClosed ) {
357
//                return;
358
//            }
359
//        }
360
//
361
//        final Dialog dialogImportHistory = winManager.createDialog(
362
//                importHistoryPanel.asJComponent(),
363
//                i18nManager.getTranslation("_VCS_Add_to_workspace"), XXX
364
//                i18nManager.getTranslation("_VCS_Add_to_workspace"), XXX
365
//                WindowManager_v2.BUTTONS_OK_CANCEL
366
//        );
367
//        dialogImportHistory.setAutoclose(false);
368
//
369
//        importHistoryPanel.setDialog(dialogImportHistory);
370
//        dialogImportHistory.setButtonLabel(
371
//                WindowManager_v2.BUTTON_OK,
372
//                i18nManager.getTranslation("_VCS_Add_to_workspace") XXX
373
//        );
374
//        dialogImportHistory.setButtonLabel(
375
//                WindowManager_v2.BUTTON_CANCEL,
376
//                i18nManager.getTranslation("_Close")
377
//        );
378
//        dialogImportHistory.addActionListener((ActionEvent e) -> {
379
//            switch (dialogImportHistory.getAction()) {
380
//                case WindowManager_v2.BUTTON_OK:
381
//
382
//                    Thread task = new Thread(() -> {
383
//                        int r = importHistoryPanel.add();
384
//                        if (r != 0) {
385
//                            FeatureStore featureStore = importHistoryPanel.getFeatureStore();
386
//                            String targetName = importHistoryPanel.getTabletName();
387
//                            VCSGisWorkspace workspace = importHistoryPanel.getWorkspace();
388
//
389
//                            String message = "_Cant_add_{0}_as_{1}_in_{2}";
390
//
391
//                            StringBuilder compoundMessage = new StringBuilder();
392
//                            String[] messageArgs = new String[]{featureStore.getName(), targetName, workspace.getLabel()};
393
//
394
//                            compoundMessage.append(i18nManager.getTranslation(
395
//                                    message,
396
//                                    messageArgs
397
//                            ));
398
//                            compoundMessage.append("\n");
399
//                            compoundMessage.append(workspace.getErrorMessage(r));
400
//                            ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
401
//                            dialogsManager.messageDialog(
402
//                                    compoundMessage.toString(),
403
//                                    i18nManager.getTranslation("_VCS_Add_to_workspace"), XXX
404
//                                    JOptionPane.WARNING_MESSAGE
405
//                            );
406
//                        }
407
//                    }, "ImportHistory");
408
//                    task.start();
409
//                    break;
410
//                case WindowManager_v2.BUTTON_CANCEL:
411
////                    dialog.asJComponent().getParent().setVisible(false);
412
//                    dialogImportHistory.asJComponent().setVisible(false);
413
//                    break;
414
//
415
//            }
416
//        });
417
//        dialogImportHistory.show(WindowManager.MODE.WINDOW);
418

  
240
        dialog.show();
419 241
    }
420 242

  
421 243
    private void showInitWorkspaceDialog() {
422
        I18nManager i18nManager = ToolsLocator.getI18nManager();
423
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
424 244
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
425 245

  
426
        final VCSGisJInitWorkspace panelInitWorkspace = swingManager.createInitWorkspacePanel();
427
        final Dialog dialogInitWorkspace = winManager.createDialog(
428
                panelInitWorkspace.asJComponent(),
429
                i18nManager.getTranslation("_VCS_Initialize_workspace"),
430
                i18nManager.getTranslation("_VCS_Initialize_workspace"),
431
                WindowManager_v2.BUTTONS_OK_CANCEL
432
        );
433

  
434
        panelInitWorkspace.setDialog(dialogInitWorkspace);
435
        dialogInitWorkspace.setButtonLabel(
436
                WindowManager_v2.BUTTON_OK,
437
                i18nManager.getTranslation("_VCS_Initialize_workspace")
438
        );
439
        dialogInitWorkspace.addActionListener((ActionEvent e) -> {
440
            switch (dialogInitWorkspace.getAction()) {
441
                case WindowManager_v2.BUTTON_OK:
246
        VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
247
                "InitializeWorkingCopy",
248
                swingManager.createInitWorkspacePanel(),
249
                "_VCS_Initialize_workspace",
250
                "_VCS_Initialize_workspace",
251
                "_VCS_Initialize_workspace",
252
                () -> {
253
                    I18nManager i18n = ToolsLocator.getI18nManager();
254
                    ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
255
                    VCSGisJInitWorkspace panelInitWorkspace = (VCSGisJInitWorkspace) this.dialogsHelper.getDialog("InitializeWorkingCopy").getPanel();
442 256
                    int r = panelInitWorkspace.initializeWorkspace();
443 257
                    if (r != 0) {
444
                        String message = "_Cant_initialize_workspace_{0}";
445

  
446
                        StringBuilder compoundMessage = new StringBuilder();
447
                        String[] messageArgs = new String[]{panelInitWorkspace.getWorkspaceName()};
448

  
449
                        compoundMessage.append(i18nManager.getTranslation(
450
                                message,
451
                                messageArgs
452
                        ));
453

  
454
                        ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
455 258
                        dialogsManager.messageDialog(
456
                                compoundMessage.toString(),
457
                                i18nManager.getTranslation("_VCS_Initialize_workspace"),
259
                                i18n.getTranslation(
260
                                        "_Cant_initialize_workspace_{0}",
261
                                        new String[]{panelInitWorkspace.getWorkspaceName()}
262
                                ),
263
                                i18n.getTranslation("_VCS_Initialize_workspace"),
458 264
                                JOptionPane.WARNING_MESSAGE
459 265
                        );
460 266
                    }
461

  
462
                    break;
463

  
464
            }
465
        });
466
        dialogInitWorkspace.show(WindowManager.MODE.WINDOW);
267
                }
268
        );
269
        dialog.show();
467 270
    }
468 271

  
469
    private void showInitServerDialog() {
470
        I18nManager i18nManager = ToolsLocator.getI18nManager();
471
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
272
    private void showInitializaRepositoryDialog() {
472 273
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
473 274

  
474
        final VCSGisJInitServer panel = swingManager.createInitServerPanel();
475
        final Dialog dialog = winManager.createDialog(
476
                panel.asJComponent(),
477
                i18nManager.getTranslation("_VCS_Initialize_repository"),
478
                i18nManager.getTranslation("_VCS_Initialize_repository"),
479
                WindowManager_v2.BUTTONS_OK_CANCEL
480
        );
481

  
482
        panel.setDialog(dialog);
483
        dialog.setButtonLabel(
484
                WindowManager_v2.BUTTON_OK,
485
                i18nManager.getTranslation("_VCS_Initialize_repository")
486
        );
487
        dialog.addActionListener((ActionEvent e) -> {
488
            switch (dialog.getAction()) {
489
                case WindowManager_v2.BUTTON_OK:
275
        VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
276
                "InitializeRepository",
277
                swingManager.createInitRepositoryPanel(),
278
                "_VCS_Initialize_repository",
279
                "_VCS_Initialize_repository",
280
                "_VCS_Initialize_repository",
281
                () -> {
282
                    I18nManager i18n = ToolsLocator.getI18nManager();
283
                    ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
284
                    VCSGisJInitServer panel = (VCSGisJInitServer) this.dialogsHelper.getDialog("InitializeRepository").getPanel();
490 285
                    int r = panel.initialize();
491 286
                    if (r != 0) {
492
                        String message = "_Cant_initialize_server_{0}";
493

  
494
                        StringBuilder compoundMessage = new StringBuilder();
495
                        String[] messageArgs = new String[]{
496
                            panel.getConnectionLabel()};
497

  
498
                        ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
499 287
                        dialogsManager.messageDialog(
500
                                i18nManager.getTranslation(
501
                                        message,
502
                                        messageArgs
288
                                i18n.getTranslation(
289
                                        "_Cant_initialize_server_{0}",
290
                                        new String[]{panel.getConnectionLabel()}
503 291
                                ),
504
                                i18nManager.getTranslation("_VCS_Initialize_repository"),
505
                                JOptionPane.WARNING_MESSAGE);
292
                                i18n.getTranslation("_VCS_Initialize_repository"),
293
                                JOptionPane.WARNING_MESSAGE
294
                        );
506 295
                    }
507

  
508
                    break;
509
            }
510
        });
511
        dialog.show(WindowManager.MODE.WINDOW);
296
                }
297
        );
298
        dialog.show();
512 299
    }
513 300

  
514
//    private void showAddLayerDialog() {
515
//        I18nManager i18nManager = ToolsLocator.getI18nManager();
516
//        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
517
//        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
518
//
519
//        ApplicationManager application = ApplicationLocator.getManager();
520
//        LabeledValue labeledView = null;
521
//        JComponent activeComponent = application.getActiveComponent(ViewDocument.class);
522
//        if (activeComponent != null && activeComponent instanceof IView) {
523
//            IView view = (IView) activeComponent;
524
//            ViewDocument viewDocument = ((IView) activeComponent).getViewDocument();
525
//            labeledView = new LabeledValueImpl(viewDocument.getName(), viewDocument);
526
//        }
527
//
528
//        if (labeledView == null || labeledView.getValue() == null) {
529
//            return;
530
//        }
531
//
532
//        if (this.addLayerPanel == null || this.addLayerPanel.getView().getValue() != labeledView.getValue()) {
533
//            addLayerPanel = swingManager.createAddLayerFormPanel(labeledView);
534
//            this.addLayerPanel.asJComponent().addComponentListener(new ComponentAdapter() {
535
//                @Override
536
//                public void componentHidden(ComponentEvent e) {
537
//                    addLayerPanelClosed = true;
538
//                    if(!addLayerPanel.isProcessing()){
539
//                        addLayerPanel = null;
540
//                    }
541
//                }
542
//            });
543
//            
544
//        } else {
545
//            if (!this.addLayerPanelClosed) {
546
//                return;
547
//            }
548
//        }
549
//        final Dialog dialog = winManager.createDialog(
550
//                addLayerPanel.asJComponent(),
551
//                i18nManager.getTranslation("_VCS_Add_layer"),
552
//                i18nManager.getTranslation("_VCS_Add_layer"),
553
//                WindowManager_v2.BUTTONS_OK_CANCEL
554
//        );
555
//        dialog.setAutoclose(false);
556
//
557
//        addLayerPanel.setDialog(dialog);
558
//        dialog.setButtonLabel(
559
//                WindowManager_v2.BUTTON_OK,
560
//                i18nManager.getTranslation("_VCS_Add_layer")
561
//        );
562
//        dialog.setButtonLabel(
563
//                WindowManager_v2.BUTTON_CANCEL,
564
//                i18nManager.getTranslation("_Close")
565
//        );
566
//
567
//        dialog.addActionListener((ActionEvent e) -> {
568
//            switch (dialog.getAction()) {
569
//                case WindowManager_v2.BUTTON_OK:
570
//                    addLayerPanel.addLayer();
571
//                    break;
572
//                case WindowManager_v2.BUTTON_CANCEL:
573
//                    dialog.asJComponent().setVisible(false);
574
//                    break;
575
//
576
//            }
577
//        });
578
//        dialog.show(WindowManager.MODE.WINDOW);
579
//    }
580

  
581 301
    private void showCheckoutDialog() {
582
        I18nManager i18nManager = ToolsLocator.getI18nManager();
583
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
584 302
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
585 303

  
586
        if( this.checkoutPanel==null ) {
587
            this.checkoutPanel = swingManager.createCheckoutPanel();
588
            this.checkoutPanel.asJComponent().addComponentListener(new ComponentAdapter() {
589
                @Override
590
                public void componentHidden(ComponentEvent e) {
591
                    checkoutPanelClosed=true;
592
                    if(!checkoutPanel.isProcessing()){
593
//                        checkoutPanel.asJComponent().removeComponentListener(this);
594
                        checkoutPanel = null;
304
        VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
305
                "Checkout",
306
                swingManager.createCheckoutPanel(),
307
                "_VCS_Checkout",
308
                "_VCS_Checkout",
309
                "_VCS_Checkout",
310
                () -> {
311
                    I18nManager i18n = ToolsLocator.getI18nManager();
312
                    ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
313
                    VCSGisJCheckout checkoutPanel = (VCSGisJCheckout) this.dialogsHelper.getDialog("Checkout").getPanel();
314
                    int r = checkoutPanel.checkout();
315
                    if (r != 0) {
316
                        VCSGisEntity entity = checkoutPanel.getTable();
317
                        dialogsManager.messageDialog(
318
                                i18n.getTranslation(
319
                                        "_Failed_checkout_of_{0}",
320
                                        new String[]{entity.toString()}
321
                                ),
322
                                i18n.getTranslation("_Checkout"),
323
                                JOptionPane.WARNING_MESSAGE
324
                        );
595 325
                    }
596 326
                }
597
            });
598

  
599
        } else {
600
            if( !this.checkoutPanelClosed ) {
601
                return;
602
            }
603
        }
604
        final Dialog dialog = winManager.createDialog(
605
                checkoutPanel.asJComponent(),
606
                i18nManager.getTranslation("_VCS_Checkout"),
607
                i18nManager.getTranslation("_VCS_Checkout"),
608
                WindowManager_v2.BUTTONS_OK_CANCEL
609 327
        );
610
        dialog.setAutoclose(false);
611

  
612
        checkoutPanel.setDialog(dialog);
613
        dialog.setButtonLabel(
614
                WindowManager_v2.BUTTON_OK,
615
                i18nManager.getTranslation("_VCS_Checkout")
616
        );
617
        dialog.setButtonLabel(
618
                WindowManager_v2.BUTTON_CANCEL,
619
                i18nManager.getTranslation("_Close")
620
        );
621
        if(checkoutPanel.isProcessing()){
622
            dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK,false);
623
        }
624
        dialog.addActionListener((ActionEvent e) -> {
625
            switch (dialog.getAction()) {
626
                case WindowManager_v2.BUTTON_OK:
627
                    Thread task = new Thread(() -> {
628

  
629
                        int r = checkoutPanel.checkout();
630
                        if (r != 0) {
631
                            String message = "_Failed_checkout_of_{0}";
632

  
633
                            VCSGisEntity entity = checkoutPanel.getTable();
634
                            String[] messageArgs = new String[]{
635
                                entity.toString()
636
                            };
637

  
638
                            ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
639
                            dialogsManager.messageDialog(
640
                                    i18nManager.getTranslation(
641
                                            message,
642
                                            messageArgs
643
                                    ), 
644
                                    i18nManager.getTranslation("_Checkout"), 
645
                                    JOptionPane.WARNING_MESSAGE);
646
                        }
647
                    }, "Checkout");
648
                    task.start();
649
                    break;
650
                case WindowManager_v2.BUTTON_CANCEL:
651
//                    dialog.asJComponent().getParent().setVisible(false);
652
                    dialog.asJComponent().setVisible(false);
653
                    break;
654
            }
655
        });
656
        dialog.show(WindowManager.MODE.WINDOW);
328
        dialog.show();
657 329
    }
658 330

  
659 331
    private void showExportDialog() {
660
        I18nManager i18nManager = ToolsLocator.getI18nManager();
661
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
662 332
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
663 333

  
664
        if( this.exportPanel==null ) {
665
            this.exportPanel = swingManager.createExportPanel();
666
            this.exportPanel.asJComponent().addComponentListener(new ComponentAdapter() {
667
                @Override
668
                public void componentHidden(ComponentEvent e) {
669
                    exportPanelClosed=true;
670
                    if(!exportPanel.isProcessing()){
671
                        exportPanel = null;
334
        final VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
335
                "Export",
336
                swingManager.createExportPanel(),
337
                "_VCS_Export",
338
                "_Export_to_a_local_table_a_table_of_the_repository",
339
                "_VCS_Export",
340
                () -> {
341
                    I18nManager i18n = ToolsLocator.getI18nManager();
342
                    ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
343
                    VCSGisJExport exportPanel = (VCSGisJExport) this.dialogsHelper.getDialog("Export").getPanel();
344
                    int r = exportPanel.export();
345
                    if (r != 0) {
346
                        VCSGisEntity entity = exportPanel.getTable();
347
                        dialogsManager.messageDialog(
348
                                i18n.getTranslation(
349
                                        "_Failed_export_of_{0}",
350
                                        new String[]{entity.toString()}
351
                                ),
352
                                i18n.getTranslation("_VCSGis_Export"),
353
                                JOptionPane.WARNING_MESSAGE
354
                        );
672 355
                    }
673 356
                }
674
            });
675

  
676
        } else {
677
            if( !this.exportPanelClosed ) {
678
                return;
679
            }
680
        }
681
        final Dialog dialog = winManager.createDialog(
682
                exportPanel.asJComponent(),
683
                i18nManager.getTranslation("_VCS_Export"),
684
                i18nManager.getTranslation("_Export_to_a_local_table_a_table_of_the_repository"),
685
                WindowManager_v2.BUTTONS_OK_CANCEL
686 357
        );
687
        dialog.setAutoclose(false);
688

  
689
        exportPanel.setDialog(dialog);
690
        dialog.setButtonLabel(
691
                WindowManager_v2.BUTTON_OK,
692
                i18nManager.getTranslation("_VCS_Export")
693
        );
694
        dialog.setButtonLabel(
695
                WindowManager_v2.BUTTON_CANCEL,
696
                i18nManager.getTranslation("_Close")
697
        );
698
        if(exportPanel.isProcessing()){
699
            dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK,false);
700
        }
701
        dialog.addActionListener((ActionEvent e) -> {
702
            switch (dialog.getAction()) {
703
                case WindowManager_v2.BUTTON_OK:
704
                    Thread task = new Thread(() -> {
705

  
706
                        int r = exportPanel.export();
707
                        if (r != 0) {
708
                            String message = "_Failed_export_of_{0}";
709

  
710
                            VCSGisEntity entity = checkoutPanel.getTable();
711
                            String[] messageArgs = new String[]{
712
                                entity.toString()
713
                            };
714

  
715
                            ThreadSafeDialogsManager dialogsManager = ToolsSwingLocator.getThreadSafeDialogsManager();
716
                            dialogsManager.messageDialog(
717
                                    i18nManager.getTranslation(
718
                                            message,
719
                                            messageArgs
720
                                    ), 
721
                                    i18nManager.getTranslation("_VCS_Export"),
722
                                    JOptionPane.WARNING_MESSAGE);
723
                        }
724
                    }, "VCSGisExport");
725
                    task.start();
726
                    break;
727
                case WindowManager_v2.BUTTON_CANCEL:
728
                    dialog.asJComponent().setVisible(false);
729
                    break;
730
            }
731
        });
732
        dialog.show(WindowManager.MODE.WINDOW);
358
        dialog.show();
733 359
    }
734 360

  
735 361
    private void showChangesDialog() {
736
        I18nManager i18nManager = ToolsLocator.getI18nManager();
737
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
738 362
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
739 363

  
740
        if( this.changesPanel==null ) {
741
            changesPanel = swingManager.createChangesPanel();
742
            this.changesPanel.asJComponent().addComponentListener(new ComponentAdapter() {
743
                @Override
744
                public void componentHidden(ComponentEvent e) {
745
                    changesPanelClosed=true;
746
                    cleanHighligthed();
747
                    if( !changesPanel.isProcessing() ) {
748
                        changesPanel = null;
749
                    }
750
                }
751
            });
752
        } else {
753
            if( !this.changesPanelClosed ) {
754
                return;
755
            }
756
        }
757
        
758
        winManager.showWindow(
759
                changesPanel.asJComponent(),
760
                i18nManager.getTranslation("_VCS_Changes"),
761
                WindowManager.MODE.WINDOW
364
        final VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
365
                "Changes",
366
                swingManager.createChangesPanel(),
367
                "_VCS_Changes"
762 368
        );
369
        dialog.show();
763 370
    }
764 371

  
765 372
    private void showHistory() {
766
        I18nManager i18nManager = ToolsLocator.getI18nManager();
767
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
768 373
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
769 374

  
770
        if( this.revisionsPanel==null ) {
771
            revisionsPanel = swingManager.createRevisionsPanel();
772
            this.revisionsPanel.asJComponent().addComponentListener(new ComponentAdapter() {
773
                @Override
774
                public void componentHidden(ComponentEvent e) {
775
                    revisionsPanelClosed=true;
776
                    if( !revisionsPanel.isProcessing() ) {
777
                        revisionsPanel = null;
778
                    }
779
                }
780
            });
781
        } else {
782
            if( !this.revisionsPanelClosed ) {
783
                return;
784
            }
785
        }
786
        
787
        winManager.showWindow(
788
                revisionsPanel.asJComponent(),
789
                i18nManager.getTranslation("_VCS_Revisions"),
790
                WindowManager.MODE.WINDOW
375
        final VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
376
                "Revisions",
377
                swingManager.createRevisionsPanel(),
378
                "_VCS_Revisions"
791 379
        );
380
        dialog.show();
792 381
    }
793 382

  
794 383
    private void showRegisterWorkspaceDialog() {
795
        I18nManager i18nManager = ToolsLocator.getI18nManager();
796
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
797 384
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
798 385

  
799
        final VCSGisJRegisterWorkspace panelInitWorkspace = swingManager.createRegisterWorkspacePanel();
800
        final Dialog dialogRegisterWorkspace = winManager.createDialog(
801
                panelInitWorkspace.asJComponent(),
802
                i18nManager.getTranslation("_VCS_Register_workspace"),
803
                i18nManager.getTranslation("_VCS_Register_workspace"),
804
                WindowManager_v2.BUTTONS_OK
386
        final VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
387
                "RegisterWorkingCopies",
388
                swingManager.createRegisterWorkspacePanel(),
389
                "_VCS_Register_workspace"
805 390
        );
806

  
807
        panelInitWorkspace.setDialog(dialogRegisterWorkspace);
808
        dialogRegisterWorkspace.setButtonLabel(
809
                WindowManager_v2.BUTTON_OK,
810
                i18nManager.getTranslation("_Close")
811
        );
812

  
813
        dialogRegisterWorkspace.show(WindowManager.MODE.WINDOW);
391
        dialog.show();
814 392
    }
815 393

  
816 394
    private void showServerEntitiesDialog() {
......
838 416
                WindowManager.MODE.WINDOW
839 417
        );
840 418
    }
841
    
842
    private void createResourceTableDialog() {
843
        I18nManager i18nManager = ToolsLocator.getI18nManager();
844
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
419

  
420
    private void showCreateResourceTableDialog() {
845 421
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
846 422

  
847
        final VCSGisJCreateResourceTable panel = swingManager.createResourceTablePanel();
848
        final Dialog dialog = winManager.createDialog(
849
                panel.asJComponent(),
850
                i18nManager.getTranslation("_VCS_Create_resource_table"),
851
                i18nManager.getTranslation("_Create_resource_table_parameters"),
852
                WindowManager_v2.BUTTONS_OK_CANCEL
853
        );
854

  
855
        panel.setDialog(dialog);
856
        
857
        dialog.setButtonLabel(
858
                WindowManager_v2.BUTTON_OK,
859
                i18nManager.getTranslation("_Accept")
860
        );
861
        dialog.setButtonLabel(
862
                WindowManager_v2.BUTTON_CANCEL,
863
                i18nManager.getTranslation("_Close")
864
        );
865
        
866
        dialog.addActionListener((ActionEvent e) -> {
867
            switch (dialog.getAction()) {
868
                case WindowManager_v2.BUTTON_OK:
423
        VCSGisDialogInfo dialog = this.dialogsHelper.getOrCreateDialog(
424
                "CreateResourceTable",
425
                swingManager.createResourceTablePanel(),
426
                "_VCS_Create_resource_table",
427
                "_Create_resource_table_parameters",
428
                "_Accept",
429
                () -> {
430
                    I18nManager i18n = ToolsLocator.getI18nManager();
431
                    VCSGisJCreateResourceTable panel = (VCSGisJCreateResourceTable) this.dialogsHelper.getDialog("CreateResourceTable").getPanel();
869 432
                    panel.createResourceTable();
870 433
                }
871
        });
872
        
873
        dialog.show(WindowManager.MODE.WINDOW);
434
        );
435
        dialog.show();
874 436
    }
875 437

  
876

  
877
    @Override
878
    public boolean isEnabled() {
879
        return true;
880
    }
881

  
882
    @Override
883
    public boolean isVisible() {
884
        return true;
885
    }
886

  
887
    private IView getActiveView() {
888
        ApplicationManager application = ApplicationLocator.getManager();
889
        IView view = (IView) application.getActiveComponent(ViewDocument.class);
890
        return view;
891
    }
892
    
893
    private void cleanHighligthed() {
894
        VCSGisManager manager = VCSGisLocator.getVCSGisManager();
895
        VCSGisSwingManager swingManager = VCSGisSwingLocator.getVCSGisSwingManager();
896
        swingManager.getDefaultServices().cleanHighligthed();
897
    }
898

  
899

  
900 438
}

Also available in: Unified diff