/[schmitzm]/branches/2.0-RC1/src/skrueger/geotools/selection/FeatureMapLayerSelectionSynchronizer.java
ViewVC logotype

Diff of /branches/2.0-RC1/src/skrueger/geotools/selection/FeatureMapLayerSelectionSynchronizer.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 408 by mojays, Wed Aug 26 15:32:54 2009 UTC revision 409 by alfonx, Fri Sep 18 15:00:29 2009 UTC
# Line 29  Line 29 
29   ******************************************************************************/   ******************************************************************************/
30  /**  /**
31   Copyright 2008 Stefan Alfons Krüger   Copyright 2008 Stefan Alfons Krüger
32    
33   atlas-framework - This file is part of the Atlas Framework   atlas-framework - This file is part of the Atlas Framework
34    
35   This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.   This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
# Line 45  package skrueger.geotools.selection; Line 45  package skrueger.geotools.selection;
45  import java.beans.PropertyChangeEvent;  import java.beans.PropertyChangeEvent;
46  import java.beans.PropertyChangeListener;  import java.beans.PropertyChangeListener;
47  import java.util.Arrays;  import java.util.Arrays;
 import java.util.Collection;  
48  import java.util.HashSet;  import java.util.HashSet;
49    import java.util.Iterator;
50  import java.util.Set;  import java.util.Set;
51  import java.util.Vector;  import java.util.Vector;
52    
# Line 54  import javax.swing.JTable; Line 54  import javax.swing.JTable;
54  import javax.swing.ListSelectionModel;  import javax.swing.ListSelectionModel;
55  import javax.swing.event.ListSelectionListener;  import javax.swing.event.ListSelectionListener;
56    
57    import org.geotools.feature.FeatureIterator;
58  import org.geotools.map.MapLayer;  import org.geotools.map.MapLayer;
59  import org.geotools.styling.FeatureTypeStyle;  import org.geotools.styling.FeatureTypeStyle;
60  import org.geotools.styling.Style;  import org.geotools.styling.Style;
# Line 61  import org.opengis.feature.simple.Simple Line 62  import org.opengis.feature.simple.Simple
62  import org.opengis.filter.identity.FeatureId;  import org.opengis.filter.identity.FeatureId;
63    
64  import schmitzm.geotools.FilterUtil;  import schmitzm.geotools.FilterUtil;
65    import schmitzm.geotools.feature.PipedFeatureIterator;
66  import schmitzm.geotools.gui.JMapPane;  import schmitzm.geotools.gui.JMapPane;
67  import schmitzm.geotools.map.event.FeatureSelectedEvent;  import schmitzm.geotools.map.event.FeatureSelectedEvent;
68  import schmitzm.geotools.map.event.JMapPaneEvent;  import schmitzm.geotools.map.event.JMapPaneEvent;
# Line 204  public class FeatureMapLayerSelectionSyn Line 206  public class FeatureMapLayerSelectionSyn
206                                   * used on objects that are selected. <br/>                                   * used on objects that are selected. <br/>
207                                   *                                   *
208                                   * Note 1:<br/>                                   * Note 1:<br/>
209                                   * It is NEVER allowed to GeoTools extend Filter () { .. } (and write                                   * It is NEVER allowed to GeoTools extend Filter () { .. } (and
210                                   * tests into the evaluate block). Especially for the                                   * write tests into the evaluate block). Especially for the
211                                   * ShapeFileRenderer, we may only use a geotools Filter.<br/>                                   * ShapeFileRenderer, we may only use a geotools Filter.<br/>
212                                   *                                   *
213                                   * Note 2:<br/>                                   * Note 2:<br/>
214                                   * The FilterUtil.FILTER_FAC2.id(fids) wants a set of FeatureId-Objects!                                   * The FilterUtil.FILTER_FAC2.id(fids) wants a set of
215                                     * FeatureId-Objects!
216                                   */                                   */
217    
218                                  Set<FeatureId> fids = new HashSet<FeatureId>();                                  Set<FeatureId> fids = new HashSet<FeatureId>();
# Line 299  public class FeatureMapLayerSelectionSyn Line 302  public class FeatureMapLayerSelectionSyn
302                  // Avoid event circles in propertyChange(..)                  // Avoid event circles in propertyChange(..)
303                  selectionChangeCausedByMe = true;                  selectionChangeCausedByMe = true;
304    
305                  Collection<SimpleFeature> selectionResult = (Collection<SimpleFeature>) fse                  Iterator<SimpleFeature> fi = fse.getSelectionResult().iterator();
                                 .getSelectionResult();  
306    
307                  // reset the selection of the DpLayerSelectionModel                  // reset the selection of the DpLayerSelectionModel
308                  // layerSelModel.setValueIsAdjusting(true);                  // layerSelModel.setValueIsAdjusting(true);
309    
310                  if (selectedTool == MapPaneToolBar.TOOL_SELECTION_ADD) {                  if (selectedTool == MapPaneToolBar.TOOL_SELECTION_ADD) {
311                          layerSelModel.setValueIsAdjusting(true);                          layerSelModel.setValueIsAdjusting(true);
312                          for (SimpleFeature f : selectionResult) {  
313                            for (int fIdx = 0; fi.hasNext(); fIdx++) {
314                                    SimpleFeature f = fi.next();
315                                  layerSelModel.addSelection(f.getID());                                  layerSelModel.addSelection(f.getID());
316                          }                          }
317                          layerSelModel.setValueIsAdjusting(false);                          layerSelModel.setValueIsAdjusting(false);
# Line 315  public class FeatureMapLayerSelectionSyn Line 319  public class FeatureMapLayerSelectionSyn
319                          layerSelModel.setValueIsAdjusting(true);                          layerSelModel.setValueIsAdjusting(true);
320                          layerSelModel.clearSelection();                          layerSelModel.clearSelection();
321    
322                          for (SimpleFeature f : selectionResult) {                          for (int fIdx = 0; fi.hasNext(); fIdx++) {
323                                    SimpleFeature f = fi.next();
324                                  layerSelModel.addSelection(f.getID());                                  layerSelModel.addSelection(f.getID());
325                          }                          }
326    
327                          LOGGER.debug("Setting selection to " + selectionResult.size());                          // LOGGER.debug("Setting selection to " + fi.());
328    
329                          layerSelModel.setValueIsAdjusting(false);                          layerSelModel.setValueIsAdjusting(false);
330                  } else if (selectedTool == MapPaneToolBar.TOOL_SELECTION_REMOVE) {                  } else if (selectedTool == MapPaneToolBar.TOOL_SELECTION_REMOVE) {
331                          layerSelModel.setValueIsAdjusting(true);                          layerSelModel.setValueIsAdjusting(true);
332                          for (SimpleFeature f : selectionResult) {                          for (int fIdx = 0; fi.hasNext(); fIdx++) {
333                                    SimpleFeature f = fi.next();
334                                  layerSelModel.removeSelection(f.getID());                                  layerSelModel.removeSelection(f.getID());
335                          }                          }
336                          layerSelModel.setValueIsAdjusting(false);                          layerSelModel.setValueIsAdjusting(false);

Legend:
Removed from v.408  
changed lines
  Added in v.409

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26