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);
});
moveTo(parent.getPosX(), parent.getPosY());
}
-
+
@Override
protected void moveTo(double x, double y)
{
selected = false;
callRedrawListeners();
}
-
+
@Override
public void reqDelete()
{
- parent.destroy();
+ model.destroyComponent(parent);
}
@Override
public Optional<ComponentInfo> reqCopy(Point refPoint)
{
- return Optional.of(new ComponentInfo(parent.getPosX() - refPoint.x, parent.getPosY() - refPoint.y,
- Editor.getIdentifier(parent), parent.getParamsForSerializing()));
+ return Optional.of(new ComponentInfo(parent.getPosX() - refPoint.x, parent.getPosY() - refPoint.y, Editor.getIdentifier(parent),
+ parent.getParamsForSerializingJSON(new IdentifyParams())));
}
-
+
@Override
public HandleType getType()
{