X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fhandles%2FComponentHandle.java;h=14868e944ff1b684e5cb6f0da63e27692c3f5dbc;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=52b634da1e27c7f55dcf432e380851f700294a24;hpb=47ea68ed5c444dd14864412639f6a6fd60ab8a0f;p=Mograsim.git diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java index 52b634da..14868e94 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java @@ -6,21 +6,26 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import net.haspamelodica.swt.helper.gcs.GeneralGC; +import net.haspamelodica.swt.helper.swtobjectwrappers.Font; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; -import net.mograsim.logic.model.editor.Editor; import net.mograsim.logic.model.editor.Editor.ComponentInfo; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.LogicModelModifiable; +import net.mograsim.logic.model.model.components.ModelComponent; +import net.mograsim.logic.model.serializing.IdentifyParams; public class ComponentHandle extends Handle { - public final GUIComponent parent; + private final LogicModelModifiable model; + public final ModelComponent parent; private final static double POS_OFFSET = 2.0d; private final static double LENGTH_OFFSET = POS_OFFSET * 2; boolean selected = false; - public ComponentHandle(GUIComponent parent) + public ComponentHandle(LogicModelModifiable model, ModelComponent parent) { + super(4); + this.model = model; this.parent = parent; Rectangle bounds = parent.getBounds(); setSize(bounds.width, bounds.height); @@ -31,7 +36,7 @@ public class ComponentHandle extends Handle }); moveTo(parent.getPosX(), parent.getPosY()); } - + @Override protected void moveTo(double x, double y) { @@ -52,6 +57,11 @@ public class ComponentHandle extends Handle bounds.width += LENGTH_OFFSET; bounds.height += LENGTH_OFFSET; gc.drawRectangle(bounds); + Font oldFont = gc.getFont(); + gc.setFont(new Font(oldFont.getName(), 5, oldFont.getStyle())); + gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)); + gc.drawText(parent.getName(), bounds.x, bounds.y, true); + gc.setFont(oldFont); } } @@ -74,20 +84,21 @@ public class ComponentHandle extends Handle selected = false; callRedrawListeners(); } - + @Override public void reqDelete() { - parent.destroy(); + model.destroyComponent(parent); } @Override public Optional reqCopy(Point refPoint) { + IdentifyParams idParams = new IdentifyParams(); return Optional.of(new ComponentInfo(parent.getPosX() - refPoint.x, parent.getPosY() - refPoint.y, - Editor.getIdentifier(parent), parent.getParams())); + parent.getIDForSerializing(idParams), parent.getParamsForSerializingJSON(idParams))); } - + @Override public HandleType getType() {