use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class EditTextControl method isTextEntitySelected.
private boolean isTextEntitySelected() {
boolean isTextEntity = false;
List<Entity> selection = controller.getSelectionManager().getSelection();
if (!selection.isEmpty()) {
Entity entity = selection.get(0);
isTextEntity = entity instanceof Text;
}
return isTextEntity;
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class FlipVerticallyAction method actionPerformed.
@Override
public void actionPerformed(ActionEvent e) {
SelectionManager selectionManager = controller.getSelectionManager();
if (!selectionManager.getSelection().isEmpty()) {
List<Entity> entities = selectionManager.getSelection();
EntityGroup entityGroup = new EntityGroup();
entityGroup.addAll(entities);
UndoableFlipVerticallyAction undoableAction = new UndoableFlipVerticallyAction(controller.getDrawing(), entityGroup);
controller.getUndoManager().addAction(undoableAction);
undoableAction.execute();
}
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class MoveControl method onEvent.
@Override
public void onEvent(EntityEvent entityEvent) {
if (entityEvent instanceof MouseEntityEvent && entityEvent.getTarget() == this) {
MouseEntityEvent mouseShapeEvent = (MouseEntityEvent) entityEvent;
Point2D mousePosition = mouseShapeEvent.getCurrentMousePosition();
Entity target = getSelectionManager();
if (mouseShapeEvent.getType() == EventType.MOUSE_PRESSED) {
startPosition = target.getPosition();
startOffset = new Point2D.Double(mousePosition.getX() - target.getPosition().getX(), mousePosition.getY() - target.getPosition().getY());
} else if (mouseShapeEvent.getType() == EventType.MOUSE_DRAGGED) {
Point2D deltaMovement = new Point2D.Double(mousePosition.getX() - target.getPosition().getX() - startOffset.getX(), mousePosition.getY() - target.getPosition().getY() - startOffset.getY());
if (mouseShapeEvent.isAltPressed()) {
Point2D newPosition = new Point2D.Double(Utils.roundToDecimals(target.getPosition().getX() + deltaMovement.getX(), 1), Utils.roundToDecimals(target.getPosition().getY() + deltaMovement.getY(), 1));
target.setPosition(newPosition);
} else {
Point2D newPosition = new Point2D.Double(Math.round(target.getPosition().getX() + deltaMovement.getX()), Math.round(target.getPosition().getY() + deltaMovement.getY()));
target.setPosition(newPosition);
}
} else if (mouseShapeEvent.getType() == EventType.MOUSE_RELEASED && startPosition != null) {
Point2D deltaMovementTotal = new Point2D.Double(target.getPosition().getX() - startPosition.getX(), target.getPosition().getY() - startPosition.getY());
addUndoAction(deltaMovementTotal, target);
startPosition = null;
startOffset = null;
} else if (mouseShapeEvent.getType() == EventType.MOUSE_IN) {
isHovered = true;
} else if (mouseShapeEvent.getType() == EventType.MOUSE_OUT) {
isHovered = false;
}
}
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class ResizeControl method performScaling.
private void performScaling(Point2D mousePosition) {
int decimals = 1;
Size size = getSelectionManager().getSize();
Entity target = getSelectionManager();
Point2D deltaMovement = new Point2D.Double(Utils.roundToDecimals(mousePosition.getX() - getPosition().getX() - startOffset.getX(), decimals), Utils.roundToDecimals(mousePosition.getY() - getPosition().getY() - startOffset.getY(), decimals));
Point2D scaleFactor = getScaleFactor(deltaMovement.getX() / size.getWidth(), deltaMovement.getY() / size.getHeight());
Size newSize = new Size(Utils.roundToDecimals(target.getSize().getWidth() * scaleFactor.getX(), decimals), Utils.roundToDecimals(target.getSize().getHeight() * scaleFactor.getY(), decimals));
// Do not scale if the entity will become too small after operation
if (newSize.getWidth() < 1 || newSize.getHeight() < 1) {
return;
}
target.move(getDeltaMovement(size, newSize));
target.setSize(newSize);
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class ResizeControl method onEvent.
@Override
public void onEvent(EntityEvent entityEvent) {
if (entityEvent instanceof MouseEntityEvent && entityEvent.getTarget() == this) {
MouseEntityEvent mouseShapeEvent = (MouseEntityEvent) entityEvent;
Point2D mousePosition = mouseShapeEvent.getCurrentMousePosition();
if (mouseShapeEvent.getType() == EventType.MOUSE_PRESSED) {
startOffset = new Point2D.Double(mousePosition.getX() - getPosition().getX(), mousePosition.getY() - getPosition().getY());
} else if (mouseShapeEvent.getType() == EventType.MOUSE_DRAGGED) {
performScaling(mousePosition);
} else if (mouseShapeEvent.getType() == EventType.MOUSE_RELEASED) {
Entity target = getSelectionManager();
LOGGER.info("Stopped moving " + target.getPosition());
} else if (mouseShapeEvent.getType() == EventType.MOUSE_IN) {
isHovered = true;
} else if (mouseShapeEvent.getType() == EventType.MOUSE_OUT) {
isHovered = false;
}
}
}
Aggregations