Revision 38383

View differences:

branches/v2_0_0_prep/extensions/org.gvsig.daltransform.app.mainplugin/src/main/java/org/gvsig/daltransform/swing/DataTransformGui.java
92 92
	 */
93 93
	public Dimension getMinDimension();
94 94

  
95
	/**
96
	 * This method will be called right before the transformation is applied
97
	 * to let the instance of this interface perform some action.
98
	 * 
99
	 * @param store the {@link FeatureStore} to be transformed
100
	 * @param transform the {@link FeatureStoreTransform} to be applied
101
	 */
102
	public void beforeApplyingTransform(FeatureStore store, FeatureStoreTransform transform);
103
	
104
	/**
105
     * This method will be called right after the transformation is applied
106
     * to let the instance of this interface perform some action.
107
     * 
108
     * @param store the {@link FeatureStore} that has been transformed
109
     * @param transform the {@link FeatureStoreTransform} that has been applied
110
	 */
111
	public void afterApplyingTransform(FeatureStore store, FeatureStoreTransform transform);
112 95

  
113 96
}
114 97

  
branches/v2_0_0_prep/extensions/org.gvsig.daltransform.app.mainplugin/src/main/java/org/gvsig/daltransform/swing/impl/DataTransformSelectionAction.java
70 70
			//Gets the transform
71 71
			FeatureStoreTransform featureStoreTransform = featureTransformGui.createFeatureStoreTransform(featureStore);
72 72
			
73
			// before applying
74
			featureTransformGui.beforeApplyingTransform(featureStore, featureStoreTransform);
75
			
76 73
			// Apply the transformation
77 74
			featureStore.getTransforms().add(featureStoreTransform);
78 75
			
79
	         // after applying
80
            featureTransformGui.afterApplyingTransform(featureStore, featureStoreTransform);
81
			
82 76
			//Create and load a new layer...
83 77
			if (dataTransformWizard.isLayerLoaded()){
84 78
			    MapContextManager manager = MapContextLocator.getMapContextManager();
branches/v2_0_0_prep/extensions/extDalTransformJoin/src/org/gvsig/app/join/daltransform/JoinTransformGui.java
124 124
        return true;
125 125
    }
126 126

  
127
    /* (non-Javadoc)
128
     * @see org.gvsig.daltransform.swing.DataTransformGui#beforeApplyingTransform(org.gvsig.fmap.dal.feature.FeatureStore, org.gvsig.fmap.dal.feature.FeatureStoreTransform)
129
     */
130
    public void beforeApplyingTransform(FeatureStore store,
131
        FeatureStoreTransform transform) {
132
        store.disableNotifications();
133
    }
134

  
135
    /* (non-Javadoc)
136
     * @see org.gvsig.daltransform.swing.DataTransformGui#afterApplyingTransform(org.gvsig.fmap.dal.feature.FeatureStore, org.gvsig.fmap.dal.feature.FeatureStoreTransform)
137
     */
138
    public void afterApplyingTransform(FeatureStore store,
139
        FeatureStoreTransform transform) {
140
        store.enableNotifications();
141
        
142
        try {
143
            reloadTablesBasedOn(store);
144
        } catch (DataException e) {
145
            
146
            logger.info("Error while refreshing table after join transformation.", e);
147
            ApplicationLocator.getManager().message(
148
                Messages.getText("_Unable_to_refresh_table_contents"),
149
                JOptionPane.ERROR_MESSAGE);
150
        }
151
    }
127
   
152 128
    
153
    private void reloadTablesBasedOn(FeatureStore featureStore) throws DataException {
154
        
155
        IWindow[] ws = PluginServices.getMDIManager().getAllWindows();
156
        int len = ws.length;
157
        FeatureTypesTablePanel table_panel = null;
158
        FeatureStore fsto = null;
159
        for (int i=0; i<len; i++) {
160
            if (ws[i] instanceof FeatureTypesTablePanel) {
161
                table_panel = (FeatureTypesTablePanel) ws[i];
162
                ConfigurableFeatureTableModel cftm =
163
                    table_panel.getTablePanel().getTableModel();
164
                fsto = cftm.getFeatureStore();
165
                if (fsto == featureStore) {
166
                    // refresh featuretype
167
                    cftm.setFeatureType(fsto.getDefaultFeatureType());
168
                }
169
            }
170
        }
171
    }     
172
    
173 129
    public String toString() {
174 130
        return getName();
175 131
    }
branches/v2_0_0_prep/libraries/libFMap_controls/src/org/gvsig/fmap/mapcontrol/dal/feature/swing/table/FeatureTableModel.java
261 261
            } else if (FeatureStoreNotification.AFTER_UPDATE.equals(type)) {
262 262
            	
263 263
            	reloadIfFeatureUpdated(fsNotification.getFeature());
264
            	
264 265
            } else
265 266
                if (FeatureStoreNotification.AFTER_UPDATE_TYPE.equals(type)) {
266 267

  
267 268
                    reloadIfTypeChanged(fsNotification.getFeatureType());
268 269

  
269 270
                } else
270
                    if (FeatureStoreNotification.TRANSFORM_CHANGE.equals(type)) {
271
                        reloadIfTypeTransformed();
271
                    if (FeatureStoreNotification.TRANSFORM_CHANGE.equals(type)
272
                        // || FeatureStoreNotification.AFTER_UNDO.equals(type)
273
                        || FeatureStoreNotification.AFTER_REFRESH.equals(type)) {
274
                        
275
                        reloadFeatureType();
272 276

  
273 277
                    } else
274
                        if (FeatureStoreNotification.AFTER_FINISHEDITING
275
                            .equals(type)
276
                            || FeatureStoreNotification.AFTER_CANCELEDITING
277
                                .equals(type)) {
278
                            reloadIfTypeTransformed();
278
                        if (FeatureStoreNotification.AFTER_FINISHEDITING.equals(type)
279
                            || FeatureStoreNotification.AFTER_CANCELEDITING.equals(type)) {
280
                            
281
                            reloadFeatureType();
279 282
                        }
280 283

  
281 284
        }
......
412 415
        }
413 416
    }
414 417

  
415
    /**
416
     * Reloads data and structure if the {@link FeatureType} of the features
417
     * being shown has been transformed.
418
     */
419
    private void reloadIfTypeTransformed() {
418

  
419

  
420
    private void reloadFeatureType() {
420 421
        try {
421 422
            setFeatureType(getHelper().getFeatureStore().getFeatureType(
422 423
                getHelper().getFeatureType().getId()));

Also available in: Unified diff