/[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 492 by alfonx, Fri Oct 23 13:49:49 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  public abstract class StyledLayerSelectionModelSynchronizer<E> implements PropertyChangeListener{  /**
39             * The {@link StyledLayerSelectionModelSynchronizer} is the super class for all
40            /** Flag to avoid event circles between {@link DpLayerVectorSelectionModel}   *
41             *  and {@link ListSelectionModel} of the feature table. */   * @author mojays
42            protected boolean selectionChangeCausedByMe = false;   *
43            /** Holds the selection model of the layer to keep synchronized   * @param <E>
44             *  with the feature table. */   *            The concrete implementation of {@link StyledLayerSelectionModel}
45            protected final StyledLayerSelectionModel<E> layerSelModel;   *            that this Synchronizer works on.
46     */
47            /**  public abstract class StyledLayerSelectionModelSynchronizer<E extends StyledLayerSelectionModel<?>>
48                   * Creates a new synchronizer                  implements PropertyChangeListener {
49                   *          protected final Logger LOGGER = Logger.getLogger(this.getClass());
50                   * @param layerSelModel  
51                   *            layer selection model to keep synchronized with          /**
52                   */           * Flag to avoid event circles between {@link DpLayerVectorSelectionModel}
53                  protected StyledLayerSelectionModelSynchronizer(           * and {@link ListSelectionModel} of the feature table.
54                                  StyledLayerSelectionModel<E> layerSelModel) {           */
55            protected boolean selectionChangeCausedByMe = false;
56                          this.layerSelModel = layerSelModel;          /**
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 volatile 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                    if (enabled == false && this.enabled==true) {
87                            LOGGER.debug("disabling the synchronizer map -> ");
88                    } else if (enabled == true && this.enabled==false)  {
89                            LOGGER.debug("enable the synchronizer map -> ");
90                  }                  }
91                              this.enabled = enabled;
92            }
93    
94            public boolean isEnabled() {
95                    return enabled;
96            }
97    
98  }  }

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26