001    // License: GPL. For details, see LICENSE file.
002    package org.openstreetmap.josm.gui.widgets;
003    
004    import 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     */
012    public 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    }