// License: GPL. For details, see LICENSE file.
package org.openstreetmap.beboj.client.actions.mapmode.edit;
import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseMoveEvent;
import com.google.gwt.event.dom.client.MouseUpEvent;
import org.openstreetmap.josm.data.osm.OsmPrimitive;
import org.openstreetmap.josm.data.osm.Way;
public class SelectedWay extends ControllerState {
Way initWay;
public SelectedWay(Way initWay) {
super();
this.initWay = initWay;
}
@Override
public ControllerState onMouseDown(MouseDownEvent evt, OsmPrimitive osm) {
OsmPrimitive focus = getTopLevelFocusEntity(osm);
if (osm instanceof Way && evt.isShiftKeyDown() && initWay.equals(focus)) {
// insert node within way (shift-click)
// FIXME
} else if (evt.isControlKeyDown() && osm != null && !initWay.equals(osm)) {
// multiple selection
// FIXME
}
ControllerState cs = sharedOnMouseDown(evt, osm);
return cs != null ? cs : this;
}
@Override
public ControllerState onMouseMove(MouseMoveEvent evt, OsmPrimitive osm) {
return this;
}
@Override
public ControllerState onMouseUp(MouseUpEvent evt, OsmPrimitive osm) {
if (evt.isShiftKeyDown()) {
//FIXME draw new way
}
ControllerState cs = sharedOnMouseUp(evt, osm);
return cs != null ? cs : this;
}
@Override
public void enterState(ControllerState oldState) {
// TODO Auto-generated method stub
}
@Override
public void exitState(ControllerState newState) {
// TODO Auto-generated method stub
}
@Override
public String toString() {
return "SelectedWay";
}
}