45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package de.ph87.electro.circuit;
|
|
|
|
import de.ph87.electro.circuit.part.parts.Battery;
|
|
import de.ph87.electro.circuit.part.parts.Light;
|
|
import lombok.Getter;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
|
|
import static de.ph87.electro.circuit.CircuitPainter.paintCircuit;
|
|
import static de.ph87.electro.circuit.part.Position.RST;
|
|
|
|
@Slf4j
|
|
public class CircuitPanel extends JPanel {
|
|
|
|
@Getter
|
|
private Circuit circuit = new Circuit();
|
|
|
|
private final CircuitPanelMouseAdapter mouseAdapter = new CircuitPanelMouseAdapter(this);
|
|
|
|
public CircuitPanel() {
|
|
new CircuitPanelDropTarget(this);
|
|
final Battery b0 = circuit.addPart(new Battery(circuit, RST(0, 0)));
|
|
final Light l = circuit.addPart(new Light(circuit, RST(2, 0)));
|
|
final Battery b1 = circuit.addPart(new Battery(circuit, RST(4, 0)));
|
|
circuit.connect(b0.getPlus(), l.getA());
|
|
circuit.connect(l.getB(), b1.getMinus());
|
|
}
|
|
|
|
@Override
|
|
public void paint(final Graphics _g) {
|
|
final Graphics2D g = (Graphics2D) _g;
|
|
paintCircuit(circuit, g, getWidth(), getHeight());
|
|
mouseAdapter.drawHover(g);
|
|
mouseAdapter.drawDrag(g);
|
|
}
|
|
|
|
public void newCircuit() {
|
|
circuit = new Circuit();
|
|
repaint();
|
|
}
|
|
|
|
}
|