Ignore:
Timestamp:
10.09.2010 07:45:16 (21 months ago)
Author:
jttt
Message:
  • add New relation button to Preset dialog
  • add required attribute to tagging preset (allows to specify what tags has to filled for osm primitive to qualify as having preset)
  • show list of preset also in relation dialog
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java

    r3210 r3518  
    66import java.awt.GridBagLayout; 
    77import java.awt.Insets; 
     8import java.util.HashMap; 
     9import java.util.Map; 
     10import java.util.Map.Entry; 
    811import java.util.logging.Logger; 
    912 
     
    1215import javax.swing.JPanel; 
    1316import javax.swing.JScrollPane; 
     17import javax.swing.event.TableModelEvent; 
     18import javax.swing.event.TableModelListener; 
    1419 
     20import org.openstreetmap.josm.gui.dialogs.properties.PresetListPanel; 
     21import org.openstreetmap.josm.gui.dialogs.properties.PresetListPanel.PresetHandler; 
    1522import org.openstreetmap.josm.gui.layer.OsmDataLayer; 
    1623import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList; 
     
    3340    private TagTable tagTable; 
    3441 
     42    private PresetListPanel presetListPanel; 
     43    private final PresetHandler presetHandler; 
     44 
    3545    private AutoCompletionManager autocomplete; 
    3646    private AutoCompletionList acList; 
     
    4656        pnl.setLayout(new BorderLayout()); 
    4757        pnl.add(new JScrollPane(tagTable), BorderLayout.CENTER); 
     58        if (presetHandler != null) { 
     59            presetListPanel = new PresetListPanel(); 
     60            pnl.add(presetListPanel, BorderLayout.NORTH); 
     61        } 
    4862        return pnl; 
    4963    } 
     
    98112        gc.anchor = GridBagConstraints.CENTER; 
    99113        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        } 
    100123    } 
    101124 
     
    104127     * internally and can be retrieved with {@see #getModel()}. 
    105128     */ 
    106     public TagEditorPanel() { 
    107         this(null); 
     129    public TagEditorPanel(PresetHandler presetHandler) { 
     130        this(null, presetHandler); 
    108131    } 
    109132 
     
    111134     * Creates a new tag editor panel with a supplied model. If 
    112135     * {@code model} is null, a new model is created. 
    113      *  
     136     * 
    114137     * @param model the tag editor model 
    115138     */ 
    116     public TagEditorPanel(TagEditorModel model) { 
     139    public TagEditorPanel(TagEditorModel model, PresetHandler presetHandler) { 
    117140        this.model = model; 
     141        this.presetHandler = presetHandler; 
    118142        if (this.model == null) { 
    119143            this.model = new TagEditorModel(); 
     
    135159     * tag editor panel. {@code layer} is the data layer from whose data set 
    136160     * tag values are proposed as auto completion items. 
    137      *  
     161     * 
    138162     * @param layer the data layer. Must not be null. 
    139163     * @throws IllegalArgumentException thrown if {@code layer} is null 
     
    158182        super.setEnabled(enabled); 
    159183    } 
     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    } 
    160195} 
Note: See TracChangeset for help on using the changeset viewer.