Revision 43639

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/MapControl.java
66 66
import org.gvsig.fmap.geom.primitive.Envelope;
67 67
import org.gvsig.fmap.mapcontext.MapContext;
68 68
import org.gvsig.fmap.mapcontext.MapContextLocator;
69
import org.gvsig.fmap.mapcontext.MapContextManager;
70 69
import org.gvsig.fmap.mapcontext.ViewPort;
71 70
import org.gvsig.fmap.mapcontext.events.AtomicEvent;
72 71
import org.gvsig.fmap.mapcontext.events.listeners.AtomicEventListener;
72
import org.gvsig.fmap.mapcontext.layers.FLayer;
73 73
import org.gvsig.fmap.mapcontext.layers.FLayers;
74 74
import org.gvsig.fmap.mapcontext.layers.LayerCollectionEvent;
75 75
import org.gvsig.fmap.mapcontext.layers.LayerEvent;
......
89 89
import org.gvsig.tools.dispose.Disposable;
90 90
import org.gvsig.tools.observer.Observable;
91 91
import org.gvsig.tools.observer.Observer;
92
import org.gvsig.tools.swing.api.ActionListenerSupport;
93
import org.gvsig.tools.swing.api.ToolsSwingLocator;
92 94
import org.gvsig.tools.task.Cancellable;
93 95
import org.gvsig.utils.exceptionHandling.ExceptionHandlingSupport;
94 96
import org.gvsig.utils.exceptionHandling.ExceptionListener;
......
258 260
public class MapControl extends JComponent implements ComponentListener,
259 261
    Observer, Disposable {
260 262

  
261
    protected static final GeometryManager geomManager =
262
        GeometryLocator.getGeometryManager();
263
    private static final Logger LOG =
264
        LoggerFactory.getLogger(GeometryManager.class);
263
    public class AddLayerEvent extends ActionEvent {
265 264

  
265
        private static final long serialVersionUID = -1857839388303164091L;
266

  
267
        private FLayer layer;
268
        
269
        public AddLayerEvent(FLayer layer, Object source, int id, String command) {
270
            super(source, id, command);
271
            this.layer = layer;
272
        }
273
        
274
        public FLayer getLayer() {
275
            return this.layer;
276
        }
277
        
278
        public void setLayer(FLayer layer) {
279
            this.layer = layer;
280
        }
281
    }
282
    
283
    protected static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
284
    private static final Logger LOG = LoggerFactory.getLogger(GeometryManager.class);
285

  
266 286
    /**
267 287
     * <p>
268 288
     * One of the possible status of <code>MapControl</code>. Determines that
......
573 593

  
574 594
	private boolean disposed = false;
575 595

  
596
    private ActionListenerSupport addLayerHelper;
597
    
576 598
    /**
577 599
     * <p>
578 600
     * Creates a new <code>MapControl</code> instance with the following
......
609 631
            theMapContext = new MapContext(new ViewPort(MapContextLocator.getMapContextManager().getDefaultCRS()));
610 632
        }
611 633
        this.setName("MapControl");
634
        this.addLayerHelper = ToolsSwingLocator.getToolsSwingManager().createActionListenerSupport();
612 635
        Toolkit toolkit = Toolkit.getDefaultToolkit();
613 636
        Image imageTransparentCursor = toolkit.createImage(new MemoryImageSource(16, 16, new int[16 * 16], 0,16));
614 637
        transparentCursor =
......
652 675
		}
653 676
    }
654 677
    
678
    public void addLayer(FLayer layer) {
679
        AddLayerEvent event = new AddLayerEvent(layer, this, 1, "addLayer");
680
        this.addLayerHelper.fireActionEvent(event);
681
        this.mapContext.getLayers().add(event.getLayer());
682
    }
683
    
684
    public void addLayerListener(ActionListener al) {
685
        this.addLayerHelper.addActionListener(al);
686
    }
687
    
655 688
    public void setPaintMode(int paintMode) {
656 689
        this.paintMode = paintMode;
657 690
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.geodb.app/org.gvsig.geodb.app.mainplugin/src/main/java/org/gvsig/geodb/vectorialdb/wizard/WizardVectorialDB.java
154 154

  
155 155
    @Override
156 156
	public void execute() {
157
        executeWizard();
158
    }
159

  
160
    @Override
161
	public Object executeWizard() {
157 162
		MapControl mapControl = this.getMapCtrl();
158 163
        MapContext mc = mapControl.getMapContext();
159 164
        MapContextManager mapContextManager = MapContextLocator.getMapContextManager();
160
        Boolean needCalculateEnvelope  = mc.getViewPort().getEnvelope() == null;
165
//        Boolean needCalculateEnvelope  = mc.getViewPort().getEnvelope() == null;
161 166
		TablesListItem[] tables = getSelectedTables();
162 167

  
163 168
		List<FLayer> all_layers = new ArrayList();
......
193 198
                    		parameter);
194 199
                } catch (Exception e) {
195 200
                    logger.warn("While opening DB store.", e);
196
                    return;
201
                    return null;
197 202
                }
198 203
                try {
199 204

  
......
225 230
                mc.beginAtomicEvent();
226 231
                try {
227 232
                    try {
228
                        mc.getLayers().addLayer(group);
233
                        mapControl.addLayer(group);
229 234
                        group.dispose();
230 235
                    } catch (CancelationException e) {
231 236
                        logger.warn("Can't add group to mapcontext layers.",e);
......
234 239
                } finally {
235 240
                    mc.endAtomicEvent();
236 241
                }
237
                return;
238
            } else {
239
                if (all_layers.size() == 1) {
240
                    layer = (FLayer) all_layers.get(0);
241
                    if (!(layer.isOk())) {
242
                        // if the layer is not okay (it has errors) process them
243
                        processErrorsOfLayer(layer, mapControl);
244
                    }
242
                return null;
243
            } else if (all_layers.size() == 1) {
244
                layer = (FLayer) all_layers.get(0);
245
                if (!(layer.isOk())) {
246
                    // if the layer is not okay (it has errors) process them
247
                    processErrorsOfLayer(layer, mapControl);
248
                }
245 249

  
246
                    layer.setVisible(true);
247
                    mc.beginAtomicEvent();
250
                layer.setVisible(true);
251
                mc.beginAtomicEvent();
252
                try {
248 253
                    try {
249
                        try {
250
                            mc.getLayers().addLayer(layer);
251
                        } catch (CancelationException e) {
252
                            return;
253
                        }
254
                    } finally {
255
                        mc.endAtomicEvent();
254
                        mapControl.addLayer(layer);
255
                    } catch (CancelationException e) {
256
                        return null;
256 257
                    }
257
                    return;
258
                } finally {
259
                    mc.endAtomicEvent();
258 260
                }
261
                return null;
262

  
259 263
            }
260
            if ( needCalculateEnvelope ) {
261
        		Envelope env = null;
262
                for( FLayer theLayer : all_layers) {
263
                    try {
264
                        if (env == null) {
265
                            env = theLayer.getFullEnvelope();
266
                        } else {
267
                            env.add(theLayer.getFullEnvelope());
268
                        }
269
                    } catch(Exception ex) {
270
                        // Ignore
271
                    }
272
                    
273
                }                
274
                mapControl.getViewPort().setEnvelope(env);
275
            }            
264
//            if ( needCalculateEnvelope ) {
265
//        		Envelope env = null;
266
//                for( FLayer theLayer : all_layers) {
267
//                    try {
268
//                        if (env == null) {
269
//                            env = theLayer.getFullEnvelope();
270
//                        } else {
271
//                            env.add(theLayer.getFullEnvelope());
272
//                        }
273
//                    } catch(Exception ex) {
274
//                        // Ignore
275
//                    }
276
//                    
277
//                }                
278
//                mapControl.getViewPort().setEnvelope(env);
279
//            }            
276 280
            
277 281
        } finally {
278 282
            // Dispose all created layers. If they have been included into
......
282 286
                layer.dispose();
283 287
            }
284 288
		}
289
        return null;
285 290
	}
286 291

  
287 292
    @Override
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerWizardPanel.java
322 322
                                        }
323 323
                                    });
324 324
                    if (preparedLayer != null) {
325
                        mapContext.getLayers().addLayer(preparedLayer);
325
                        mapControl.addLayer(preparedLayer);
326 326
                    }
327 327
                } catch (UnauthorizedException e) {
328 328
                    I18nManager i18nManager = ToolsLocator.getI18nManager();

Also available in: Unified diff