Changeset 32634 in osm


Ignore:
Timestamp:
2016-07-11T19:31:32+02:00 (9 years ago)
Author:
simon04
Message:

JOSM/wikipedia: propose specified wikidata keys, only wikidata keys - #josm12039

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataItemSearchDialog.java

    r32627 r32634  
    99import java.awt.event.ActionEvent;
    1010import java.awt.event.ActionListener;
     11import java.util.Collection;
    1112import java.util.Collections;
     13import java.util.HashSet;
    1214import java.util.List;
    1315import java.util.Locale;
     16import java.util.TreeSet;
    1417import java.util.concurrent.Executors;
    1518import java.util.concurrent.TimeUnit;
     
    2225import org.openstreetmap.josm.Main;
    2326import org.openstreetmap.josm.actions.JosmAction;
     27import org.openstreetmap.josm.data.osm.DataSet;
    2428import org.openstreetmap.josm.data.osm.Tag;
    2529import org.openstreetmap.josm.gui.ExtendedDialog;
     
    2933import org.openstreetmap.josm.gui.widgets.SearchTextResultListPanel;
    3034import org.openstreetmap.josm.tools.GBC;
     35import org.openstreetmap.josm.tools.Predicate;
    3136import org.openstreetmap.josm.tools.Utils;
    3237
     
    4752        });
    4853        this.targetKey = new AutoCompletingComboBox();
     54        this.targetKey.setEditable(true);
    4955        this.targetKey.setSelectedItem(new AutoCompletionListItem("wikidata"));
    5056
     
    7783
    7884    private void initTargetKeys() {
    79         final List<AutoCompletionListItem> keys = Main.getLayerManager().getEditLayer().data.getAutoCompletionManager().getKeys();
     85        final DataSet editDataSet = Main.getLayerManager().getEditDataSet();
     86        if (editDataSet == null) {
     87            return;
     88        }
     89        final Collection<AutoCompletionListItem> keys = new TreeSet<>();
     90        // from http://wiki.openstreetmap.org/wiki/Proposed_features/Wikidata#Tagging
     91        keys.add(new AutoCompletionListItem("wikidata"));
     92        keys.add(new AutoCompletionListItem("operator:wikidata"));
     93        keys.add(new AutoCompletionListItem("brand:wikidata"));
     94        keys.add(new AutoCompletionListItem("architect:wikidata"));
     95        keys.add(new AutoCompletionListItem("artist:wikidata"));
     96        keys.add(new AutoCompletionListItem("subject:wikidata"));
     97        keys.add(new AutoCompletionListItem("name:etymology:wikidata"));
     98        keys.addAll(Utils.filter(editDataSet.getAutoCompletionManager().getKeys(), new Predicate<AutoCompletionListItem>() {
     99            @Override
     100            public boolean evaluate(AutoCompletionListItem object) {
     101                return object.getValue().contains("wikidata");
     102            }
     103        }));
    80104        targetKey.setPossibleACItems(keys);
    81         targetKey.setEditable(true);
    82105    }
    83106
Note: See TracChangeset for help on using the changeset viewer.