001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.widgets;
003
004import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
005
006/**
007 * A Combo box containing OSM primitive types (Node, Way, Relation).
008 * @author Matthias Julius
009 * @see OsmPrimitiveType#dataValues
010 * @since 2923
011 */
012public class OsmPrimitiveTypesComboBox extends JosmComboBox {
013
014    /**
015     * Constructs a new {@code OsmPrimitiveTypesComboBox}.
016     */
017    public OsmPrimitiveTypesComboBox() {
018        super(OsmPrimitiveType.dataValues().toArray());
019    }
020
021    /**
022     * Replies the currently selected {@code OsmPrimitiveType}.
023     * @return the currently selected {@code OsmPrimitiveType}.
024     */
025    public OsmPrimitiveType getType() {
026        Object selectedItem = this.getSelectedItem();
027        return selectedItem instanceof OsmPrimitiveType ? (OsmPrimitiveType) selectedItem : null;
028    }
029}