Changeset 3518 in josm for trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java
- Timestamp:
- 10.09.2010 07:45:16 (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java
r3210 r3518 6 6 import java.awt.GridBagLayout; 7 7 import java.awt.Insets; 8 import java.util.HashMap; 9 import java.util.Map; 10 import java.util.Map.Entry; 8 11 import java.util.logging.Logger; 9 12 … … 12 15 import javax.swing.JPanel; 13 16 import javax.swing.JScrollPane; 17 import javax.swing.event.TableModelEvent; 18 import javax.swing.event.TableModelListener; 14 19 20 import org.openstreetmap.josm.gui.dialogs.properties.PresetListPanel; 21 import org.openstreetmap.josm.gui.dialogs.properties.PresetListPanel.PresetHandler; 15 22 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 16 23 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList; … … 33 40 private TagTable tagTable; 34 41 42 private PresetListPanel presetListPanel; 43 private final PresetHandler presetHandler; 44 35 45 private AutoCompletionManager autocomplete; 36 46 private AutoCompletionList acList; … … 46 56 pnl.setLayout(new BorderLayout()); 47 57 pnl.add(new JScrollPane(tagTable), BorderLayout.CENTER); 58 if (presetHandler != null) { 59 presetListPanel = new PresetListPanel(); 60 pnl.add(presetListPanel, BorderLayout.NORTH); 61 } 48 62 return pnl; 49 63 } … … 98 112 gc.anchor = GridBagConstraints.CENTER; 99 113 add(tablePanel,gc); 114 115 if (presetHandler != null) { 116 model.addTableModelListener(new TableModelListener() { 117 @Override 118 public void tableChanged(TableModelEvent e) { 119 updatePresets(); 120 } 121 }); 122 } 100 123 } 101 124 … … 104 127 * internally and can be retrieved with {@see #getModel()}. 105 128 */ 106 public TagEditorPanel( ) {107 this(null );129 public TagEditorPanel(PresetHandler presetHandler) { 130 this(null, presetHandler); 108 131 } 109 132 … … 111 134 * Creates a new tag editor panel with a supplied model. If 112 135 * {@code model} is null, a new model is created. 113 * 136 * 114 137 * @param model the tag editor model 115 138 */ 116 public TagEditorPanel(TagEditorModel model ) {139 public TagEditorPanel(TagEditorModel model, PresetHandler presetHandler) { 117 140 this.model = model; 141 this.presetHandler = presetHandler; 118 142 if (this.model == null) { 119 143 this.model = new TagEditorModel(); … … 135 159 * tag editor panel. {@code layer} is the data layer from whose data set 136 160 * tag values are proposed as auto completion items. 137 * 161 * 138 162 * @param layer the data layer. Must not be null. 139 163 * @throws IllegalArgumentException thrown if {@code layer} is null … … 158 182 super.setEnabled(enabled); 159 183 } 184 185 private void updatePresets() { 186 Map<String, Map<String, Integer>> valuesCount = new HashMap<String, Map<String,Integer>>(); 187 for (Entry<String, String> entry: model.getTags().entrySet()) { 188 Map<String, Integer> values = new HashMap<String, Integer>(); 189 values.put(entry.getValue(), 1); 190 valuesCount.put(entry.getKey(), values); 191 } 192 presetListPanel.updatePresets(0, 0, 1, 0, valuesCount, presetHandler); 193 validate(); 194 } 160 195 }
Note: See TracChangeset
for help on using the changeset viewer.
