use of de.neemann.digital.draw.elements.Circuit in project Digital by hneemann.
the class TestSelect method testSelect.
public void testSelect() throws Exception {
Circuit c = new ToBreakRunner("dig/selectOuter.dig").getCircuit();
// don't select by clicking in label size bounding box
VisualElement el = c.getElementAt(new Vector(65, 15));
assertNull(el);
// select by clicking in shape size bounding box
el = c.getElementAt(new Vector(55, 15));
assertNotNull(el);
assertEquals("selectInnerLongName.dig", el.getElementName());
// select output by clicking in shape size bounding box
el = c.getElementAt(new Vector(195, 20));
assertNotNull(el);
assertEquals(Out.DESCRIPTION.getName(), el.getElementName());
// don't select output by clicking in label text
el = c.getElementAt(new Vector(250, 20));
assertNull(el);
// select text by clicking in text size bounding box
el = c.getElementAt(new Vector(20, 110));
assertNotNull(el);
assertEquals(DummyElement.TEXTDESCRIPTION.getName(), el.getElementName());
}
use of de.neemann.digital.draw.elements.Circuit in project Digital by hneemann.
the class TestShapes method useShapes.
private void useShapes(boolean ieee) throws Exception {
File filename = new File(Resources.getRoot(), "dig/shapes.dig");
ElementLibrary library = new ElementLibrary();
library.setRootFilePath(new File(Resources.getRoot(), "dig"));
ShapeFactory shapeFactory = new ShapeFactory(library, ieee);
Circuit circuit = Circuit.loadCircuit(filename, shapeFactory);
// try to write circuit to graphics instance
ByteArrayOutputStream baos = new ByteArrayOutputStream();
new Export(circuit, (out) -> new GraphicsImage(out, "PNG", 1)).export(baos);
assertTrue(baos.size() > 30000);
}
use of de.neemann.digital.draw.elements.Circuit in project Digital by hneemann.
the class TestResultTest method getModel.
private Model getModel(String func) throws IOException, ParseException, BuilderException, PinException, NodeException, ElementNotFoundException {
ArrayList<Expression> exp = new Parser(func).parse();
ElementLibrary library = new ElementLibrary();
CircuitBuilder cb = new CircuitBuilder(new ShapeFactory(library));
cb.addCombinatorial("Y", exp.get(0));
Circuit circ = cb.createCircuit();
Model model = new ModelCreator(circ, library).createModel(false);
model.init();
return model;
}
use of de.neemann.digital.draw.elements.Circuit in project Digital by hneemann.
the class ExportZipAction method actionPerformed.
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser(main.getBaseFileName());
fc.setFileFilter(new FileNameExtensionFilter("ZIP", "zip"));
new SaveAsHelper(main, fc, "zip").checkOverwrite(file -> {
try (ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)))) {
Circuit circuit = main.getCircuitComponent().getCircuit();
lib = main.getCircuitComponent().getLibrary();
File origin = circuit.getOrigin();
elementSet = new HashSet<>();
addFile(zip, origin, circuit);
addToZip(zip, "MANIFEST.TXT", "Main-Circuit: " + origin.getName() + "\n");
} catch (ElementNotFoundException e1) {
throw new IOException(Lang.get("err_errorExportingZip"), e1);
}
});
}
use of de.neemann.digital.draw.elements.Circuit in project Digital by hneemann.
the class TestExecuter method createFromFile.
public static TestExecuter createFromFile(String name, ElementLibrary library) throws IOException, NodeException, PinException, ElementNotFoundException {
File filename = new File(Resources.getRoot(), name);
Circuit circuit = Circuit.loadCircuit(filename, new ShapeFactory(library));
ModelCreator mb = new ModelCreator(circuit, library);
return new TestExecuter(mb.createModel(false), true).setUp(mb);
}
Aggregations