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