Revision 47672

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/storesrepository/StoresRepositoryController.java
18 18

  
19 19
    DataStore getSelectedStore();
20 20

  
21
    String getSelectedStoreId();
22

  
21 23
    void setEnabled(boolean enabled);
22 24

  
23 25
    boolean setSelectedStore(FeatureStore store);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SelectGeometryPanel.java
121 121
        return this.pickerProjection.get();
122 122
    }
123 123

  
124
    public String getStoreName() {
125
        FeatureStore store = null;
126
        try {
127
            store = this.storesRepositoryController.getSelectedFeatureStore();
128
            if( store == null ) {
129
                return null;
130
            }
131
            return store.getName();
132
        } finally {
133
            DisposeUtils.disposeQuietly(store);                    
134
        }
124
    public String getStoreId() {
125
        String storeId = this.storesRepositoryController.getSelectedStoreId();
126
        return storeId;
135 127
    }
136 128

  
137 129
    private void doUpdateEnableComponents() {
......
198 190
        doUpdateEnableComponents();
199 191
    }
200 192

  
201
    void setStoreName(String storeName) {
202
        this.storesRepositoryController.setSelectedStore(storeName);
193
    void setStoreId(String storeId) {
194
        this.storesRepositoryController.setSelectedStore(storeId);
203 195
        doUpdateEnableComponents();
204 196
    }
205 197

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionFieldController.java
372 372
    
373 373
    private int geometryOperandMode;
374 374
    private boolean useBox2dInGeometryOperand = false;
375
    private String geometryOperandStoreName;
375
    private String geometryOperandStoreId;
376 376
    private Geometry geometryOperandConstant;
377 377
    
378 378
    public SearchConditionFieldController(
......
569 569
            this.txtValue.setVisible(false);
570 570
            this.btnValue.setVisible(false);
571 571
            this.geometryOperandMode = GEOM_OPERAND_MODE_EMPTY;
572
            this.geometryOperandStoreName = null;
572
            this.geometryOperandStoreId = null;
573 573
            this.geometryOperandConstant = null;
574 574
            this.useBox2dInGeometryOperand = false;
575 575
            this.btnValue.addActionListener((ActionEvent e) -> {doSelectGeometryOperand(); });
......
613 613
                            }
614 614
                            break;
615 615
                        case GEOM_OPERAND_MODE_LAYER_SELECTION:
616
                            if( this.geometryOperandStoreName!=null ) {
616
                            if( this.geometryOperandStoreId!=null ) {
617 617
                                StoresRepository repo = DALLocator.getDataManager().getStoresRepository();
618
                                this.txtValue.setText(repo.getLabelOrName(this.geometryOperandStoreName));
618
                                this.txtValue.setText(repo.getLabelOrName(this.geometryOperandStoreId));
619 619
                                break;
620 620
                            }
621 621
                            this.geometryOperandMode = GEOM_OPERAND_MODE_CLIPBOARD;
......
760 760
        }
761 761
        this.cboValue.setSelectedIndex(-1);
762 762
        this.ddnNullBehavior.setSelectedIndex(0);
763
        this.geometryOperandStoreName = null;
763
        this.geometryOperandStoreId = null;
764 764
        this.geometryOperandMode = GEOM_OPERAND_MODE_EMPTY;
765 765
        doUpdateControllerByRelationalOperator();
766 766
    }
......
1407 1407
        fieldBuilder.add("nullBehavior", nullBehavior);
1408 1408
        
1409 1409
        fieldBuilder.add("geometryOperandMode", this.geometryOperandMode);
1410
        fieldBuilder.add("geometryOperandStoreName", this.geometryOperandStoreName);
1410
        fieldBuilder.add("geometryOperandStoreName", this.geometryOperandStoreId);
1411 1411
        fieldBuilder.add("geometryOperandConstant", this.geometryOperandConstant);
1412 1412
        fieldBuilder.add("useBox2dInGeometryOperand", this.useBox2dInGeometryOperand);
1413 1413
        return fieldBuilder.build();
......
1466 1466
        }
1467 1467

  
1468 1468
        this.geometryOperandMode = jsonState.getInt("geometryOperandMode", GEOM_OPERAND_MODE_CLIPBOARD);
1469
        this.geometryOperandStoreName = jsonState.getString("geometryOperandStoreName", null);
1469
        this.geometryOperandStoreId = jsonState.getString("geometryOperandStoreName", null);
1470 1470
        this.geometryOperandConstant = (Geometry) Json.toObject(jsonState,"geometryOperandConstant");
1471 1471
        this.useBox2dInGeometryOperand = jsonState.getBoolean("geometryOperandStoreName", false);
1472 1472
    }
......
1750 1750
        List<Geometry> geoms;
1751 1751
        switch(this.geometryOperandMode) {
1752 1752
            case GEOM_OPERAND_MODE_LAYER_SELECTION:
1753
                geoms = this.getGeometryOperandFromLayerSelection(this.geometryOperandStoreName, warnings);
1753
                geoms = this.getGeometryOperandFromLayerSelection(this.geometryOperandStoreId, warnings);
1754 1754
                break;
1755 1755
            case GEOM_OPERAND_MODE_CONSTANT:
1756 1756
                geoms = this.getGeometryOperandConstant(proj, warnings);
......
1817 1817
        }
1818 1818
    }
1819 1819
    
