1 package net.mograsim.logic.model.editor.handles;
3 import org.eclipse.swt.SWT;
4 import org.eclipse.swt.widgets.Display;
6 import net.haspamelodica.swt.helper.gcs.GeneralGC;
7 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
8 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
10 public class CornerHandle extends Handle
12 private final static int LENGTH = 5;
13 private final DeserializedSubmodelComponent toBeEdited;
14 private boolean selected;
16 public CornerHandle(DeserializedSubmodelComponent toBeEdited)
19 this.toBeEdited = toBeEdited;
20 setSize(LENGTH, LENGTH);
25 protected void render(GeneralGC gc)
27 gc.setBackground(Display.getCurrent().getSystemColor(selected ? SWT.COLOR_YELLOW : SWT.COLOR_DARK_GREEN));
28 gc.fillRectangle(getPosX(), getPosY(), LENGTH, LENGTH);
31 private void initPos()
33 Rectangle bounds = toBeEdited.getBounds();
34 double subScale = toBeEdited.getSubmodelScale();
35 moveTo(bounds.width / subScale, bounds.height / subScale);
39 public void reqMove(double x, double y)
45 public void onSelect()
48 callRedrawListeners();
52 public void onDeselect()
55 callRedrawListeners();
59 protected void moveTo(double x, double y)
62 double subScale = toBeEdited.getSubmodelScale();
63 toBeEdited.setSize(x * subScale, y * subScale);
67 public HandleType getType()
69 return HandleType.CORNER;