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

Annotation of /branches/1.0-gt2-2.6/src/skrueger/geotools/AttributeTableJDialog.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 111 - (hide annotations)
Tue May 12 23:33:14 2009 UTC (15 years, 9 months ago) by alfonx
Original Path: trunk/src/skrueger/geotools/AttributeTableJDialog.java
File MIME type: text/plain
File size: 6564 byte(s)
* Fixed some bugs with the SelectionListeners and the JMapPane. To make this work,  StyledFeatureLayerSelectionModel now extends StyledLayerSelectionModel<String>. So the selection is remembered as a Set of Feature-IDs. This change was needed, because Feature.java doesn't overwrite the equals method, and therefore the HashSet didn't function as expected.
* Added new Tools and BUttons to MapPaneToolBar.java to select features
* Changed a lot in MapPaneToolBar.java. It now allows to position Spaces, Actions and Tools via the ID field. (the new feature is to mix them)
* Fixed a bug in AV's ClickInfoPanel that would suddenly pop up an AtlasViewer if started from Geopublisher under special circumstances.
* Moving layers in the legend is using MapContext's move method instead of remove and insert.
* LayerPanel's remember* Maps now all have the MapLayer's ID as a key. 

This commit includes latest schmitzm.jar and av.jar. The av.jar is also commited to the ISDSS, but the ISDSS will still have the old schmitzm.jar. Latest schmitzm.jar in ISDSS should be updated ASAP. I just don't know where to put it.
1 alfonx 111 //package skrueger.geotools;
2     //
3     //import java.awt.Component;
4     //import java.awt.Window;
5     //import java.awt.event.WindowAdapter;
6     //import java.awt.event.WindowEvent;
7     //import java.beans.PropertyChangeListener;
8     //import java.util.HashMap;
9     //
10     //import javax.swing.JComponent;
11     //import javax.swing.JDialog;
12     //
13     //import org.geotools.map.MapLayer;
14     //import org.opengis.filter.Filter;
15     //
16     //import schmitzm.geotools.feature.AttributeTypeFilter;
17     //import schmitzm.geotools.gui.FeatureTablePane;
18     //import schmitzm.geotools.gui.JMapPane;
19     //import schmitzm.geotools.gui.SelectableFeatureTablePane;
20     //import schmitzm.swing.SwingUtil;
21     //import skrueger.geotools.selection.StyledFeatureLayerSelectionModel;
22     //import skrueger.geotools.selection.StyledLayerSelectionModel;
23     //import skrueger.geotools.selection.StyledLayerSelectionModelSynchronizer;
24     //import skrueger.geotools.selection.TableSelectionSynchronizer;
25     //
26     ///**
27     // * A dialog to show the attribute table of a vector layer. This class implements
28     // * a {@link PropertyChangeListener} which is connected to the {@link StyledMapInterface
29     // * StyledMapInterface's} {@link StyledLayerSelectionModel} to keep the table selection
30     // * synchronized to other component's selection (e.g. Map or chart).
31     // */
32     //public class AttributeTableJDialog extends JDialog {
33     //
34     // /** A cache that manages maximum one instance of this class per layer **/
35     // private static HashMap<String, AttributeTableJDialog> dialogCache = new HashMap<String, AttributeTableJDialog>();
36     //
37     // private final StyledFeatureCollectionTableModel model;
38     //
39     // private final JMapPane mapPane;
40     //
41     // /** Holds the table and preview of the dialog. */
42     // protected FeatureTablePane featureTablePane;
43     //
44     // protected final MapLayer mapLayer;
45     //
46     // private final StyledMapInterface styledObj;
47     //
48     // private AttributeTableJDialog(Window owner, MapLayer mapLayer,
49     // final StyledMapInterface styledObj, LayerPanel layerPanel) {
50     // super(owner);
51     // this.styledObj = styledObj;
52     //// setTitle(RES("AttributeTable.dialog.title", styledObj
53     //// .getTitle()));
54     //
55     // this.mapLayer = mapLayer;
56     //
57     // this.mapPane = layerPanel.geoMapPane != null ? layerPanel.geoMapPane
58     // .getMapPane() : null;
59     //
60     // Filter filter = mapLayer.getQuery() != null ? mapLayer.getQuery()
61     // .getFilter() : Filter.INCLUDE;
62     //
63     // // Falsch:
64     // // FeatureOperationTreeFilter filter = new
65     // // FeatureOperationTreeFilter(dpLayer.getFilterRule());
66     //
67     // if (styledObj instanceof StyledFeatureCollectionInterface) {
68     // model = new StyledFeatureCollectionTableModel(
69     // (StyledFeatureCollectionInterface) styledObj, filter);
70     // } else if (styledObj instanceof StyledFeatureSourceInterface) {
71     // model = new StyledFeatureCollectionTableModel(
72     // (StyledFeatureSourceInterface) styledObj, filter);
73     // } else {
74     // throw new IllegalArgumentException("StyledObj must be of StyledFeatureSourceInterface or StyledFeatureCollectionInterface");
75     // }
76     //
77     // getModel().setAttributeFilter(AttributeTypeFilter.NO_GEOMETRY);
78     //
79     // initialize();
80     //
81     // StyledLayerSelectionModel<?> anySelectionModel = layerPanel
82     // .getRememberSelection(mapLayer);
83     //
84     // if ((anySelectionModel instanceof StyledFeatureLayerSelectionModel)) {
85     // StyledFeatureLayerSelectionModel selectionModel = (StyledFeatureLayerSelectionModel) anySelectionModel;
86     // // create a synchronizer to keep the feature table selection
87     // // synchronized with the other components connected to the
88     // // DpLayerSelectionModel
89     // TableSelectionSynchronizer synchronizer = new TableSelectionSynchronizer(
90     // selectionModel, featureTablePane.getTable());
91     // selectionModel
92     // .addSelectionListener((StyledLayerSelectionModelSynchronizer) synchronizer);
93     // featureTablePane.getTable().getSelectionModel()
94     // .addListSelectionListener(synchronizer);
95     // }
96     //
97     // }
98     //
99     // private void initialize() {
100     // featureTablePane = new SelectableFeatureTablePane(getModel(), true,
101     // mapPane);
102     //
103     // setContentPane(featureTablePane);
104     //
105     // SwingUtil.centerFrameOnScreenRandom(this);
106     //
107     // pack();
108     // }
109     //
110     // public StyledFeatureCollectionTableModel getModel() {
111     // return model;
112     // }
113     //
114     // /**
115     // * Checks if there exists an open instance of the AtlasAttributeTable and
116     // * disposes it.
117     // *
118     // * @param layerId
119     // * A {@link String} id that equals mapLayer.getTitle() and
120     // * dpLayer.getId()
121     // * @return <code>true</code> if a window has been disposed.
122     // */
123     // public static boolean disposeInstanceFor(String layerId) {
124     // AttributeTableJDialog atlasAttributeTableJDialog = dialogCache
125     // .get(layerId);
126     // if (atlasAttributeTableJDialog != null) {
127     // atlasAttributeTableJDialog.dispose();
128     // dialogCache.remove(layerId);
129     // return true;
130     // }
131     // return false;
132     // }
133     //
134     // /**
135     // * This class manages itself, that there is always only one instance for any {@link StyledMapInterface}
136     // *
137     // * @param dpLayer
138     // * The source for the attribute table
139     // * @param owner
140     // * A {@link JComponent} that is the parent GUI Dialogue
141     // * @param layerPanel
142     // * May be <code>null</code>
143     // * @param mapLayer
144     // * If <code>null</code>, then no "ZoomToLayer" button will
145     // * appear.
146     // */
147     // public static AttributeTableJDialog getInstanceFor(Component comp,
148     // MapLayer mapLayer, final StyledMapInterface<?> styledObj,
149     // LayerPanel layerPanel) {
150     //
151     // AttributeTableJDialog atlasAttributeTableJDialog = dialogCache
152     // .get(styledObj.getId());
153     //
154     // if (atlasAttributeTableJDialog == null) {
155     // Window window = SwingUtil.getParentWindow(comp);
156     // atlasAttributeTableJDialog = new AttributeTableJDialog(window,
157     // mapLayer, styledObj, layerPanel);
158     //
159     // atlasAttributeTableJDialog.addWindowListener(new WindowAdapter() {
160     // @Override
161     // public void windowClosing(WindowEvent e) {
162     // super.windowClosing(e);
163     // dialogCache.remove(styledObj.getId());
164     // }
165     // });
166     //
167     // dialogCache.put(styledObj.getId(), atlasAttributeTableJDialog);
168     // }
169     // // Changing the filter is propagated via an Event in AtlaslayerPaneGroup
170     // // else {
171     // // Filter filter = (mapLayer != null && mapLayer.getQuery() != null) ?
172     // // mapLayer
173     // // .getQuery().getFilter()
174     // // : Filter.INCLUDE;
175     // // // Check if the filter has changed...
176     // // if (!filter.equals(atlasAttributeTableJDialog.getModel()
177     // // .getFilter())) {
178     // //
179     // // atlasAttributeTableJDialog.getModel().setFilter(filter);
180     // // }
181     // // }
182     //
183     // return atlasAttributeTableJDialog;
184     //
185     // }
186     //
187     //}

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