/[schmitzm]/branches/2.1/src/skrueger/geotools/selection/FeatureMapLayerSelectionSynchronizer.java
ViewVC logotype

Diff of /branches/2.1/src/skrueger/geotools/selection/FeatureMapLayerSelectionSynchronizer.java

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

revision 100 by alfonx, Fri May 8 12:29:45 2009 UTC revision 104 by alfonx, Fri May 8 13:49:34 2009 UTC
# Line 26  import javax.swing.text.Utilities; Line 26  import javax.swing.text.Utilities;
26    
27  import org.geotools.feature.Feature;  import org.geotools.feature.Feature;
28  import org.geotools.map.MapLayer;  import org.geotools.map.MapLayer;
29    import org.geotools.styling.Rule;
30    import org.geotools.styling.RuleImpl;
31  import org.geotools.styling.Style;  import org.geotools.styling.Style;
32    import org.geotools.styling.StyleImpl;
33    import org.geotools.styling.Symbolizer;
34    import org.opengis.filter.Filter;
35    import org.opengis.filter.FilterVisitor;
36    import org.opengis.layer.StyleURL;
37    
38  import schmitzm.geotools.gui.FeatureCollectionTableModel;  import schmitzm.geotools.gui.FeatureCollectionTableModel;
39  import schmitzm.geotools.gui.JMapPane;  import schmitzm.geotools.gui.JMapPane;
# Line 34  import schmitzm.geotools.map.event.Featu Line 41  import schmitzm.geotools.map.event.Featu
41  import schmitzm.geotools.map.event.JMapPaneEvent;  import schmitzm.geotools.map.event.JMapPaneEvent;
42  import schmitzm.geotools.map.event.JMapPaneListener;  import schmitzm.geotools.map.event.JMapPaneListener;
43  import schmitzm.geotools.styling.StylingUtil;  import schmitzm.geotools.styling.StylingUtil;
44    import schmitzm.lang.LangUtil;
45  import skrueger.geotools.StyledFeatureCollectionInterface;  import skrueger.geotools.StyledFeatureCollectionInterface;
46  import skrueger.geotools.StyledMapInterface;  import skrueger.geotools.StyledMapInterface;
47  import skrueger.geotools.selection.StyledFeatureLayerSelectionModel;  import skrueger.geotools.selection.StyledFeatureLayerSelectionModel;
# Line 59  import skrueger.geotools.selection.Style Line 67  import skrueger.geotools.selection.Style
67   *         (University of Bonn/Germany)   *         (University of Bonn/Germany)
68   */   */
69  public class FeatureMapLayerSelectionSynchronizer extends  public class FeatureMapLayerSelectionSynchronizer extends
70                  StyledLayerSelectionModelSynchronizer<Feature> implements                  StyledLayerSelectionModelSynchronizer<StyledFeatureLayerSelectionModel> implements
71                  JMapPaneListener {                  JMapPaneListener {
72          /**          /**
73           * Holds the {@link MapLayer} to keep synchronized with the layer selection           * Holds the {@link MapLayer} to keep synchronized with the layer selection
# Line 125  public class FeatureMapLayerSelectionSyn Line 133  public class FeatureMapLayerSelectionSyn
133                  selectionChangeCausedByMe = false;                  selectionChangeCausedByMe = false;
134          }          }
135    
136          private void changeLayerStyle(Vector<Feature> newSelection) {          private void changeLayerStyle(final Vector<Feature> newSelection) {
137                  Style selectionMapStyle = null;                  Style selectionMapStyle = null;
138                  try {                  try {
139                          if (newSelection.isEmpty()) {                          if (newSelection.isEmpty()) {
# Line 135  public class FeatureMapLayerSelectionSyn Line 143  public class FeatureMapLayerSelectionSyn
143                                                                    
144                          } else {                          } else {
145                                  LOGGER.debug("SELECTION .. change style");                                  LOGGER.debug("SELECTION .. change style");
                                 selectionMapStyle = StylingUtil  
                                                 .createDefaultStyle(styledMapLayer.getGeoObject());  
146                                                                    
147                                  selectionMapStyle = styledMapLayer.getStyle();                                  Style originalStyle = styledMapLayer.getStyle();
148                                    
149                                    // TODO This clone is a deep clone and it is slow..
150                                    selectionMapStyle =  StylingUtil.clone(originalStyle);
151                                    
152                                    Rule[] rules = selectionMapStyle.getFeatureTypeStyles()[0].getRules();
153                                    
154                                    Rule selectedRule = StylingUtil.STYLE_FACTORY.createRule();
155                                    selectedRule.setFilter(new Filter() {
156    
157                                            @Override
158                                            public Object accept(FilterVisitor visitor, Object extraData) {
159                                                    return null;
160                                            }
161    
162                                            @Override
163                                            public boolean evaluate(Object obj) {
164                                                    if (obj instanceof Feature) {
165                                                            Feature f = (Feature)obj;
166                                                            LOGGER.info("treffer");
167                                                            return newSelection.contains(f);
168                                                            
169                                                    }
170                                                    LOGGER.info("kein treffer");
171                                                    return false;
172                                            }
173                                            
174                                    });
175                                    
176                                    Symbolizer[] symbolizers = selectedRule.getSymbolizers();
177                                    Style selectedStyle = StylingUtil.createDefaultStyle(styledMapLayer.getGeoObject());
178                                    LangUtil.extendArray(symbolizers, selectedStyle);
179                                    selectedRule.setSymbolizers(symbolizers);
180                                    
181                                    LangUtil.extendArray(rules, selectedRule);
182                                    
183    //                              selectionMapStyle.setFeatureTypeStyles(originalStyle.getF)
184                                    
185                                    // Flat copy the style
186                                    
187                                    
188                                    
189                                                                    
190                          }                          }
191    

Legend:
Removed from v.100  
changed lines
  Added in v.104

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26