47 lines
1.8 KiB
Java
47 lines
1.8 KiB
Java
package de.ph87.electro.circuit;
|
|
|
|
import de.ph87.electro.circuit.part.Orientation;
|
|
import de.ph87.electro.circuit.part.parts.*;
|
|
import de.ph87.electro.common.AbstractDropTarget;
|
|
|
|
import java.awt.*;
|
|
|
|
import static de.ph87.electro.CONFIG.ALIGN;
|
|
|
|
public class CircuitPanelDropTarget extends AbstractDropTarget {
|
|
|
|
private final CircuitPanel circuitPanel;
|
|
|
|
public CircuitPanelDropTarget(final CircuitPanel circuitPanel) {
|
|
super(circuitPanel);
|
|
this.circuitPanel = circuitPanel;
|
|
circuitPanel.setDropTarget(this);
|
|
}
|
|
|
|
@Override
|
|
protected boolean drop(final Point point, final String data) {
|
|
final Point aligned = ALIGN(point);
|
|
if (data.equals(Battery.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Battery(aligned, Orientation.R0));
|
|
} else if (data.equals(Light.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Light(aligned, Orientation.R0));
|
|
} else if (data.equals(Switch1x1.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Switch1x1(aligned, Orientation.R0));
|
|
} else if (data.equals(Switch1x2.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Switch1x2(aligned, Orientation.R0));
|
|
} else if (data.equals(SwitchCross.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new SwitchCross(aligned, Orientation.R0));
|
|
} else if (data.equals(Poti.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Poti(aligned, Orientation.R0));
|
|
} else if (data.equals(Voltmeter.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Voltmeter(aligned, Orientation.R0));
|
|
} else if (data.equals(Amperemeter.class.getSimpleName())) {
|
|
circuitPanel.getCircuit().addPart(new Amperemeter(aligned, Orientation.R0));
|
|
} else {
|
|
throw new RuntimeException();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
}
|