Search in sources :

Example 11 with Entity

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;
}
Also used : Entity(com.willwinder.ugs.nbp.designer.entities.Entity) Text(com.willwinder.ugs.nbp.designer.entities.cuttable.Text)

Example 12 with Entity

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();
    }
}
Also used : SelectionManager(com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager) Entity(com.willwinder.ugs.nbp.designer.entities.Entity) EntityGroup(com.willwinder.ugs.nbp.designer.entities.EntityGroup)

Example 13 with Entity

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;
        }
    }
}
Also used : MouseEntityEvent(com.willwinder.ugs.nbp.designer.gui.MouseEntityEvent) Entity(com.willwinder.ugs.nbp.designer.entities.Entity) Point2D(java.awt.geom.Point2D)

Example 14 with Entity

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);
}
Also used : Entity(com.willwinder.ugs.nbp.designer.entities.Entity) Point2D(java.awt.geom.Point2D) Size(com.willwinder.ugs.nbp.designer.model.Size)

Example 15 with Entity

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;
        }
    }
}
Also used : MouseEntityEvent(com.willwinder.ugs.nbp.designer.gui.MouseEntityEvent) Entity(com.willwinder.ugs.nbp.designer.entities.Entity) Point2D(java.awt.geom.Point2D)

Aggregations

Entity (com.willwinder.ugs.nbp.designer.entities.Entity)22 Point2D (java.awt.geom.Point2D)7 SelectionManager (com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager)6 EntityGroup (com.willwinder.ugs.nbp.designer.entities.EntityGroup)4 Design (com.willwinder.ugs.nbp.designer.model.Design)4 ArrayList (java.util.ArrayList)4 Text (com.willwinder.ugs.nbp.designer.entities.cuttable.Text)3 MouseEntityEvent (com.willwinder.ugs.nbp.designer.gui.MouseEntityEvent)3 UndoManager (com.willwinder.ugs.nbp.designer.actions.UndoManager)2 Group (com.willwinder.ugs.nbp.designer.entities.cuttable.Group)2 Size (com.willwinder.ugs.nbp.designer.model.Size)2 Gson (com.google.gson.Gson)1 GsonBuilder (com.google.gson.GsonBuilder)1 JsonSyntaxException (com.google.gson.JsonSyntaxException)1 MoveAction (com.willwinder.ugs.nbp.designer.actions.MoveAction)1 RotateAction (com.willwinder.ugs.nbp.designer.actions.RotateAction)1 Cuttable (com.willwinder.ugs.nbp.designer.entities.cuttable.Cuttable)1 Path (com.willwinder.ugs.nbp.designer.entities.cuttable.Path)1 ImageTracerDialog (com.willwinder.ugs.nbp.designer.gui.imagetracer.ImageTracerDialog)1 C2dFile (com.willwinder.ugs.nbp.designer.io.c2d.model.C2dFile)1