projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pins now have names
[Mograsim.git]
/
net.mograsim.logic.ui
/
src
/
net
/
mograsim
/
logic
/
ui
/
model
/
wires
/
Pin.java
diff --git
a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
index
f3a7802
..
9be0800
100644
(file)
--- a/
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
+++ b/
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
@@
-4,28
+4,32
@@
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.List;
import java.util.function.Consumer;
-import net.mograsim.logic.ui.model.components.GUIComponent;
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
+import net.mograsim.logic.ui.model.components.GUIComponent;
public class Pin
{
public final GUIComponent component;
public class Pin
{
public final GUIComponent component;
+ public final String name;
public final int logicWidth;
protected double relX;
protected double relY;
private final List<Consumer<? super Pin>> pinMovedListeners;
public final int logicWidth;
protected double relX;
protected double relY;
private final List<Consumer<? super Pin>> pinMovedListeners;
+ private final List<Runnable> redrawListeners;
- public Pin(GUIComponent component, int logicWidth, double relX, double relY)
+ public Pin(GUIComponent component,
String name,
int logicWidth, double relX, double relY)
{
this.component = component;
{
this.component = component;
+ this.name = name;
this.logicWidth = logicWidth;
this.relX = relX;
this.relY = relY;
this.pinMovedListeners = new ArrayList<>();
this.logicWidth = logicWidth;
this.relX = relX;
this.relY = relY;
this.pinMovedListeners = new ArrayList<>();
+ this.redrawListeners = new ArrayList<>();
component.addComponentMovedListener(c -> callPinMovedListeners());
}
component.addComponentMovedListener(c -> callPinMovedListeners());
}
@@
-51,18
+55,23
@@
public class Pin
return new Point(relX + componentBounds.x, relY + componentBounds.y);
}
return new Point(relX + componentBounds.x, relY + componentBounds.y);
}
+ protected void setRelPos(double relX, double relY)
+ {
+ this.relX = relX;
+ this.relY = relY;
+ callPinMovedListeners();
+ callRedrawListeners();
+ }
+
// @formatter:off
public void addPinMovedListener (Consumer<? super Pin> listener){pinMovedListeners.add (listener);}
// @formatter:off
public void addPinMovedListener (Consumer<? super Pin> listener){pinMovedListeners.add (listener);}
+ public void addRedrawListener (Runnable listener){redrawListeners .add (listener);}
public void removePinMovedListener(Consumer<? super Pin> listener){pinMovedListeners.remove(listener);}
public void removePinMovedListener(Consumer<? super Pin> listener){pinMovedListeners.remove(listener);}
+ public void removeRedrawListener (Runnable listener){redrawListeners .remove(listener);}
private void callPinMovedListeners() {pinMovedListeners.forEach(l -> l.accept(this));}
private void callPinMovedListeners() {pinMovedListeners.forEach(l -> l.accept(this));}
+ private void callRedrawListeners () {redrawListeners .forEach(l -> l.run ( ));}
// @formatter:on
// @formatter:on
- protected void setRelPos(double relX, double relY)
- {
- this.relX = relX;
- this.relY = relY;
- callPinMovedListeners();
- }
}
\ No newline at end of file
}
\ No newline at end of file