Search in sources :

Example 11 with Controller

use of com.willwinder.ugs.nbp.designer.logic.Controller in project Universal-G-Code-Sender by winder.

the class OpenAction method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    UndoManager undoManager = CentralLookup.getDefault().lookup(UndoManager.class);
    undoManager.clear();
    SelectionManager selectionManager = CentralLookup.getDefault().lookup(SelectionManager.class);
    selectionManager.clearSelection();
    Controller controller = CentralLookup.getDefault().lookup(Controller.class);
    fileChooser.showOpenDialog(null);
    ThreadHelper.invokeLater(() -> {
        DesignReader designReader = new UgsDesignReader();
        if (fileChooser.getFileFilter() == SVG_FILE_FILTER) {
            designReader = new SvgReader();
        } else if (fileChooser.getFileFilter() == C2D_FILE_FILTER) {
            designReader = new C2dReader();
        }
        File selectedFile = fileChooser.getSelectedFile();
        Optional<Design> optional = designReader.read(selectedFile);
        if (optional.isPresent()) {
            controller.setDesign(optional.get());
        } else {
            throw new RuntimeException("Could not open svg: " + selectedFile.getName());
        }
    });
}
Also used : Design(com.willwinder.ugs.nbp.designer.model.Design) SelectionManager(com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager) SvgReader(com.willwinder.ugs.nbp.designer.io.svg.SvgReader) C2dReader(com.willwinder.ugs.nbp.designer.io.c2d.C2dReader) DesignReader(com.willwinder.ugs.nbp.designer.io.DesignReader) UgsDesignReader(com.willwinder.ugs.nbp.designer.io.ugsd.UgsDesignReader) Controller(com.willwinder.ugs.nbp.designer.logic.Controller) File(java.io.File) UgsDesignReader(com.willwinder.ugs.nbp.designer.io.ugsd.UgsDesignReader)

Example 12 with Controller

use of com.willwinder.ugs.nbp.designer.logic.Controller in project Universal-G-Code-Sender by winder.

the class MoveControlTest method moveEntityShouldWorkOnScaledEntities.

@Test
public void moveEntityShouldWorkOnScaledEntities() {
    Rectangle rectangle = new Rectangle();
    rectangle.setWidth(10);
    rectangle.setHeight(10);
    rectangle.applyTransform(AffineTransform.getScaleInstance(2, 2));
    SelectionManager selectionManager = new SelectionManager();
    selectionManager.addSelection(rectangle);
    Controller controller = new Controller(selectionManager, new SimpleUndoManager());
    MoveControl target = new MoveControl(controller);
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_PRESSED, new Point2D.Double(10, 10), new Point2D.Double(10, 10)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_DRAGGED, new Point2D.Double(10, 10), new Point2D.Double(11, 11)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_DRAGGED, new Point2D.Double(10, 10), new Point2D.Double(12, 12)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_DRAGGED, new Point2D.Double(10, 10), new Point2D.Double(11, 11)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_RELEASED, new Point2D.Double(10, 10), new Point2D.Double(11, 11)));
    Assert.assertEquals(1, rectangle.getPosition().getX(), 0.1);
    Assert.assertEquals(1, rectangle.getPosition().getY(), 0.1);
}
Also used : SelectionManager(com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager) MouseEntityEvent(com.willwinder.ugs.nbp.designer.gui.MouseEntityEvent) SimpleUndoManager(com.willwinder.ugs.nbp.designer.actions.SimpleUndoManager) Rectangle(com.willwinder.ugs.nbp.designer.entities.cuttable.Rectangle) Controller(com.willwinder.ugs.nbp.designer.logic.Controller) MoveControl(com.willwinder.ugs.nbp.designer.entities.controls.MoveControl) Test(org.junit.Test)

Example 13 with Controller

use of com.willwinder.ugs.nbp.designer.logic.Controller in project Universal-G-Code-Sender by winder.

the class MoveControlTest method moveEntityShouldUseGlobalTransform.

