remove Part via mouse
This commit is contained in:
parent
db63665949
commit
2f7b2568c6
@ -78,6 +78,15 @@ public class Circuit {
|
||||
return part;
|
||||
}
|
||||
|
||||
public void removePart(final Part part) {
|
||||
if (parts.remove(part)) {
|
||||
part.getJunctions().forEach(junction -> junction.getWires().forEach(this::disconnect));
|
||||
} else {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
evaluate();
|
||||
}
|
||||
|
||||
public void movePart(final Part part, final Position position) {
|
||||
if (!parts.contains(part)) {
|
||||
throw new RuntimeException();
|
||||
|
||||
@ -8,11 +8,9 @@ import de.ph87.electro.circuit.wire.Wire;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.Optional;
|
||||
|
||||
import static de.ph87.electro.CONFIG.*;
|
||||
import static java.awt.event.MouseEvent.BUTTON1;
|
||||
import static java.awt.event.MouseEvent.BUTTON3;
|
||||
import static java.awt.event.MouseEvent.*;
|
||||
|
||||
class CircuitPanelMouseAdapter extends MouseAdapter {
|
||||
|
||||
@ -41,10 +39,15 @@ class CircuitPanelMouseAdapter extends MouseAdapter {
|
||||
final Position position = new Position(event);
|
||||
|
||||
if (event.getButton() == BUTTON3) {
|
||||
final Optional<Wire> wireOptional = circuitPanel.getCircuit().findWireByPosition(position);
|
||||
if (wireOptional.isPresent()) {
|
||||
if (wireHover != null) {
|
||||
circuitPanel.getCircuit().disconnect(wireHover);
|
||||
wireHover = null;
|
||||
circuitPanel.getCircuit().disconnect(wireOptional.get());
|
||||
circuitPanel.repaint();
|
||||
return;
|
||||
}
|
||||
if (partHover != null) {
|
||||
circuitPanel.getCircuit().removePart(partHover);
|
||||
partHover = null;
|
||||
circuitPanel.repaint();
|
||||
return;
|
||||
}
|
||||
@ -56,7 +59,7 @@ class CircuitPanelMouseAdapter extends MouseAdapter {
|
||||
part.action();
|
||||
circuitPanel.repaint();
|
||||
break;
|
||||
case BUTTON3:
|
||||
case BUTTON2:
|
||||
part.rotate();
|
||||
circuitPanel.repaint();
|
||||
break;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user