/[schmitzm]/branches/1.0-gt2-2.6/src/skrueger/geotools/selection/StyledLayerSelectionModelSynchronizer.java
ViewVC logotype

Contents of /branches/1.0-gt2-2.6/src/skrueger/geotools/selection/StyledLayerSelectionModelSynchronizer.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 492 - (show annotations)
Fri Oct 23 13:49:49 2009 UTC (15 years, 4 months ago) by alfonx
File MIME type: text/plain
File size: 3284 byte(s)
EIn x/y dreher in der BBOX wenn man in die karte clickte

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;
31
32 import java.beans.PropertyChangeListener;
33
34 import javax.swing.ListSelectionModel;
35
36 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 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 }

Properties

Name Value
svn:eol-style native
svn:keywords Id
svn:mime-type text/plain

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26