Search in sources :

Example 6 with MapEntity

use of aimax.osm.data.entities.MapEntity in project aima-java by aimacode.

the class FindPanel method valueChanged.

/** Creates markers for selected result items. */
@Override
public void valueChanged(ListSelectionEvent event) {
    clearMarkers(false);
    for (MapEntity entity : getSelectedEntities()) {
        Position pos = getPosition(entity);
        if (pos != null) {
            currMarkers.add(view.getMap().addMarker(pos.getLat(), pos.getLon()));
            view.adjustToCenter(pos.getLat(), pos.getLon());
        }
    }
    updateEnabledState();
}
Also used : Position(aimax.osm.data.Position) MapEntity(aimax.osm.data.entities.MapEntity)

Example 7 with MapEntity

use of aimax.osm.data.entities.MapEntity in project aima-java by aimacode.

the class MapViewPane method showMapEntityInfoDialog.

/**
	 * Finds the visible entity next to the specified view coordinates and shows
	 * informations about it.
	 *
	 * @param debug
	 *            Enables a more detailed view.
	 */
public void showMapEntityInfoDialog(MapEntity entity, boolean debug) {
    List<MapEntity> entities = new ArrayList<MapEntity>();
    if (entity.getName() != null || entity.getAttributes().length > 0 || debug)
        entities.add(entity);
    if (entity instanceof MapNode) {
        MapNode mNode = (MapNode) entity;
        for (WayRef ref : mNode.getWayRefs()) {
            MapEntity me = ref.getWay();
            if (me.getName() != null || me.getAttributes().length > 0 || debug)
                entities.add(me);
        }
    }
    boolean done = false;
    for (int i = 0; i < entities.size() && !done; i++) {
        MapEntity me = entities.get(i);
        Object[] content = new Object[] { "", "", "" };
        String text = (me.getName() != null) ? me.getName() : "";
        if (debug)
            text += " (" + ((me instanceof MapNode) ? "Node " : "Way ") + me.getId() + ")";
        content[0] = text;
        if (me instanceof MapNode) {
            PositionPanel pos = new PositionPanel();
            pos.setPosition(((MapNode) me).getLat(), ((MapNode) me).getLon());
            pos.setEnabled(false);
            content[1] = pos;
        }
        if (me.getAttributes().length > 0) {
            EntityAttribute[] atts = me.getAttributes();
            String[][] attTexts = new String[atts.length][2];
            for (int j = 0; j < atts.length; j++) {
                attTexts[j][0] = atts[j].getKey();
                attTexts[j][1] = atts[j].getValue();
            }
            JTable table = new JTable(attTexts, new String[] { "Name", "Value" });
            JScrollPane spane = new JScrollPane(table);
            spane.setPreferredSize(new Dimension(300, 150));
            content[2] = spane;
        }
        Object[] options;
        if (i < entities.size() - 1)
            options = new String[] { "OK", "Next" };
        else
            options = new String[] { "OK" };
        if (JOptionPane.showOptionDialog(this, content, "Map Entity Info", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]) != 1)
            done = true;
    }
}
Also used : WayRef(aimax.osm.data.entities.WayRef) JScrollPane(javax.swing.JScrollPane) EntityAttribute(aimax.osm.data.entities.EntityAttribute) ArrayList(java.util.ArrayList) MapNode(aimax.osm.data.entities.MapNode) Dimension(java.awt.Dimension) JTable(javax.swing.JTable) MapEntity(aimax.osm.data.entities.MapEntity)

Aggregations

MapEntity (aimax.osm.data.entities.MapEntity)7 MapNode (aimax.osm.data.entities.MapNode)5 Position (aimax.osm.data.Position)3 MapWay (aimax.osm.data.entities.MapWay)3 BoundingBox (aimax.osm.data.BoundingBox)2 EntityAttribute (aimax.osm.data.entities.EntityAttribute)2 WayRef (aimax.osm.data.entities.WayRef)2 ArrayList (java.util.ArrayList)2 Track (aimax.osm.data.entities.Track)1 DefaultMap (aimax.osm.data.impl.DefaultMap)1 Dimension (java.awt.Dimension)1 StringTokenizer (java.util.StringTokenizer)1 Alert (javafx.scene.control.Alert)1 ButtonType (javafx.scene.control.ButtonType)1 JScrollPane (javax.swing.JScrollPane)1 JTable (javax.swing.JTable)1