package net.mograsim.logic.ui.model.wires;
+import java.util.Map;
+
import net.haspamelodica.swt.helper.gcs.GeneralGC;
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.core.LogicObservable;
import net.mograsim.logic.core.types.BitVectorFormatter;
import net.mograsim.logic.core.wires.Wire.ReadEnd;
import net.mograsim.logic.ui.ColorHelper;
+import net.mograsim.logic.ui.model.ModelVisitor;
import net.mograsim.logic.ui.model.ViewModelModifiable;
import net.mograsim.logic.ui.model.components.GUIComponent;
+import net.mograsim.logic.ui.model.components.SimpleRectangularGUIGate;
public class WireCrossPoint extends GUIComponent
{
this.logicWidth = logicWidth;
setSize(CIRCLE_DIAM, CIRCLE_DIAM);
- addPin(this.pin = new Pin(this, logicWidth, CIRCLE_RADIUS, CIRCLE_RADIUS));
+ addPin(this.pin = new Pin(this, "", logicWidth, CIRCLE_RADIUS, CIRCLE_RADIUS));
}
public void moveCenterTo(double x, double y)
@Override
public void render(GeneralGC gc, Rectangle visibleRegion)
{
- Rectangle bounds = getBounds();
ColorHelper.executeWithDifferentBackground(gc, BitVectorFormatter.formatAsColor(end),
- () -> gc.fillOval(bounds.x, bounds.y, CIRCLE_DIAM, CIRCLE_DIAM));
+ () -> gc.fillOval(getPosX(), getPosY(), CIRCLE_DIAM, CIRCLE_DIAM));
}
public void setLogicModelBinding(ReadEnd end)
{
return pin;
}
+
+ @Override
+ public Map<String, Object> getInstantiationParameters()
+ {
+ Map<String, Object> m = super.getInstantiationParameters();
+ m.put(SimpleRectangularGUIGate.kLogicWidth, logicWidth);
+ return m;
+ }
+
+ @Override
+ public void accept(ModelVisitor mv)
+ {
+ mv.visit(this);
+ }
}
\ No newline at end of file