// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.turnlanes.gui;
import java.awt.Graphics2D;
import java.awt.geom.Point2D;
abstract class InteractiveElement {
interface Type {
Type INCOMING_CONNECTOR = new Type() {};
Type OUTGOING_CONNECTOR = new Type() {};
Type TURN_CONNECTION = new Type() {};
Type LANE_ADDER = new Type() {};
Type EXTENDER = new Type() {};
Type VIA_CONNECTOR = new Type() {};
}
public void paintBackground(Graphics2D g2d, State state) {}
abstract void paint(Graphics2D g2d, State state);
abstract boolean contains(Point2D p, State state);
abstract Type getType();
State activate(State old) {
return old;
}
boolean beginDrag(double x, double y) {
return false;
}
State drag(double x, double y, InteractiveElement target, State old) {
return old;
}
State drop(double x, double y, InteractiveElement target, State old) {
return old;
}
abstract int getZIndex();
State click(State old) {
return old;
}
}