1820
    private synchronized List<Geometry> getGeometryOperandFromLayerSelection(String storeName, StringBuilder warnings) {
1821
        if( StringUtils.isBlank(storeName) ) {
1820
    private synchronized List<Geometry> getGeometryOperandFromLayerSelection(String storeId, StringBuilder warnings) {
1821
        if( StringUtils.isBlank(storeId) ) {
1822 1822
            return null;
1823 1823
        }        
1824 1824
        StoresRepository repo = null;
1825 1825
        FeatureStore theStore = null;
1826 1826
        try {
1827 1827
            repo = DALLocator.getDataManager().getStoresRepository();
1828
            theStore = (FeatureStore) repo.getStore(storeName);
1828
            theStore = (FeatureStore) repo.getStore(storeId);
1829 1829
            if( theStore == null ) {
1830 1830
                warnings.append("Table not found in project.");
1831 1831
                warnings.append("\n");
......
1871 1871
            if( dialog.getAction()==WindowManager_v2.BUTTON_OK ) {
1872 1872
                this.geometryOperandMode = panel.getMode();
1873 1873
                this.geometryOperandConstant = panel.getGeometry();
1874
                this.geometryOperandStoreName = panel.getStoreName();
1874
                this.geometryOperandStoreId = panel.getStoreId();
1875 1875
                this.useBox2dInGeometryOperand = panel.useBox2dInGeometryOperand();
1876 1876
                doUpdateCurrentValue();
1877 1877
            }
1878 1878
        });
1879 1879
        panel.setMode(this.geometryOperandMode);
1880 1880
        panel.setGeometry(this.geometryOperandConstant);
1881
        panel.setStoreName(this.geometryOperandStoreName);
1881
        panel.setStoreId(this.geometryOperandStoreId);
1882 1882
        panel.setUseBox2dInGeometryOperand(this.useBox2dInGeometryOperand);
1883 1883
        
1884 1884
        dialog.show(WindowManager.MODE.DIALOG);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/storesrepository/StoresRepositoryControllerImpl.java
122 122
        return store;
123 123
    }
124 124
    
125
    public String getSelectedStoreId() {
126
        TreePath path = this.tree.getSelectionPath();
127
        if( path == null ) {
128
            return null;
129
        }
130
        StoresRepositoryElement element = (StoresRepositoryElement) path.getLastPathComponent();
131
        if( element == null ) {
132
            return null;
133
        }
134
        TreePath parentPath = path.getParentPath();
135
        if( parentPath == null ) {
136
            return null;
137
        }
138
        
139
        StoresRepositoryElement parentElement = (StoresRepositoryElement) parentPath.getLastPathComponent();
140
        if( !element.isStore() ) {
141
            return null;
142
        }
143
        if( !parentElement.isRepository() ) {
144
            return null;
145
        }
146
        StoresRepository repository = parentElement.getRepository();
147
        String s = repository.getStoreId(element.getLabel());
148
        return s;
149
    }
150

  
125 151
    @Override
126 152
    public boolean setSelectedStore(FeatureStore store) {
127 153

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/StoresRepository.java
31 31
    
32 32
    public String getLabel();
33 33
    
34
    public String getLabel(String name);
34
    public String getStoreId(String label);
35

  
36
    public String getLabel(String storeId);
35 37
    
36
    public String getLabelOrName(String name);
38
    public String getLabelOrName(String storeId);
37 39
    
38 40
    public Collection<StoresRepository> getSubrepositories();
39 41
    
......
57 59
            
58 60
    public boolean contains(DataStoreParameters parameters);
59 61
    
60
    public boolean contains(String name);
62
    public boolean contains(String storeId);
61 63
    
62
    public void remove(String name);
64
    public void remove(String storeId);
63 65
    
64
    public DataStore getStore(String name);
65

  
66
    public DataStore getStore(String storeId);
67
    
66 68
    /**
67 69
     * Return the repository ID of the store.
68 70
     * 
69 71
     * @param storeName of the store to search the repository
70 72
     * @return the ID of the repository
71 73
     */
72
    public String getRepositoryIDOfStore(String storeName);
74
    public String getRepositoryIDOfStore(String storeId);
73 75
    
74
    public StoresRepository getRepositoryOfStore(String storeName);
76
    public StoresRepository getRepositoryOfStore(String storeId);
75 77

  
76 78
    public Set<String> keySetDeep();
77 79
    
78 80
    public Set<String> keySetShallow();
79 81
    
80
    public FeatureType getFeatureType(String name);
82
    public FeatureType getFeatureType(String storeId);
81 83

  
82 84
    public DataServerExplorerParameters getServerParameters();
83 85
    
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/AbstractStoresRepository.java
342 342
        }
343 343
        return this.getStore(name, false);
344 344
    }
345
    
346
    @Override
347
    public String getStoreId(String label) {
348
        DataStoreParameters parameters = this.getMyParameters(label);
349
        if( parameters!=null ) {
350
            DataStore store = null;
351
            try {
352
                store = DALLocator.getDataManager().openStore(
353
                        parameters.getProviderName(), 
354
                        parameters,
355
                        true
356
                );
357
                return store.getName();
358
            } catch (Exception ex) {
359
                throw new RuntimeException("Can't open store '"+label+"'.", ex);
360
            } finally {
361
                DisposeUtils.disposeQuietly(store);
362
            }
363
        }
364
        for ( StoresRepository theRepository : this.getSubrepositories()) {
365
            String s = theRepository.getStoreId(label);
366
            if( s !=null ) {
367
                return s;
368
            }
369
        }
370
        return null;
371
    }
345 372

  
346 373
    public DataStore getStore(String name, boolean ignoreDALResource) {
347 374
        DataStoreParameters parameters = this.getMyParameters(name);

Also available in: Unified diff