1 |
|
/******************************************************************************* |
2 |
|
* Copyright (c) 2009 Martin O. J. Schmitz. |
3 |
|
* |
4 |
|
* This file is part of the SCHMITZM library - a collection of utility |
5 |
|
* classes based on Java 1.6, focusing (not only) on Java Swing |
6 |
|
* and the Geotools library. |
7 |
|
* |
8 |
|
* The SCHMITZM project is hosted at: |
9 |
|
* http://wald.intevation.org/projects/schmitzm/ |
10 |
|
* |
11 |
|
* This program is free software; you can redistribute it and/or |
12 |
|
* modify it under the terms of the GNU Lesser General Public License |
13 |
|
* as published by the Free Software Foundation; either version 3 |
14 |
|
* of the License, or (at your option) any later version. |
15 |
|
* |
16 |
|
* This program is distributed in the hope that it will be useful, |
17 |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
19 |
|
* GNU General Public License for more details. |
20 |
|
* |
21 |
|
* You should have received a copy of the GNU Lesser General Public License (license.txt) |
22 |
|
* along with this program; if not, write to the Free Software |
23 |
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
24 |
|
* or try this link: http://www.gnu.org/licenses/lgpl.html |
25 |
|
* |
26 |
|
* Contributors: |
27 |
|
* Martin O. J. Schmitz - initial API and implementation |
28 |
|
* Stefan A. Krüger - additional utility classes |
29 |
|
******************************************************************************/ |
30 |
/** |
/** |
31 |
Copyright 2008 Stefan Alfons Krüger |
Copyright 2008 Stefan Alfons Krüger |
32 |
|
|
43 |
|
|
44 |
package skrueger.geotools.selection; |
package skrueger.geotools.selection; |
45 |
|
|
46 |
import java.util.Collection; |
import org.geotools.feature.SimpleFeature; |
|
import java.util.HashSet; |
|
|
import java.util.Set; |
|
|
import java.util.Vector; |
|
|
|
|
|
import org.apache.log4j.Logger; |
|
|
import org.geotools.feature.Feature; |
|
|
import org.geotools.filter.AbstractFilterImpl; |
|
|
import org.geotools.styling.Style; |
|
|
import org.opengis.filter.Filter; |
|
47 |
|
|
48 |
import schmitzm.geotools.feature.FeatureUtil; |
import skrueger.geotools.StyledFeatureCollectionInterface; |
49 |
|
import skrueger.geotools.StyledFeatureSourceInterface; |
50 |
import com.vividsolutions.jts.geom.Envelope; |
import skrueger.geotools.StyledFeaturesInterface; |
51 |
|
import skrueger.geotools.StyledLayerInterface; |
52 |
|
|
53 |
/** |
/** |
54 |
* This manager takes care of every object selection for a {@link DpLayerVector} |
* This manager holds a set of {@link SimpleFeature Features} which are <i>selected</i> |
55 |
* in the several atlas components and informs the appropriate components |
* in a {@link StyledLayerInterface} ({@link StyledFeatureCollectionInterface} or |
56 |
* to keep the selection synchronized. |
* {@link StyledFeatureSourceInterface}). |
|
* <ul> |
|
|
* <li>Geographical map of the layer</li> |
|
|
* <li>Feature attribute table of the layer</li> |
|
|
* <li>Chart visualizations of the layer</li> |
|
|
* </ul> |
|
57 |
* @author <a href="mailto:[email protected]">Martin Schmitz</a> (University of Bonn/Germany) |
* @author <a href="mailto:[email protected]">Martin Schmitz</a> (University of Bonn/Germany) |
58 |
*/ |
*/ |
59 |
public class StyledFeatureLayerSelectionModel extends StyledLayerSelectionModel<Feature> { |
public class StyledFeatureLayerSelectionModel extends StyledLayerSelectionModel<String> { |
60 |
/** A static logger for this class */ |
/** |
61 |
private static final Logger LOGGER = Logger.getLogger(StyledFeatureLayerSelectionModel.class); |
* Creates a new selection model. |
62 |
/** Holds the current selection as {@link Style}. */ |
* @param styledLayer styled map the selection is controlled of |
63 |
protected Style selectionMapStyle = null; |
*/ |
64 |
/** Holds the current selection as {@link Filter}. */ |
public StyledFeatureLayerSelectionModel(StyledFeaturesInterface styledLayer) { |
65 |
protected Filter selectionFilter = null; |
super(styledLayer); |
66 |
/** Holds the current selection as {@code ChartStyle}. |
} |
67 |
* TODO: determine an appropriate type for the chart styling. */ |
|
68 |
protected Object selectionChartStyle = null; |
|
69 |
|
|
70 |
|
//*********** UNUSED STUFF ************** |
71 |
|
|
72 |
|
// /** A static logger for this class */ |
73 |
|
// private static final Logger LOGGER = Logger.getLogger(StyledFeatureLayerSelectionModel.class); |
74 |
|
// /** Holds the current selection as {@link Style}. */ |
75 |
|
// protected Style selectionMapStyle = null; |
76 |
|
// /** Holds the current selection as {@link Filter}. */ |
77 |
|
// protected Filter selectionFilter = null; |
78 |
|
// /** Holds the current selection as {@code ChartStyle}. |
79 |
|
// * TODO: determine an appropriate type for the chart styling. */ |
80 |
|
// protected Object selectionChartStyle = null; |
81 |
// |
// |
82 |
// /** |
// /** |
83 |
// * Creates a new selection model. |
// * Creates a new selection model. |
184 |
// // in the selection list |
// // in the selection list |
185 |
// selectionFilter = new AbstractFilterImpl( FeatureUtil.FILTER_FACTORY ) { |
// selectionFilter = new AbstractFilterImpl( FeatureUtil.FILTER_FACTORY ) { |
186 |
// public boolean evaluate(Object feature) { |
// public boolean evaluate(Object feature) { |
187 |
// if ( feature instanceof Feature ) |
// if ( feature instanceof SimpleFeature ) |
188 |
// return evaluate((Filter)feature); |
// return evaluate((Filter)feature); |
189 |
// return false; |
// return false; |
190 |
// } |
// } |
191 |
// public boolean evaluate(Feature feature) { |
// public boolean evaluate(SimpleFeature feature) { |
192 |
// return selectionFeatures.contains(feature); |
// return selectionFeatures.contains(feature); |
193 |
// } |
// } |
194 |
// }; |
// }; |