@Test
public void moveEntityShouldUseGlobalTransform() {
    Rectangle rectangle = new Rectangle();
    rectangle.setWidth(10);
    rectangle.setHeight(10);
    rectangle.move(new Point2D.Double(10, 10));
    EntityGroup entityGroup = new EntityGroup();
    entityGroup.addChild(rectangle);
    entityGroup.move(new Point2D.Double(10, 10));
    SelectionManager selectionManager = new SelectionManager();
    selectionManager.addSelection(rectangle);
    Controller controller = new Controller(selectionManager, new SimpleUndoManager());
    MoveControl target = new MoveControl(controller);
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_PRESSED, new Point2D.Double(10, 10), new Point2D.Double(10, 10)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_DRAGGED, new Point2D.Double(10, 10), new Point2D.Double(11, 11)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_DRAGGED, new Point2D.Double(10, 10), new Point2D.Double(12, 12)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_DRAGGED, new Point2D.Double(10, 10), new Point2D.Double(11, 11)));
    target.onEvent(new MouseEntityEvent(target, EventType.MOUSE_RELEASED, new Point2D.Double(10, 10), new Point2D.Double(11, 11)));
    Assert.assertEquals(21, rectangle.getPosition().getX(), 0.1);
    Assert.assertEquals(21, rectangle.getPosition().getY(), 0.1);
}
Also used : SelectionManager(com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager) MouseEntityEvent(com.willwinder.ugs.nbp.designer.gui.MouseEntityEvent) SimpleUndoManager(com.willwinder.ugs.nbp.designer.actions.SimpleUndoManager) Point2D(java.awt.geom.Point2D) Rectangle(com.willwinder.ugs.nbp.designer.entities.cuttable.Rectangle) Controller(com.willwinder.ugs.nbp.designer.logic.Controller) MoveControl(com.willwinder.ugs.nbp.designer.entities.controls.MoveControl) Test(org.junit.Test)

Example 14 with Controller

use of com.willwinder.ugs.nbp.designer.logic.Controller in project Universal-G-Code-Sender by winder.

the class SelectionManagerTest method addSelectionWithControlShouldNotBePossible.

@Test
public void addSelectionWithControlShouldNotBePossible() {
    Controller controller = mock(Controller.class);
    MoveControl control = new MoveControl(controller);
    target.addSelection(control);
    assertTrue(target.isEmpty());
}
Also used : Controller(com.willwinder.ugs.nbp.designer.logic.Controller) MoveControl(com.willwinder.ugs.nbp.designer.entities.controls.MoveControl) Test(org.junit.Test)

Aggregations

Controller (com.willwinder.ugs.nbp.designer.logic.Controller)14 MoveControl (com.willwinder.ugs.nbp.designer.entities.controls.MoveControl)8 SelectionManager (com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager)8 Test (org.junit.Test)8 SimpleUndoManager (com.willwinder.ugs.nbp.designer.actions.SimpleUndoManager)6 Rectangle (com.willwinder.ugs.nbp.designer.entities.cuttable.Rectangle)6 MouseEntityEvent (com.willwinder.ugs.nbp.designer.gui.MouseEntityEvent)6 Point2D (java.awt.geom.Point2D)4 File (java.io.File)3 SelectionSettingsPanel (com.willwinder.ugs.nbp.designer.gui.SelectionSettingsPanel)1 EntitiesTree (com.willwinder.ugs.nbp.designer.gui.tree.EntitiesTree)1 DesignReader (com.willwinder.ugs.nbp.designer.io.DesignReader)1 DesignWriter (com.willwinder.ugs.nbp.designer.io.DesignWriter)1 C2dReader (com.willwinder.ugs.nbp.designer.io.c2d.C2dReader)1 GcodeDesignWriter (com.willwinder.ugs.nbp.designer.io.gcode.GcodeDesignWriter)1 SvgReader (com.willwinder.ugs.nbp.designer.io.svg.SvgReader)1 UgsDesignReader (com.willwinder.ugs.nbp.designer.io.ugsd.UgsDesignReader)1 UgsDesignWriter (com.willwinder.ugs.nbp.designer.io.ugsd.UgsDesignWriter)1 Design (com.willwinder.ugs.nbp.designer.model.Design)1 FileStateInvalidException (org.openide.filesystems.FileStateInvalidException)1