/[schmitzm]/branches/2.0-RC2/src/skrueger/geotools/selection/StyledLayerSelectionModel.java
ViewVC logotype

Diff of /branches/2.0-RC2/src/skrueger/geotools/selection/StyledLayerSelectionModel.java

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

trunk/src/skrueger/geotools/selection/StyledLayerSelectionModel.java revision 105 by alfonx, Fri May 8 15:02:28 2009 UTC branches/2.0-RC1/src/skrueger/geotools/selection/StyledLayerSelectionModel.java revision 604 by alfonx, Wed Dec 9 14:15:53 2009 UTC
# Line 1  Line 1 
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    
# Line 18  import java.beans.PropertyChangeEvent; Line 47  import java.beans.PropertyChangeEvent;
47  import java.beans.PropertyChangeListener;  import java.beans.PropertyChangeListener;
48  import java.util.Collection;  import java.util.Collection;
49  import java.util.HashSet;  import java.util.HashSet;
 import java.util.Set;  
50  import java.util.Vector;  import java.util.Vector;
51    
52  import javax.swing.event.EventListenerList;  import javax.swing.event.EventListenerList;
53    
54  import org.apache.log4j.Logger;  import org.apache.log4j.Logger;
55  import org.geotools.feature.Feature;  import org.opengis.feature.simple.SimpleFeature;
56    
57  import schmitzm.swing.event.PropertyChangeEmitter;  import schmitzm.swing.event.PropertyChangeEmitter;
58  import skrueger.geotools.StyledMapInterface;  import skrueger.geotools.StyledLayerInterface;
59    
60  /**  /**
61   * This manager holds a set of objects which are <i>selected</i> for a {@link StyledMapInterface}.   * This manager holds a set of objects which are <i>selected</i> for a {@link StyledLayerInterface}.
62   * Several components can connect to this model to keep their selection synchronized.   * Several components can connect to this model to keep their selection synchronized.
63   * @see #addSelectionListener(java.beans.PropertyChangeListener)   * @see #addSelectionListener(java.beans.PropertyChangeListener)
64   * @see StyledLayerSelectionModelSynchronizer   * @see StyledLayerSelectionModelSynchronizer
# Line 47  public abstract class StyledLayerSelecti Line 75  public abstract class StyledLayerSelecti
75    /** Holds the connected listeners. */    /** Holds the connected listeners. */
76    protected EventListenerList listenerList = new EventListenerList();    protected EventListenerList listenerList = new EventListenerList();
77    
78    /** Holds the current selection (e.g. {@link Feature Features}). */    /** Holds the current selection (e.g. {@link SimpleFeature Features}). */
79    protected final HashSet<E> selectionObjects;    protected final HashSet<E> selectionObjects;
80    
81    /** Holds the styled map whose selection is managed by this class. */    /** Holds the styled map whose selection is managed by this class. */
82    protected final StyledMapInterface<?> styledMap;    private final StyledLayerInterface<?> styledLayer;
83    
84    
85    /** Indicates whether a selection change is a part of multiple    /** Indicates whether a selection change is a part of multiple
# Line 62  public abstract class StyledLayerSelecti Line 90  public abstract class StyledLayerSelecti
90    
91    /**    /**
92     * Creates a new selection model.     * Creates a new selection model.
93     * @param styledMap styled map the selection is controlled of     * @param styledLayer styled layer the selection is controlled of
94     */     */
95    public StyledLayerSelectionModel(StyledMapInterface<?> styledMap) {    public StyledLayerSelectionModel(StyledLayerInterface<?> styledLayer) {
96          this.selectionObjects = new HashSet<E>();          this.selectionObjects = new HashSet<E>();
97          this.styledMap         = styledMap;          this.styledLayer         = styledLayer;
98    }    }
99    
100    /**    /**
# Line 109  public abstract class StyledLayerSelecti Line 137  public abstract class StyledLayerSelecti
137    
138    
139    /**    /**
140     * Returns whether the current selection changes are a part of multiple     * Returns whether the current selection change is a part of multiple
141     * changes. If {@code true} {@link #refreshSelection()} has no effect     * changes. If {@code true} {@link #refreshSelection()} has no effect
142     * and no {@link StyledLayerSelectionEvent} is fired until     * and no {@link StyledLayerSelectionEvent} is fired until
143     * {@link #setValueIsAdjusting(boolean) setValueIsAdjusting(false)}     * {@link #setValueIsAdjusting(boolean) setValueIsAdjusting(false)}
# Line 120  public abstract class StyledLayerSelecti Line 148  public abstract class StyledLayerSelecti
148    }    }
149    
150    /**    /**
151     * Sets whether the following selection changes are a part of multiple     * Sets whether the following selection changes are part of multiple
152     * changes. If {@code true} {@link #refreshSelection()} has no effect     * changes. If {@code true} {@link #refreshSelection()} has no effect
153     * and no {@link StyledLayerSelectionEvent} event is fired.     * and no {@link StyledLayerSelectionEvent} event is fired.
154     * If the value is set from {@code true} to {@code false} an automatic     * If the value is set from {@code true} to {@code false} an automatic
# Line 142  public abstract class StyledLayerSelecti Line 170  public abstract class StyledLayerSelecti
170     * @return {@code true} if selection has changed by calling this method     * @return {@code true} if selection has changed by calling this method
171     */     */
172    public boolean addSelection(E selectedObject) {    public boolean addSelection(E selectedObject) {
173            
174      if ( selectionObjects.add(selectedObject) ) {      if ( selectionObjects.add(selectedObject) ) {
175        refreshSelection();        refreshSelection();
176        return true;        return true;
# Line 208  public abstract class StyledLayerSelecti Line 237  public abstract class StyledLayerSelecti
237     * Removes a listener from the listener list. Only alias for {@link #removeListener(PropertyChangeListener)}.     * Removes a listener from the listener list. Only alias for {@link #removeListener(PropertyChangeListener)}.
238     * @param listener a listener     * @param listener a listener
239     */     */
240    public void removeSelectionListener(StyledLayerSelectionModelSynchronizer<StyledLayerSelectionModel<E>> listener) {    public boolean removeSelectionListener(StyledLayerSelectionModelSynchronizer<StyledLayerSelectionModel<E>> listener) {
241      this.removeListener(listener);      return this.removeListener(listener);
242    }    }
243    
244    public StyledLayerInterface<?> getStyledLayer() {
245            return styledLayer;
246    }
247    
248    
249  }  }

Legend:
Removed from v.105  
changed lines
  Added in v.604

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26