Search in sources :

Example 1 with Design

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

the class SvgReader method read.

@Override
public Optional<Design> read(File f) {
    if (EventQueue.isDispatchThread()) {
        throw new RuntimeException("Method can not be executed in dispatch thread");
    }
    result = null;
    svgCanvas = new JSVGCanvas();
    svgCanvas.setDocumentState(JSVGComponent.ALWAYS_DYNAMIC);
    svgCanvas.addGVTTreeBuilderListener(this);
    svgCanvas.setURI(f.toURI().toString());
    try {
        // Wait for svg loader to finish processing the SVG
        ThreadHelper.waitUntil(() -> result != null, 10, TimeUnit.SECONDS);
    } catch (TimeoutException e) {
        throw new RuntimeException("It took to long to load file");
    // Never mind
    }
    Design design = new Design();
    design.setEntities(result != null ? result.getChildren() : new ArrayList<>());
    return Optional.of(design);
}
Also used : Design(com.willwinder.ugs.nbp.designer.model.Design) ArrayList(java.util.ArrayList) JSVGCanvas(org.apache.batik.swing.JSVGCanvas) TimeoutException(java.util.concurrent.TimeoutException)

Example 2 with Design

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

the class DesignerTopComponent method loadDesign.

private void loadDesign(UgsDataObject dataObject) {
    Design design = new Design();
    try {
        File file = new File(dataObject.getPrimaryFile().getPath());
        if (file.exists()) {
            UgsDesignReader reader = new UgsDesignReader();
            design = reader.read(file).orElse(design);
        }
    } catch (Exception e) {
        LOGGER.log(Level.SEVERE, "Couldn't load design from file " + dataObject.getPrimaryFile(), e);
    }
    controller.setDesign(design);
}
Also used : Design(com.willwinder.ugs.nbp.designer.model.Design) File(java.io.File) UgsDesignReader(com.willwinder.ugs.nbp.designer.io.ugsd.UgsDesignReader)

Example 3 with Design

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

the class DesignV1 method toInternal.

public Design toInternal() {
    Design design = new Design();
    if (entities != null) {
        List<Entity> entities = getEntities().stream().filter(Objects::nonNull).map(EntityV1::toInternal).collect(Collectors.toList());
        design.setEntities(entities);
    }
    design.setSettings(settings.toInternal());
    return design;
}
Also used : UgsDesign(com.willwinder.ugs.nbp.designer.io.ugsd.common.UgsDesign) Design(com.willwinder.ugs.nbp.designer.model.Design) Entity(com.willwinder.ugs.nbp.designer.entities.Entity) Objects(java.util.Objects)

Example 4 with Design

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

the class UgsDesignReaderTest method readDesignWithRectangle.

@Test
public void readDesignWithRectangle() {
    Rectangle entity = new Rectangle();
    entity.setSize(new Size(10, 10));
    entity.setCenter(new Point2D.Double(10, 10));
    entity.setName("rectangle");
    entity.setRotation(90);
    entity.setStartDepth(1);
    entity.setTargetDepth(12);
    entity.setCutType(CutType.POCKET);
    String data = convertEntityToString(entity);
    UgsDesignReader reader = new UgsDesignReader();
    Design design = reader.read(IOUtils.toInputStream(data)).get();
    assertEquals(1, design.getEntities().size());
    Cuttable readEntity = (Cuttable) design.getEntities().get(0);
    assertTrue(readEntity instanceof Rectangle);
    assertEquals(entity.getPosition(), readEntity.getPosition());
    assertEquals(entity.getName(), readEntity.getName());
    assertEquals(entity.getCutType(), readEntity.getCutType());
    assertEquals(entity.getStartDepth(), readEntity.getStartDepth(), 0.1);
    assertEquals(entity.getTargetDepth(), readEntity.getTargetDepth(), 0.1);
    assertEquals(entity.getRotation(), readEntity.getRotation(), 0.1);
}
Also used : Design(com.willwinder.ugs.nbp.designer.model.Design) Point2D(java.awt.geom.Point2D) Size(com.willwinder.ugs.nbp.designer.model.Size) Test(org.junit.Test)

Example 5 with Design

use of com.willwinder.ugs.nbp.designer.model.Design 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)

Aggregations

Design (com.willwinder.ugs.nbp.designer.model.Design)13 Entity (com.willwinder.ugs.nbp.designer.entities.Entity)4 Test (org.junit.Test)4 SvgReader (com.willwinder.ugs.nbp.designer.io.svg.SvgReader)3 Size (com.willwinder.ugs.nbp.designer.model.Size)3 Point2D (java.awt.geom.Point2D)3 File (java.io.File)3 ArrayList (java.util.ArrayList)3 Group (com.willwinder.ugs.nbp.designer.entities.cuttable.Group)2 C2dReader (com.willwinder.ugs.nbp.designer.io.c2d.C2dReader)2 UgsDesignReader (com.willwinder.ugs.nbp.designer.io.ugsd.UgsDesignReader)2 TimeoutException (java.util.concurrent.TimeoutException)2 JSVGCanvas (org.apache.batik.swing.JSVGCanvas)2 Gson (com.google.gson.Gson)1 GsonBuilder (com.google.gson.GsonBuilder)1 SelectionManager (com.willwinder.ugs.nbp.designer.entities.selection.SelectionManager)1 DesignReader (com.willwinder.ugs.nbp.designer.io.DesignReader)1 C2dFile (com.willwinder.ugs.nbp.designer.io.c2d.model.C2dFile)1 DxfReader (com.willwinder.ugs.nbp.designer.io.dxf.DxfReader)1 UgsDesign (com.willwinder.ugs.nbp.designer.io.ugsd.common.UgsDesign)1