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);
}
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);
}
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;
}
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);
}
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());
}
});
}
Aggregations