diff --git a/diylc/diylc-library/.classpath b/diylc/diylc-library/.classpath
index 19090f8d..65cadc9a 100644
--- a/diylc/diylc-library/.classpath
+++ b/diylc/diylc-library/.classpath
@@ -3,6 +3,7 @@
+
diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar
index 49cb9c07..01d4bf1a 100644
Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ
diff --git a/diylc/diylc-library/lib/jep-2.4.1.jar b/diylc/diylc-library/lib/jep-2.4.1.jar
new file mode 100644
index 00000000..0aea3e52
Binary files /dev/null and b/diylc/diylc-library/lib/jep-2.4.1.jar differ
diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java
index db000e1c..ca0e1a1b 100644
--- a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java
+++ b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java
@@ -162,7 +162,7 @@ public class SolderPad extends AbstractComponent {
@Override
public void setValue(Void value) {}
- static enum Type {
+ public static enum Type {
ROUND, SQUARE;
@Override
diff --git a/diylc/diylc-library/src/org/diylc/components/passive/ElectrolyticCanCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/ElectrolyticCanCapacitor.java
index 126d82da..15a06d85 100644
--- a/diylc/diylc-library/src/org/diylc/components/passive/ElectrolyticCanCapacitor.java
+++ b/diylc/diylc-library/src/org/diylc/components/passive/ElectrolyticCanCapacitor.java
@@ -34,30 +34,32 @@ import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Electrolytic Capacitor (can)", author = "Branislav Stojkovic", category = "Passive",
instanceNamePrefix = "C", description = "Vertical chassis-mount electrolytic capacitor similar to JJ",
stretchable = false, zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_VALUE)
-public class ElectrolyticCanCapacitor extends AbstractTransparentComponent {
+public class ElectrolyticCanCapacitor extends AbstractTransparentComponent {
private static final long serialVersionUID = 1L;
public static Color BODY_COLOR = Color.lightGray;
+ public static Color BASE_COLOR = Color.gray;
public static Color BORDER_COLOR = BODY_COLOR.darker();
public static Color PIN_COLOR = Color.decode("#00B2EE");
public static Color PIN_BORDER_COLOR = PIN_COLOR.darker();
public static Color LABEL_COLOR = Color.black;
- public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in);
- public static Size PIN_SPACING = new Size(0.05d, SizeUnit.in);
+ public static Size PIN_SIZE = new Size(0.08d, SizeUnit.in);
+// public static Size PIN_SPACING = new Size(0.05d, SizeUnit.in);
public static Size BODY_DIAMETER = new Size(1d, SizeUnit.in);
- private Capacitance value = null;
+ private Capacitance[] value = new Capacitance[4];
private org.diylc.core.measures.Voltage voltage = null;
private Orientation orientation = Orientation.DEFAULT;
private Point[] controlPoints = new Point[] {new Point(0, 0), new Point(0, 0), new Point(0, 0)};
transient private Area body;
private Color bodyColor = BODY_COLOR;
+ private Color baseColor = BASE_COLOR;
private Color borderColor = BORDER_COLOR;
private Color labelColor = LABEL_COLOR;
protected Display display = Display.NAME;
- private Size pinSpacing = PIN_SPACING;
+// private Size pinSpacing = PIN_SPACING;
private CanSections sections = CanSections._1;
private Size diameter = BODY_DIAMETER;
@@ -67,11 +69,11 @@ public class ElectrolyticCanCapacitor extends AbstractTransparentComponent {
body = null;
}
- static enum Base {
+ public static enum Base {
B9A("Noval B9A"), OCTAL("Octal"), B7G("Small-button B7G");
String name;
diff --git a/diylc/diylc-library/src/org/diylc/parsing/V2FileParser.java b/diylc/diylc-library/src/org/diylc/parsing/V2FileParser.java
index 21a052be..89124b58 100644
--- a/diylc/diylc-library/src/org/diylc/parsing/V2FileParser.java
+++ b/diylc/diylc-library/src/org/diylc/parsing/V2FileParser.java
@@ -1,38 +1,972 @@
package org.diylc.parsing;
+import java.awt.Color;
+import java.awt.Point;
+import java.util.ArrayList;
import java.util.List;
+import org.apache.log4j.Logger;
+import org.diylc.appframework.miscutils.ConfigurationManager;
+import org.diylc.common.Display;
+import org.diylc.common.Orientation;
+import org.diylc.components.boards.AbstractBoard;
+import org.diylc.components.boards.BlankBoard;
+import org.diylc.components.boards.PerfBoard;
+import org.diylc.components.boards.VeroBoard;
+import org.diylc.components.connectivity.AWG;
+import org.diylc.components.connectivity.CopperTrace;
+import org.diylc.components.connectivity.CurvedTrace;
+import org.diylc.components.connectivity.Eyelet;
+import org.diylc.components.connectivity.HookupWire;
+import org.diylc.components.connectivity.Line;
+import org.diylc.components.connectivity.SolderPad;
+import org.diylc.components.connectivity.TraceCut;
+import org.diylc.components.electromechanical.MiniToggleSwitch;
+import org.diylc.components.electromechanical.ToggleSwitchType;
+import org.diylc.components.misc.GroundSymbol;
+import org.diylc.components.passive.AxialElectrolyticCapacitor;
+import org.diylc.components.passive.AxialFilmCapacitor;
+import org.diylc.components.passive.CapacitorSymbol;
+import org.diylc.components.passive.PotentiometerPanel;
+import org.diylc.components.passive.PotentiometerSymbol;
+import org.diylc.components.passive.RadialCeramicDiskCapacitor;
+import org.diylc.components.passive.RadialElectrolytic;
+import org.diylc.components.passive.RadialFilmCapacitor;
+import org.diylc.components.passive.Resistor;
+import org.diylc.components.passive.ResistorSymbol;
+import org.diylc.components.semiconductors.BJTSymbol;
+import org.diylc.components.semiconductors.DIL_IC;
+import org.diylc.components.semiconductors.DIL_IC.PinCount;
+import org.diylc.components.semiconductors.DiodePlastic;
+import org.diylc.components.semiconductors.DiodeSymbol;
+import org.diylc.components.semiconductors.ICPointCount;
+import org.diylc.components.semiconductors.ICSymbol;
+import org.diylc.components.semiconductors.LEDSymbol;
+import org.diylc.components.semiconductors.TransistorTO92;
+import org.diylc.components.shapes.Ellipse;
+import org.diylc.components.shapes.Rectangle;
+import org.diylc.components.tube.PentodeSymbol;
+import org.diylc.components.tube.TriodeSymbol;
+import org.diylc.components.tube.TubeSocket;
+import org.diylc.components.tube.TubeSocket.Base;
import org.diylc.core.Project;
+import org.diylc.core.measures.Capacitance;
+import org.diylc.core.measures.CapacitanceUnit;
+import org.diylc.core.measures.Resistance;
+import org.diylc.core.measures.ResistanceUnit;
+import org.diylc.core.measures.Size;
+import org.diylc.core.measures.SizeUnit;
+import org.diylc.presenter.Presenter;
+import org.diylc.utils.Constants;
+import org.nfunk.jep.JEP;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
public class V2FileParser implements IOldFileParser {
-// private static final Logger LOG = Logger.getLogger(V2FileParser.class);
+ private static final Logger LOG = Logger.getLogger(V2FileParser.class);
+ private static final Size V2_GRID_SPACING = new Size(0.1d, SizeUnit.in);
@Override
public boolean canParse(String version) {
return version.equals("2.0");
}
+ public static Size parseString(String text) {
+ JEP parser = new JEP();
+ parser.addStandardConstants();
+ parser.addStandardFunctions();
+ parser.setImplicitMul(true);
+ parser.addConstant("mm", Constants.PIXELS_PER_INCH / 25.4f);
+ parser.addConstant("cm", Constants.PIXELS_PER_INCH / 2.54f);
+ parser.addConstant("in", Constants.PIXELS_PER_INCH * 1f);
+ parser.addConstant("grid", Constants.PIXELS_PER_INCH * 0.1f);
+ parser.addConstant("degree", Double.valueOf(0.017453292519943295D));
+ parser.addConstant("deg", Double.valueOf(0.017453292519943295D));
+ parser.addConstant("px", 1f);
+ parser.parseExpression(text);
+ Double value = parser.getValue(); // in pixels
+ if (ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, true))
+ return new Size(value / Constants.PIXELS_PER_INCH * 25.4f, SizeUnit.mm);
+ else
+ return new Size(value / Constants.PIXELS_PER_INCH, SizeUnit.in);
+
+ }
+
@Override
public Project parseFile(Element root, List warnings) {
Project project = new Project();
- warnings.add("V2 file parser is not yet implemented due to lack of interest and short life of DIYLC V2.");
- // String projectName = root.getAttribute("projectName");
- // String credits = root.getAttribute("credits");
- // String width = root.getAttribute("width");
- // String height = root.getAttribute("height");
- // NodeList childNodes = root.getChildNodes();
- // for (int i = 0; i < childNodes.getLength(); i++) {
- // Node node = childNodes.item(i);
- // if (node.getNodeType() == Node.ELEMENT_NODE) {
- // if (node.getNodeName().equalsIgnoreCase("component")) {
- // LOG.debug(node.getAttributes().getNamedItem("name").getNodeValue());
- // } else {
- // LOG.debug("Unrecognized node name found: " + node.getNodeName());
- // }
- // }
- // }
+ // warnings.add("V2 file parser is not yet implemented due to lack of interest and short life of DIYLC V2.");
+ String projectName = root.getAttribute("projectName");
+ String credits = root.getAttribute("credits");
+ String width = root.getAttribute("width");
+ String height = root.getAttribute("height");
+ Size wp = parseString(width);
+ Size hp = parseString(height);
+
+ project.setTitle(projectName);
+ project.setAuthor(credits);
+ project.setGridSpacing(V2_GRID_SPACING);
+ project.setDescription("V2FileParser");
+ project.setWidth(wp);
+ project.setHeight(hp);
+
+ NodeList childNodes = root.getChildNodes();
+ for (int i = 0; i < childNodes.getLength(); i++) {
+ Node node = childNodes.item(i);
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ if (node.getNodeName().equalsIgnoreCase("component")) {
+ LOG.debug(node.getAttributes().getNamedItem("name").getNodeValue());
+ NodeList unuci = node.getChildNodes();
+ Node properties = unuci.item(1);
+ Node points = unuci.item(3);
+
+ NodeList propertyList = properties.getChildNodes();
+ NodeList pointList = points.getChildNodes();
+ Color cl = null;
+ String com_name = "";
+ String shape = "circle";
+ String display = "";
+ double angle = 0;
+ double distance = 1;
+ double value = -9999;
+ String value_s = "";
+ int transparency = 100;
+ int pins = 6;
+ Size sizePro = new Size(5.0, SizeUnit.mm);
+ Size thicknessPro = new Size(5.0, SizeUnit.mm);
+ Size diameterPro = new Size(5.0, SizeUnit.mm);
+ Size lengthPro = new Size(0.0, SizeUnit.mm);
+ Size bodyPro = new Size(5.0, SizeUnit.mm);
+ Size spacingPro = new Size(0.0, SizeUnit.mm);
+ Size radiusPro = new Size(1.0, SizeUnit.mm);
+ CapacitanceUnit cp = CapacitanceUnit.nF;
+ ResistanceUnit ru = ResistanceUnit.K;
+ for (int j = 0; j < propertyList.getLength(); j++) {
+ // propertyList.item(j).getNodeName() gives: property or "#text"
+ if (propertyList.item(j).getNodeName().equalsIgnoreCase("property")) {
+ // System.out.println(propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue());
+ // // gives Name Part# Thickness Color Group
+ if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("color")) {
+ String color = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ System.out.println(color);
+ String hex_r = color.substring(0, 2);
+ int value_r = Integer.parseInt(hex_r, 16);
+ String hex_g = color.substring(2, 4);
+ int value_g = Integer.parseInt(hex_g, 16);
+ String hex_b = color.substring(4, 6);
+ int value_b = Integer.parseInt(hex_b, 16);
+ cl = new Color(value_r, value_g, value_b);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("name")) {
+ com_name = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Thickness")) {
+ String prom = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ thicknessPro = parseString(prom);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Size")) {
+ String pr = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ sizePro = parseString(pr);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Shape")) {
+ shape = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Diameter")) {
+ String pr1 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ diameterPro = parseString(pr1);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Length")) {
+ String pr2 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ lengthPro = parseString(pr2);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Display")) {
+ display = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Body")) {
+ String pr3 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ bodyPro = parseString(pr3);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Spacing")) {
+ String pr4 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ spacingPro = parseString(pr4);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Angle")) {
+ String pr5 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ Size anglePro = parseString(pr5);
+ angle = anglePro.getValue() * Constants.PIXELS_PER_INCH / 25.4f / Double.valueOf(0.017453292519943295D); // (anglePro.getValue()*
+ // 25.4f/Double.valueOf(0.017453292519943295D)/Double.valueOf(3.2257990310669));
+ angle = Math.floor(angle);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Distance")) {
+ String pr6 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ pr6 = pr6.replaceAll("[^0-9.]", "");
+ distance = Double.parseDouble(pr6);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Radius")) {
+ String pr7 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ radiusPro = parseString(pr7);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Value")) {
+ String pr8 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ if (pr8 != "") {
+ value_s = pr8;
+ String pr9 = pr8.replaceAll("[^0-9.]", "");
+ String pr10 = pr8.replaceAll("[^a-zA-Z]", "");
+ if (pr10.equals("pF"))
+ cp = CapacitanceUnit.pF;
+ else if (pr10.equals("nF"))
+ cp = CapacitanceUnit.nF;
+ else if (pr10.equals("F"))
+ cp = CapacitanceUnit.F;
+ else if (pr10.equals("mF"))
+ cp = CapacitanceUnit.mF;
+ else if (pr10.equals("uF"))
+ cp = CapacitanceUnit.uF;
+ else if (pr10.equals("K"))
+ ru = ResistanceUnit.K;
+ else if (pr10.equals("M"))
+ ru = ResistanceUnit.M;
+ else if (pr10.equals("R"))
+ ru = ResistanceUnit.R;
+ value = Double.parseDouble(pr9);
+
+ }
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Transparency")) {
+ String p11 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ p11 = p11.replaceAll("[^0-9.]", "");
+ transparency = (int) (Double.parseDouble(p11) * 100);
+ } else if (propertyList.item(j).getAttributes().getNamedItem("name").getNodeValue()
+ .equalsIgnoreCase("Pins")) {
+ String p12 = propertyList.item(j).getAttributes().getNamedItem("value").getNodeValue();
+ p12 = p12.replaceAll("[^0-9.]", "");
+ pins = Integer.parseInt(p12);
+ }
+ }
+ }
+
+ ArrayList tacke = new ArrayList();
+
+ for (int k = 1; k < pointList.getLength(); k += 2) {
+ int Iks = Integer.parseInt(pointList.item(k).getAttributes().getNamedItem("x").getNodeValue());
+ int Ipsilon = Integer.parseInt(pointList.item(k).getAttributes().getNamedItem("y").getNodeValue());
+ tacke.add(new Point(Iks, Ipsilon));
+ }
+
+
+ if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Blank Board")) {
+ AbstractBoard board = new BlankBoard();
+ if (cl != null) {
+ board.setBoardColor(cl);
+ }
+ board.setBorderColor(Color.black);
+ if (com_name != "") {
+ board.setName(com_name);
+ } else {
+ board.setName("Main board");
+ }
+ board.setControlPoint(tacke.get(0), 0);
+ board.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(board);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Perfboard")) {
+ PerfBoard board = new PerfBoard();
+ board.setBoardColor(Color.white);
+ board.setBorderColor(Color.black);
+ if (com_name != "") {
+ board.setName(com_name);
+ } else {
+ board.setName("Main board");
+ }
+ board.setSpacing(new Size(0.07, SizeUnit.in));
+ board.setControlPoint(tacke.get(0), 0);
+ board.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(board);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Copper Trace")) {
+ CopperTrace trace = new CopperTrace();
+ if (com_name != "") {
+ trace.setName(com_name);
+ } else {
+ trace.setName("t");
+ }
+ if (cl != null) {
+ trace.setLeadColor(cl);
+ }
+ trace.setThickness(thicknessPro);
+ trace.setControlPoint(tacke.get(0), 0);
+ trace.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(trace);
+
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Copper Trace Curved")) {
+ CurvedTrace trace = new CurvedTrace();
+ if (com_name != "") {
+ trace.setName(com_name);
+ } else {
+ trace.setName("t");
+ }
+ if (cl != null) {
+ trace.setLeadColor(cl);
+ }
+ trace.setThickness(thicknessPro);
+ trace.setControlPoint(tacke.get(0), 0);
+ trace.setControlPoint(tacke.get(1), 1);
+ trace.setControlPoint(tacke.get(2), 2);
+ trace.setControlPoint(tacke.get(3), 3);
+ project.getComponents().add(trace);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Eyelet")) {
+ Eyelet eyelet = new Eyelet();
+ if (com_name != "") {
+ eyelet.setName(com_name);
+ } else {
+ eyelet.setName("eyelet");
+ }
+ eyelet.setSize(sizePro);
+ eyelet.setControlPoint(tacke.get(0), 0);
+ project.getComponents().add(eyelet);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Solder pad")) {
+ SolderPad pad = new SolderPad();
+ if (com_name != "") {
+ pad.setName(com_name);
+ } else
+ pad.setName("pad");
+ pad.setSize(sizePro);
+ if (shape.equals("square")) {
+ pad.setType(SolderPad.Type.SQUARE); // type is changed from static to public static
+ } else
+ pad.setType(SolderPad.Type.ROUND);
+ pad.setControlPoint(tacke.get(0), 0);
+ project.getComponents().add(pad);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Stripboard")) {
+ VeroBoard board = new VeroBoard();
+ if (com_name != "") {
+ board.setName(com_name);
+ } else {
+ board.setName("Main board");
+ }
+ board.setControlPoint(tacke.get(0), 0);
+ board.setControlPoint(tacke.get(1), 1);
+ board.setSpacing(new Size(0.08, SizeUnit.in));
+ project.getComponents().add(board);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Trace Cut")) {
+ TraceCut cut = new TraceCut();
+ if (com_name != "") {
+ cut.setName(com_name);
+ } else
+ cut.setName("cut");
+ cut.setControlPoint(tacke.get(0), 0);
+ project.getComponents().add(cut);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Switch")) {
+ MiniToggleSwitch sw = new MiniToggleSwitch();
+ sw.setValue(ToggleSwitchType.DPDT);
+ if (com_name != "") {
+ sw.setName(com_name);
+ } else
+ sw.setName("sw");
+ Point point;
+ int x = (int) (tacke.get(0).getX() + 20);
+ int y = (int) (tacke.get(0).getY() + 10);
+ point = new Point(x, y);
+ sw.setSpacing(new Size(0.1, SizeUnit.in));
+ sw.setControlPoint(point, 0);
+ x = (int) (tacke.get(0).getX() + 40);
+ y = (int) (tacke.get(0).getY() + 10);
+ point = new Point(x, y);
+ sw.setControlPoint(point, 1);
+ x = (int) (tacke.get(0).getX() + 20);
+ y = (int) (tacke.get(0).getY() + 30);
+ point = new Point(x, y);
+ sw.setControlPoint(point, 2);
+ x = (int) (tacke.get(0).getX() + 40);
+ y = (int) (tacke.get(0).getY() + 30);
+ point = new Point(x, y);
+ sw.setControlPoint(point, 3);
+ x = (int) (tacke.get(0).getX() + 20);
+ y = (int) (tacke.get(0).getY() + 50);
+ point = new Point(x, y);
+ sw.setControlPoint(point, 4);
+ x = (int) (tacke.get(0).getX() + 40);
+ y = (int) (tacke.get(0).getY() + 50);
+ point = new Point(x, y);
+ sw.setControlPoint(point, 5);
+ project.getComponents().add(sw);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Wire")) {
+ HookupWire hw = new HookupWire();
+ if (com_name != "") {
+ hw.setName(com_name);
+ } else
+ hw.setName("hookup_wire");
+ ArrayList awgt = new ArrayList();
+ awgt.add(2 * 3.264);
+ awgt.add(2 * 2.588);
+ awgt.add(2 * 2.053);
+ awgt.add(2 * 1.628);
+ awgt.add(2 * 1.291);
+ awgt.add(2 * 1.024);
+ awgt.add(2 * 0.812);
+ awgt.add(2 * 0.644);
+ awgt.add(2 * 0.511);
+ awgt.add(2 * 0.405);
+ awgt.add(2 * 0.321);
+ awgt.add(2 * 0.255);
+ int num = 0;
+ for (int q = 1; q < awgt.size(); q++) {
+ if (thicknessPro.getValue() <= awgt.get(q - 1) && thicknessPro.getValue() > awgt.get(q)) {
+ num = q - 1;
+ }
+ }
+ num = num * 2 + 8;
+ if (num == 8)
+ hw.setGauge(AWG._8);
+ else if (num == 10)
+ hw.setGauge(AWG._10);
+ else if (num == 12)
+ hw.setGauge(AWG._12);
+ else if (num == 14)
+ hw.setGauge(AWG._14);
+ else if (num == 16)
+ hw.setGauge(AWG._16);
+ else if (num == 18)
+ hw.setGauge(AWG._18);
+ else if (num == 20)
+ hw.setGauge(AWG._20);
+ else if (num == 22)
+ hw.setGauge(AWG._22);
+ else if (num == 24)
+ hw.setGauge(AWG._24);
+ else if (num == 26)
+ hw.setGauge(AWG._26);
+ else if (num == 28)
+ hw.setGauge(AWG._28);
+ else if (num == 30)
+ hw.setGauge(AWG._30);
+ hw.setLeadColor(cl);
+ hw.setControlPoint(tacke.get(0), 0);
+ hw.setControlPoint(tacke.get(1), 1);
+ hw.setControlPoint(tacke.get(2), 2);
+ hw.setControlPoint(tacke.get(3), 3);
+ project.getComponents().add(hw);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Electrolytic (Axial)")) {
+ AxialElectrolyticCapacitor capacitor = new AxialElectrolyticCapacitor();
+ if (com_name != "") {
+ capacitor.setName(com_name);
+ } else
+ capacitor.setName("A_E_C");
+ capacitor.setAlpha((byte) transparency);
+ if (value != -9999) {
+ capacitor.setValue(new Capacitance(value, cp));
+ }
+ capacitor.setWidth(diameterPro);
+ capacitor.setLength(lengthPro);
+ if (display.equals("Name")) {
+ capacitor.setDisplay(Display.NAME);
+ } else {
+ capacitor.setDisplay(Display.VALUE);
+ }
+ capacitor.setControlPoint(tacke.get(0), 0);
+ capacitor.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(capacitor);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Capacitor (Axial)")) {
+ AxialFilmCapacitor capacitor = new AxialFilmCapacitor();
+ if (com_name != "") {
+ capacitor.setName(com_name);
+ }
+ capacitor.setAlpha((byte) transparency);
+ if (value != -9999) {
+ capacitor.setValue(new Capacitance(value, cp));
+ } else
+ capacitor.setName("A_F_C");
+ if (display.equals("Name")) {
+ capacitor.setDisplay(Display.NAME);
+ } else {
+ capacitor.setDisplay(Display.VALUE);
+ }
+ capacitor.setWidth(thicknessPro);
+ capacitor.setLength(lengthPro);
+ capacitor.setControlPoint(tacke.get(0), 0);
+ capacitor.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(capacitor);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Capacitor (Ceramic)")) {
+ RadialCeramicDiskCapacitor capacitor = new RadialCeramicDiskCapacitor();
+ if (com_name != "") {
+ capacitor.setName(com_name);
+ } else
+ capacitor.setName("Radial_Ceramic_Capacitor");
+ capacitor.setAlpha((byte) transparency);
+ if (value != -9999) {
+ capacitor.setValue(new Capacitance(value, cp));
+ }
+ if (display.equals("Name")) {
+ capacitor.setDisplay(Display.NAME);
+ } else {
+ capacitor.setDisplay(Display.VALUE);
+ }
+ capacitor.setWidth(thicknessPro);
+ capacitor.setLength(lengthPro);
+ capacitor.setControlPoint(tacke.get(0), 0);
+ capacitor.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(capacitor);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Capacitor (Radial)")) {
+ RadialFilmCapacitor capacitor = new RadialFilmCapacitor();
+ if (com_name != "") {
+ capacitor.setName(com_name);
+ } else
+ capacitor.setName("Radial_Film_Capacitor");
+ capacitor.setAlpha((byte) transparency);
+ if (value != -9999) {
+ capacitor.setValue(new Capacitance(value, cp));
+ }
+ if (display.equals("Name")) {
+ capacitor.setDisplay(Display.NAME);
+ } else {
+ capacitor.setDisplay(Display.VALUE);
+ }
+ capacitor.setWidth(thicknessPro);
+ capacitor.setLength(lengthPro);
+ capacitor.setControlPoint(tacke.get(0), 0);
+ capacitor.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(capacitor);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Electrolytic (Radial)")) {
+ RadialElectrolytic capacitor = new RadialElectrolytic();
+ if (com_name != "") {
+ capacitor.setName(com_name);
+ } else
+ capacitor.setName("Radial_Electrolytic_Capacitor");
+ if (value != -9999) {
+ capacitor.setValue(new Capacitance(value, cp));
+ }
+ capacitor.setAlpha((byte) transparency);
+ capacitor.setWidth(diameterPro);
+ capacitor.setHeight(diameterPro);
+ capacitor.setControlPoint(tacke.get(0), 0);
+ capacitor.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(capacitor);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Potentiometer Lug")) {
+ PotentiometerPanel panel = new PotentiometerPanel();
+ if (com_name != "") {
+ panel.setName(com_name);
+ } else
+ panel.setName("potentiometer_panel");
+ if (value != -9999) {
+ panel.setValue(new Resistance(value, ru));
+ }
+ panel.setAlpha((byte) transparency);
+ if (angle > 45 && angle <= 135)
+ panel.setOrientation(Orientation._90);
+ else if (angle > 135 && angle <= 225)
+ panel.setOrientation(Orientation._180);
+ else if (angle > 225 && angle <= 315)
+ panel.setOrientation(Orientation._270);
+ Point point;
+ int x = (int) (tacke.get(0).getX() - 20);
+ int y = (int) tacke.get(0).getY();
+ point = new Point(x, y);
+ panel.setControlPoint(point, 0);
+ panel.setBodyDiameter(bodyPro);
+ panel.setSpacing(spacingPro);
+ panel.setLugDiameter(new Size(0.1, SizeUnit.in));
+ project.getComponents().add(panel);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Resistor")
+ || node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Resistor Standing")) {
+ Resistor resistor = new Resistor();
+ if (com_name != "") {
+ resistor.setName(com_name);
+ } else
+ resistor.setName("resistor");
+ if (value != -9999) {
+ resistor.setValue(new Resistance(value, ru));
+ }
+ resistor.setAlpha((byte) transparency);
+ resistor.setWidth(diameterPro);
+ if (lengthPro.getValue() != 0) {
+ resistor.setLength(lengthPro);
+ }
+ resistor.setControlPoint(tacke.get(0), 0);
+ resistor.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(resistor);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Capacitor Symbol")) {
+ CapacitorSymbol cap = new CapacitorSymbol();
+ if (com_name != "") {
+ cap.setName(com_name);
+ } else
+ cap.setName("cap_simbol");
+ if (value != -9999) {
+ cap.setValue(new Capacitance(value, cp));
+ }
+ cap.setLength(new Size(distance, SizeUnit.mm));
+ cap.setWidth(lengthPro);
+ cap.setBodyColor(cl);
+ cap.setBorderColor(cl);
+ cap.setControlPoint(tacke.get(0), 0);
+ cap.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(cap);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Diode Symbol")) {
+ DiodeSymbol dio = new DiodeSymbol();
+ if (com_name != "") {
+ dio.setName(com_name);
+ } else
+ dio.setName("dp");
+ if (value_s != "") {
+ dio.setValue(value_s);
+ }
+ dio.setBodyColor(cl);
+ dio.setWidth(sizePro);
+ dio.setControlPoint(tacke.get(0), 0);
+ dio.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(dio);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Ground Symbol")) {
+ GroundSymbol gs = new GroundSymbol();
+ if (com_name != "") {
+ gs.setName(com_name);
+ } else
+ gs.setName("gs");
+ gs.setSize(sizePro);
+ gs.setControlPoint(tacke.get(0), 0);
+ project.getComponents().add(gs);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("LED Symbol")) {
+ LEDSymbol ls = new LEDSymbol();
+ if (com_name != "") {
+ ls.setName(com_name);
+ } else
+ ls.setName("ls");
+ if (value_s != "") {
+ ls.setValue(value_s);
+ }
+ ls.setBodyColor(cl);
+ ls.setWidth(sizePro);
+ ls.setControlPoint(tacke.get(0), 0);
+ ls.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(ls);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Pentode")) {
+ PentodeSymbol ps = new PentodeSymbol();
+ if (com_name != "") {
+ ps.setName(com_name);
+ } else
+ ps.setName("ps");
+ ps.setColor(cl);
+ if (value_s != "")
+ ps.setValue(value_s);
+
+ Point point;
+ int x = (int) (tacke.get(0).getX() - 70);
+ int y = (int) tacke.get(0).getY();
+ point = new Point(x, y);
+ ps.setControlPoint(point, 0);
+ project.getComponents().add(ps);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Electrolytic Symbol")) {
+ CapacitorSymbol cs = new CapacitorSymbol();
+ if (com_name != "") {
+ cs.setName(com_name);
+ } else
+ cs.setName("cs");
+ if (value != -9999) {
+ cs.setValue(new Capacitance(value, cp));
+ }
+ cs.setLength(new Size(distance, SizeUnit.mm));
+ cs.setWidth(lengthPro);
+ cs.setPolarized(true);
+ cs.setBorderColor(cl);
+ cs.setControlPoint(tacke.get(0), 0);
+ cs.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(cs);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Opamp Symbol")) {
+ ICSymbol ic = new ICSymbol();
+ if (com_name != "") {
+ ic.setName(com_name);
+ } else
+ ic.setName("ics");
+ if (value_s != "")
+ ic.setValue(value_s);
+ ic.setAlpha((byte) transparency);
+ Point point;
+ int x = (int) (tacke.get(0).getX() - 70);
+ int y = (int) tacke.get(0).getY() - 20;
+ point = new Point(x, y);
+ ic.setControlPoint(point, 0);
+ ic.setIcPointCount(ICPointCount._3);
+ project.getComponents().add(ic);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Potentiometer Symbol")) {
+ PotentiometerSymbol ps = new PotentiometerSymbol();
+ if (com_name != "") {
+ ps.setName(com_name);
+ } else
+ ps.setName("ps");
+ ps.setOrientation(Orientation._270);
+ if (value_s != "")
+ ps.setValue(value_s);
+ ps.setColor(cl);
+ Point point;
+ int x = (int) (tacke.get(0).getX() + 40);
+ int y = (int) tacke.get(0).getY() + 40;
+ point = new Point(x, y);
+ ps.setControlPoint(point, 0);
+ x = (int) (tacke.get(1).getX() + 40);
+ y = (int) tacke.get(1).getY() + 40;
+ point = new Point(x, y);
+ ps.setControlPoint(point, 1);
+ project.getComponents().add(ps);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Resistor Symbol")) {
+ ResistorSymbol rs = new ResistorSymbol();
+ if (com_name != "") {
+ rs.setName(com_name);
+ } else
+ rs.setName("rs");
+ if (value != -9999) {
+ rs.setValue(new Resistance(value, ru));
+ }
+ rs.setWidth(sizePro);
+ rs.setLeadColor(cl);
+ rs.setBorderColor(cl);
+ rs.setBodyColor(cl);
+ rs.setControlPoint(tacke.get(0), 0);
+ rs.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(rs);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Triode")) {
+ TriodeSymbol ts = new TriodeSymbol();
+ if (com_name != "") {
+ ts.setName(com_name);
+ } else
+ ts.setName("ts");
+ if (value_s != "") {
+ ts.setValue(value_s);
+ }
+ ts.setColor(cl);
+ Point point;
+ int x = (int) (tacke.get(0).getX() - 30);
+ int y = (int) tacke.get(0).getY();
+ point = new Point(x, y);
+ ts.setControlPoint(point, 0);
+ project.getComponents().add(ts);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Diode")) {
+ DiodePlastic dp = new DiodePlastic();
+ if (com_name != "") {
+ dp.setName(com_name);
+ } else
+ dp.setName("dp");
+ if (value_s != "") {
+ dp.setValue(value_s);
+ }
+ dp.setAlpha((byte) transparency);
+ if (display.equals("Name"))
+ dp.setDisplay(Display.NAME);
+ else
+ dp.setDisplay(Display.VALUE);
+ dp.setLength(lengthPro);
+ dp.setWidth(diameterPro);
+ dp.setControlPoint(tacke.get(0), 0);
+ dp.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(dp);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("IC DIL")) {
+ DIL_IC dil = new DIL_IC();
+ if (com_name != "") {
+ dil.setName(com_name);
+ } else
+ dil.setName("dil");
+ if (pins == 4)
+ dil.setPinCount(PinCount._4);
+ else if (pins == 6)
+ dil.setPinCount(PinCount._6);
+ else if (pins == 8)
+ dil.setPinCount(PinCount._8);
+ else if (pins == 10)
+ dil.setPinCount(PinCount._10);
+ else if (pins == 12)
+ dil.setPinCount(PinCount._12);
+ else if (pins == 12)
+ dil.setPinCount(PinCount._12);
+ else if (pins == 14)
+ dil.setPinCount(PinCount._14);
+ else if (pins == 16)
+ dil.setPinCount(PinCount._16);
+ else if (pins == 18)
+ dil.setPinCount(PinCount._18);
+ else if (pins == 20)
+ dil.setPinCount(PinCount._20);
+ else if (pins == 22)
+ dil.setPinCount(PinCount._22);
+ else if (pins == 24)
+ dil.setPinCount(PinCount._24);
+ else if (pins == 26)
+ dil.setPinCount(PinCount._26);
+ else if (pins == 28)
+ dil.setPinCount(PinCount._28);
+ else if (pins == 30)
+ dil.setPinCount(PinCount._30);
+ else if (pins == 32)
+ dil.setPinCount(PinCount._32);
+ else if (pins == 34)
+ dil.setPinCount(PinCount._34);
+ else if (pins == 36)
+ dil.setPinCount(PinCount._36);
+ else if (pins == 38)
+ dil.setPinCount(PinCount._38);
+ else if (pins == 40)
+ dil.setPinCount(PinCount._40);
+ else if (pins == 42)
+ dil.setPinCount(PinCount._42);
+ else if (pins == 44)
+ dil.setPinCount(PinCount._44);
+ else if (pins == 46)
+ dil.setPinCount(PinCount._46);
+ else if (pins == 48)
+ dil.setPinCount(PinCount._48);
+ else if (pins == 50)
+ dil.setPinCount(PinCount._50);
+ dil.setAlpha((byte) transparency);
+ if (value_s != "")
+ dil.setValue(value_s);
+ dil.setRowSpacing(spacingPro);
+ dil.setControlPoint(tacke.get(0), 0);
+ dil.setPinSpacing(new Size(0.1d, SizeUnit.in));
+ project.getComponents().add(dil);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Transistor")) {
+ TransistorTO92 trans = new TransistorTO92();
+ if (com_name != "") {
+ trans.setName(com_name);
+ } else
+ trans.setName("tr");
+ trans.setAlpha((byte) transparency);
+ if (value_s != "") {
+ trans.setValue(value_s);
+ }
+ trans.setPinSpacing(new Size(0.1, SizeUnit.in));
+ if (angle == 0) {
+ int x = (int) (tacke.get(0).getX() - 20);
+ int y = (int) (tacke.get(0).getY());
+ Point point = new Point(x, y);
+ trans.setControlPoint(point, 0);
+ x = (int) (tacke.get(1).getX() - 20);
+ y = (int) (tacke.get(1).getY());
+ trans.setControlPoint(point, 1);
+ } else if (angle == 90) {
+ int x = (int) (tacke.get(0).getX());
+ int y = (int) (tacke.get(0).getY() - 20);
+ Point point = new Point(x, y);
+ trans.setControlPoint(point, 0);
+ x = (int) (tacke.get(1).getX());
+ y = (int) (tacke.get(1).getY() - 20);
+ trans.setControlPoint(point, 1);
+ } else if (angle == 180) {
+ int x = (int) (tacke.get(0).getX() + 20);
+ int y = (int) (tacke.get(0).getY());
+ Point point = new Point(x, y);
+ trans.setControlPoint(point, 0);
+ x = (int) (tacke.get(1).getX() + 20);
+ y = (int) (tacke.get(1).getY());
+ trans.setControlPoint(point, 1);
+ } else if (angle == 270) {
+ int x = (int) (tacke.get(0).getX());
+ int y = (int) (tacke.get(0).getY() + 20);
+ Point point = new Point(x, y);
+ trans.setControlPoint(point, 0);
+ x = (int) (tacke.get(1).getX());
+ y = (int) (tacke.get(1).getY() + 20);
+ trans.setControlPoint(point, 1);
+ }
+ Orientation orientation = Orientation._270;
+ if (angle > 45 && angle <= 135)
+ orientation = Orientation.DEFAULT;
+ else if (angle > 135 && angle <= 225)
+ orientation = Orientation._90;
+ else if (angle > 225 && angle <= 315)
+ orientation = Orientation._180;
+ trans.setOrientation(orientation);
+ project.getComponents().add(trans);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Ellipse")) {
+ Ellipse el = new Ellipse();
+ el.setName("elipse");
+ el.setAlpha((byte) transparency);
+ el.setColor(cl);
+ el.setControlPoint(tacke.get(0), 0);
+ el.setControlPoint(tacke.get(1), 1);
+
+ project.getComponents().add(el);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Line")) {
+ Line ln = new Line();
+ ln.setName("ln");
+ ln.setColor(cl);
+ ln.setControlPoint(tacke.get(0), 0);
+ ln.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(ln);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Rectangle")) {
+ Rectangle rec = new Rectangle();
+ rec.setName("rec");
+ rec.setColor(cl);
+ rec.setAlpha((byte) transparency);
+ rec.setEdgeRadius(radiusPro);
+ rec.setControlPoint(tacke.get(0), 0);
+ rec.setControlPoint(tacke.get(1), 1);
+ project.getComponents().add(rec);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Noval Tube Socket")) {
+ TubeSocket ts = new TubeSocket();
+ if (com_name != "") {
+ ts.setName(com_name);
+ } else
+ ts.setName("ts");
+ ts.setAlpha((byte) transparency);
+ if (value_s != "")
+ ts.setValue(value_s);
+ ts.setAngle((int) angle);
+ ts.setControlPoint(tacke.get(0), 0);
+ ts.setBase(Base.B9A);
+ project.getComponents().add(ts);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("BJT Transistor")) {
+ BJTSymbol bjt = new BJTSymbol();
+ if (com_name != "") {
+ bjt.setName(com_name);
+ } else
+ bjt.setName("bjt");
+ bjt.setColor(cl);
+ if (value_s != "")
+ bjt.setValue(value_s);
+ if (angle <= 45 || angle > 315)
+ bjt.setOrientation(Orientation.DEFAULT);
+ else if (angle > 45 && angle <= 135)
+ bjt.setOrientation(Orientation._90);
+ else if (angle > 135 && angle <= 225)
+ bjt.setOrientation(Orientation._180);
+ else if (angle > 225 && angle <= 315)
+ bjt.setOrientation(Orientation._270);
+ Point point;
+ int x = (int) (tacke.get(0).getX() - 20);
+ int y = (int) tacke.get(0).getY();
+ point = new Point(x, y);
+ bjt.setControlPoint(point, 0);
+ project.getComponents().add(bjt);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("Octal Tube Socket")) {
+ TubeSocket ts = new TubeSocket();
+ if (com_name != "") {
+ ts.setName(com_name);
+ } else
+ ts.setName("ts");
+ ts.setAlpha((byte) transparency);
+ if (value_s != "")
+ ts.setValue(value_s);
+ ts.setAngle((int) angle);
+ ts.setControlPoint(tacke.get(0), 0);
+ ts.setBase(Base.OCTAL);
+ project.getComponents().add(ts);
+ } else if (node.getAttributes().getNamedItem("name").getNodeValue().equalsIgnoreCase("7-pin Tube Socket")) {
+ TubeSocket ts = new TubeSocket();
+ if (com_name != "") {
+ ts.setName(com_name);
+ } else
+ ts.setName("ts");
+ ts.setAlpha((byte) transparency);
+ if (value_s != "")
+ ts.setValue(value_s);
+ ts.setAngle((int) angle);
+
+ ts.setControlPoint(tacke.get(0), 0);
+ ts.setBase(Base.B7G);
+ project.getComponents().add(ts);
+ }
+ } else {
+ LOG.debug("Unrecognized node name found: " + node.getNodeName());
+ }
+ }
+ }
return project;
}
diff --git a/diylc/diylc-swing/.classpath b/diylc/diylc-swing/.classpath
index 0c6b9894..2b58f436 100644
--- a/diylc/diylc-swing/.classpath
+++ b/diylc/diylc-swing/.classpath
@@ -11,6 +11,7 @@
+
diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar
index 49cb9c07..01d4bf1a 100644
Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ
diff --git a/diylc/diylc-swing/lib/jep-2.4.1.jar b/diylc/diylc-swing/lib/jep-2.4.1.jar
new file mode 100644
index 00000000..0aea3e52
Binary files /dev/null and b/diylc/diylc-swing/lib/jep-2.4.1.jar differ
diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar
index 86a7d774..df9bc2ac 100644
Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ
diff --git a/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java b/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java
index 12954b9a..f1a4bfb1 100644
--- a/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java
+++ b/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java
@@ -201,7 +201,7 @@ public class DIYLCStarter {
static void renderSplashFrame(SplashScreen splash, Graphics2D g, int frame) {
g.setComposite(AlphaComposite.Clear);
getSplash().paintIcon(null, g, 0, 0);
- g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.7f));
+ g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.7f - frame * 0.007f));
getResistor().paintIcon(null, g, resistorTarget.x - pxPerFrame * frame, resistorTarget.y);
getFilm().paintIcon(null, g, filmTarget.x, filmTarget.y + pxPerFrame * frame);
getElectrolytic().paintIcon(null, g, electrolyticTarget.x, electrolyticTarget.y - pxPerFrame * frame);
diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml
index b1285894..7aa296a7 100644
--- a/diylc/diylc-swing/update.xml
+++ b/diylc/diylc-swing/update.xml
@@ -1758,6 +1758,10 @@
2017-04-25 00:00:00.000 CET
+
+ NEW_FEATURE
+ Import files created in DIYLC v2
+
NEW_FEATURE
Ability to force components to the front or back of other components even outisde their designated layers, allowing placing components or jumpers below boards, etc.
@@ -1800,7 +1804,7 @@
IMPROVEMENT
- Changed border color oemory bar in bottom-right corner not to be red under OSX
+ Changed border color of memory status bar in bottom-right corner not to be red under OSX
https://github.com/bancika/diy-layout-creator/releases