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

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

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

trunk/src/skrueger/geotools/selection/StyledLayerSelectionModelSynchronizer.java revision 96 by alfonx, Fri May 8 11:23:16 2009 UTC branches/1.0-gt2-2.6/src/skrueger/geotools/selection/StyledLayerSelectionModelSynchronizer.java revision 315 by mojays, Wed Aug 26 11:03:27 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  package skrueger.geotools.selection;  package skrueger.geotools.selection;
31    
32  import java.beans.PropertyChangeListener;  import java.beans.PropertyChangeListener;
33    
34  import javax.swing.ListSelectionModel;  import javax.swing.ListSelectionModel;
35    
36  import skrueger.geotools.selection.StyledLayerSelectionModel;  import org.apache.log4j.Logger;
37    
38    /**
39     * The {@link StyledLayerSelectionModelSynchronizer} is the super class for all
40     *
41     * @author mojays
42     *
43     * @param <E>
44     *            The concrete implementation of {@link StyledLayerSelectionModel}
45     *            that this Synchronizer works on.
46     */
47    public abstract class StyledLayerSelectionModelSynchronizer<E extends StyledLayerSelectionModel<?>>
48                    implements PropertyChangeListener {
49            protected final Logger LOGGER = Logger.getLogger(this.getClass());
50    
51            /**
52             * Flag to avoid event circles between {@link DpLayerVectorSelectionModel}
53             * and {@link ListSelectionModel} of the feature table.
54             */
55            protected boolean selectionChangeCausedByMe = false;
56            /**
57             * Holds the selection model of the layer to keep synchronized with the
58             * feature table.
59             */
60            protected final E layerSelModel;
61    
62            /**
63             * Allows to enable/disable the Synchronizer's functionality it.
64             */
65            private boolean enabled = true;
66    
67            /**
68             * Creates a new synchronizer
69             *
70             * @param layerSelModel
71             *            layer selection model to keep synchronized with
72             */
73            protected StyledLayerSelectionModelSynchronizer(E layerSelModel) {
74    
75                    this.layerSelModel = layerSelModel;
76            }
77    
78            /**
79             * Allows to disable this Synchronizer. Used to disable the selection
80             * functionality if no corresponding dialog is open.
81             *
82             * @param enabled
83             *            <code>true</code> or <code>false</code>
84             */
85            public void setEnabled(boolean enabled) {
86                    this.enabled = enabled;
87            }
88    
89            public boolean isEnabled() {
90                    return enabled;
91            }
92    
 public abstract class StyledLayerSelectionModelSynchronizer<E> implements PropertyChangeListener{  
           
           /** Flag to avoid event circles between {@link DpLayerVectorSelectionModel}  
            *  and {@link ListSelectionModel} of the feature table. */  
           protected boolean selectionChangeCausedByMe = false;  
           /** Holds the selection model of the layer to keep synchronized  
            *  with the feature table. */  
           protected final StyledLayerSelectionModel<E> layerSelModel;  
   
           /**  
                  * Creates a new synchronizer  
                  *  
                  * @param layerSelModel  
                  *            layer selection model to keep synchronized with  
                  */  
                 protected StyledLayerSelectionModelSynchronizer(  
                                 StyledLayerSelectionModel<E> layerSelModel) {  
   
                         this.layerSelModel = layerSelModel;  
                 }  
             
93  }  }

Legend:
Removed from v.96  
changed lines
  Added in v.315

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26