KinderElektro/src/main/java/de/ph87/electro/circuit/CircuitPanelDropTarget.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;
}
}