diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java
index 3fb764c9..0df387dd 100644
--- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java
+++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java
@@ -74,7 +74,7 @@ public class HelpMenuPlugin implements IPlugIn {
aboutDialog = DialogFactory.getInstance().createAboutDialog("DIY Layout Creator",
IconLoader.IconLarge.getIcon(),
plugInPort.getCurrentVersionNumber().toString(), "Branislav Stojkovic",
- "diylc.org", "bancika@gmail.com", "");
+ "https://github.com/bancika/diy-layout-creator", "bancika@gmail.com", "");
}
return aboutDialog;
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/.classpath b/ diy-layout-creator --username bancika@gmail.com/diylc-core/.classpath
index 6c90a9c8..1d2aca0d 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/.classpath
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/.classpath
@@ -2,12 +2,12 @@
-
+
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar
index ad37f99a..7c39bd34 100644
Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar differ
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java
index ed3404ac..ff1459d6 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java
@@ -2,7 +2,7 @@ package org.diylc.common;
public enum Display {
- NAME, VALUE;
+ NAME, VALUE, NONE, BOTH;
@Override
public String toString() {
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java
index df01ae57..26d8874f 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java
@@ -33,8 +33,7 @@ import org.diylc.utils.Constants;
*
* @author Branislav Stojkovic
*/
-public abstract class AbstractLeadedComponent extends
- AbstractTransparentComponent {
+public abstract class AbstractLeadedComponent extends AbstractTransparentComponent {
private static final long serialVersionUID = 1L;
@@ -45,8 +44,7 @@ public abstract class AbstractLeadedComponent extends
protected Size length;
protected Size width;
- protected Point[] points = new Point[] {
- new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0),
+ protected Point[] points = new Point[] { new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0),
new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), 0) };
protected Color bodyColor = Color.white;
protected Color borderColor = Color.black;
@@ -68,44 +66,35 @@ public abstract class AbstractLeadedComponent extends
}
@Override
- public void draw(Graphics2D g2d, ComponentState componentState,
- boolean outlineMode, Project project,
+ public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project,
IDrawingObserver drawingObserver) {
double distance = points[0].distance(points[1]);
Shape shape = getBodyShape();
// If there's no body, just draw the line connecting the ending points.
if (shape == null) {
drawLead(g2d, componentState);
- } else if (supportsStandingMode()
- && length.convertToPixels() > points[0].distance(points[1])) {
+ } else if (supportsStandingMode() && length.convertToPixels() > points[0].distance(points[1])) {
// When ending points are too close draw the component in standing
// mode.
int width = getClosestOdd(this.width.convertToPixels());
- Shape body = new Ellipse2D.Double((getFlipStanding() ? points[1]
- : points[0]).x
- - width / 2, (getFlipStanding() ? points[1] : points[0]).y
- - width / 2, width, width);
+ Shape body = new Ellipse2D.Double((getFlipStanding() ? points[1] : points[0]).x - width / 2,
+ (getFlipStanding() ? points[1] : points[0]).y - width / 2, width, width);
Composite oldComposite = g2d.getComposite();
if (alpha < MAX_ALPHA) {
- g2d.setComposite(AlphaComposite.getInstance(
- AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
+ g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
}
- g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR
- : getStandingBodyColor());
+ g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getStandingBodyColor());
g2d.fill(body);
g2d.setComposite(oldComposite);
Color finalBorderColor;
if (outlineMode) {
- Theme theme = (Theme) ConfigurationManager.getInstance()
- .readObject(IPlugInPort.THEME_KEY,
- Constants.DEFAULT_THEME);
+ Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY,
+ Constants.DEFAULT_THEME);
finalBorderColor = componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
- : theme.getOutlineColor();
+ || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme.getOutlineColor();
} else {
finalBorderColor = componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
- : borderColor;
+ || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor;
}
g2d.setColor(finalBorderColor);
@@ -116,8 +105,7 @@ public abstract class AbstractLeadedComponent extends
} else {
// Normal mode with component body in the center and two lead parts.
Rectangle shapeRect = shape.getBounds();
- Double theta = Math.atan2(points[1].y - points[0].y, points[1].x
- - points[0].x);
+ Double theta = Math.atan2(points[1].y - points[0].y, points[1].x - points[0].x);
// Go back to the original transformation to draw leads.
if (!outlineMode) {
AffineTransform textTransform = g2d.getTransform();
@@ -127,36 +115,25 @@ public abstract class AbstractLeadedComponent extends
// 0.5f));
// }
int leadThickness = getClosestOdd(getLeadThickness());
- double leadLength = (distance - calculatePinSpacing(shapeRect))
- / 2 - leadThickness / 2;
- g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(
- leadThickness));
- Color leadColor = shouldShadeLeads() ? getLeadColorForPainting(
- componentState).darker()
+ double leadLength = (distance - calculatePinSpacing(shapeRect)) / 2 - leadThickness / 2;
+ g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
+ Color leadColor = shouldShadeLeads() ? getLeadColorForPainting(componentState).darker()
: getLeadColorForPainting(componentState);
g2d.setColor(leadColor);
int endX = (int) (points[0].x + Math.cos(theta) * leadLength);
- int endY = (int) Math.round(points[0].y + Math.sin(theta)
- * leadLength);
+ int endY = (int) Math.round(points[0].y + Math.sin(theta) * leadLength);
g2d.drawLine(points[0].x, points[0].y, endX, endY);
- endX = (int) (points[1].x + Math.cos(theta - Math.PI)
- * leadLength);
- endY = (int) Math.round(points[1].y + Math.sin(theta - Math.PI)
- * leadLength);
+ endX = (int) (points[1].x + Math.cos(theta - Math.PI) * leadLength);
+ endY = (int) Math.round(points[1].y + Math.sin(theta - Math.PI) * leadLength);
g2d.drawLine(points[1].x, points[1].y, endX, endY);
if (shouldShadeLeads()) {
- g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(
- leadThickness - 2));
+ g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
leadColor = getLeadColorForPainting(componentState);
g2d.setColor(leadColor);
- g2d.drawLine(points[0].x, points[0].y,
- (int) (points[0].x + Math.cos(theta) * leadLength),
+ g2d.drawLine(points[0].x, points[0].y, (int) (points[0].x + Math.cos(theta) * leadLength),
(int) (points[0].y + Math.sin(theta) * leadLength));
- g2d.drawLine(points[1].x, points[1].y,
- (int) (points[1].x + Math.cos(theta - Math.PI)
- * leadLength), (int) (points[1].y + Math
- .sin(theta - Math.PI)
- * leadLength));
+ g2d.drawLine(points[1].x, points[1].y, (int) (points[1].x + Math.cos(theta - Math.PI) * leadLength),
+ (int) (points[1].y + Math.sin(theta - Math.PI) * leadLength));
}
g2d.setTransform(textTransform);
}
@@ -173,19 +150,16 @@ public abstract class AbstractLeadedComponent extends
length = getLength().convertToPixels();
}
oldTransform = g2d.getTransform();
- g2d.translate((points[0].x + points[1].x - length) / 2,
- (points[0].y + points[1].y - width) / 2);
+ g2d.translate((points[0].x + points[1].x - length) / 2, (points[0].y + points[1].y - width) / 2);
g2d.rotate(theta, length / 2, width / 2);
// Draw body.
Composite oldComposite = g2d.getComposite();
if (alpha < MAX_ALPHA) {
- g2d.setComposite(AlphaComposite.getInstance(
- AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
+ g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA));
}
if (bodyColor != null) {
if (bodyColor != null) {
- g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR
- : bodyColor);
+ g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor);
g2d.fill(shape);
}
}
@@ -194,16 +168,13 @@ public abstract class AbstractLeadedComponent extends
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
Color finalBorderColor;
if (outlineMode) {
- Theme theme = (Theme) ConfigurationManager.getInstance()
- .readObject(IPlugInPort.THEME_KEY,
- Constants.DEFAULT_THEME);
+ Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY,
+ Constants.DEFAULT_THEME);
finalBorderColor = componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
- : theme.getOutlineColor();
+ || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme.getOutlineColor();
} else {
finalBorderColor = componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
- : borderColor;
+ || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor;
}
g2d.setColor(finalBorderColor);
g2d.draw(shape);
@@ -259,49 +230,46 @@ public abstract class AbstractLeadedComponent extends
}
Color finalLabelColor;
if (outlineMode) {
- Theme theme = (Theme) ConfigurationManager.getInstance()
- .readObject(IPlugInPort.THEME_KEY,
- Constants.DEFAULT_THEME);
- finalLabelColor = componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED
- : theme.getOutlineColor();
+ Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY,
+ Constants.DEFAULT_THEME);
+ finalLabelColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING
+ ? LABEL_COLOR_SELECTED : theme.getOutlineColor();
} else {
- finalLabelColor = componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED
- : labelColor;
+ finalLabelColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING
+ ? LABEL_COLOR_SELECTED : labelColor;
}
g2d.setColor(finalLabelColor);
FontMetrics fontMetrics = g2d.getFontMetrics();
- String label = display == Display.NAME ? getName()
- : (getValue() == null ? "" : getValue().toString());
+ String label = "";
+ label = display == Display.NAME ? getName() : (getValue() == null ? "" : getValue().toString());
+ if (display == Display.NONE) {
+ label = "";
+ }
+ if (display == Display.BOTH) {
+ label = getName() + " " + (getValue() == null ? "" : getValue().toString());
+ }
Rectangle2D textRect = fontMetrics.getStringBounds(label, g2d);
// Don't offset in outline mode.
- int offset = outlineMode ? 0 : getLabelOffset((int) length,
- (int) width);
+ int offset = outlineMode ? 0 : getLabelOffset((int) length, (int) width);
// Adjust label angle if needed to make sure that it's readable.
- if ((theta >= Math.PI / 2 && theta <= Math.PI)
- || (theta < -Math.PI / 2 && theta > -Math.PI)) {
+ if ((theta >= Math.PI / 2 && theta <= Math.PI) || (theta < -Math.PI / 2 && theta > -Math.PI)) {
g2d.rotate(Math.PI, length / 2, width / 2);
offset = -offset;
}
- g2d.drawString(label, (int) (length - textRect.getWidth()) / 2
- + offset, calculateLabelYCoordinate(shapeRect, textRect,
- fontMetrics));
+ g2d.drawString(label, (int) (length - textRect.getWidth()) / 2 + offset,
+ calculateLabelYCoordinate(shapeRect, textRect, fontMetrics));
g2d.setTransform(oldTransform);
}
}
private void drawLead(Graphics2D g2d, ComponentState componentState) {
- g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(
- getLeadThickness()));
- Color leadColor = shouldShadeLeads() ? getLeadColorForPainting(
- componentState).darker()
+ g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(getLeadThickness()));
+ Color leadColor = shouldShadeLeads() ? getLeadColorForPainting(componentState).darker()
: getLeadColorForPainting(componentState);
g2d.setColor(leadColor);
g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y);
if (shouldShadeLeads()) {
- g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(
- getLeadThickness() - 2));
+ g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(getLeadThickness() - 2));
leadColor = getLeadColorForPainting(componentState);
g2d.setColor(leadColor);
g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y);
@@ -312,10 +280,8 @@ public abstract class AbstractLeadedComponent extends
// Do nothing.
}
- protected int calculateLabelYCoordinate(Rectangle2D shapeRect,
- Rectangle2D textRect, FontMetrics fontMetrics) {
- return (int) (shapeRect.getHeight() - textRect.getHeight()) / 2
- + fontMetrics.getAscent();
+ protected int calculateLabelYCoordinate(Rectangle2D shapeRect, Rectangle2D textRect, FontMetrics fontMetrics) {
+ return (int) (shapeRect.getHeight() - textRect.getHeight()) / 2 + fontMetrics.getAscent();
}
protected boolean shouldShadeLeads() {
@@ -352,8 +318,7 @@ public abstract class AbstractLeadedComponent extends
* Controls how component shape should be placed relative to start and end
* point.
*
- * @return
- * true if shape rect should be used to center the component or false
+ * @return true if shape rect should be used to center the component or false
* to place the component relative to length and
* width values.
*/
@@ -372,8 +337,7 @@ public abstract class AbstractLeadedComponent extends
* @return default lead color. Override this method to change it.
*/
protected Color getLeadColorForPainting(ComponentState componentState) {
- return componentState == ComponentState.SELECTED
- || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
+ return componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
: getLeadColor();
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java
index 28811558..c9df7aa8 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java
@@ -591,7 +591,7 @@ public class Presenter implements IPlugInPort {
}
} else {
// Otherwise just select that one component.
- if (button == BUTTON1
+ if (button == BUTTON1 || (button == BUTTON3 && newSelection.size() == 1)
|| !newSelection.contains(topComponent)) {
newSelection.clear();
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath b/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath
index 0e74bfcf..dc0adbd6 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath
@@ -1,10 +1,10 @@
-
+
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar
index a8367b9a..6e445fa1 100644
Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar differ
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java
index 0457be55..9d8dffa8 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java
@@ -346,7 +346,14 @@ public class MiniRelay extends AbstractTransparentComponent {
}
g2d.setColor(finalLabelColor);
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
- String label = display == Display.NAME ? getName() : getValue();
+ String label="";
+ label = display == Display.VALUE ? getValue() : getName();
+ if (display==Display.NONE) {
+ label="";
+ }
+ if (display==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
int textWidth = (int) (rect.getWidth());
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java
index 20dccb70..39fad24c 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java
@@ -13,6 +13,7 @@ import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import org.diylc.appframework.miscutils.ConfigurationManager;
+import org.diylc.common.Display;
import org.diylc.common.IPlugInPort;
import org.diylc.common.ObjectCache;
import org.diylc.common.Orientation;
@@ -45,9 +46,11 @@ public class TrimmerPotentiometer extends AbstractPotentiometer {
public static Color PIN_COLOR = Color.decode("#00B2EE");
public static Color PIN_BORDER_COLOR = PIN_COLOR.darker();
public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in);
+ protected static Display DISPLAY = Display.NAME;
protected Color bodyColor = BODY_COLOR;
protected Color borderColor = BORDER_COLOR;
+ protected static Display display = DISPLAY;
// Array of 7 elements: 3 lug connectors, 1 pot body and 3 lugs
transient protected Shape[] body = null;
@@ -333,7 +336,16 @@ public class TrimmerPotentiometer extends AbstractPotentiometer {
int x = (panelWidth - textWidth) / 2;
int y = (panelHeight - textHeight) / 2 + fontMetrics.getAscent();
- g2d.drawString(getName(), (int) (bodyRect.getX() + x), (int) (bodyRect
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue().toString();
+ if (getDisplay() ==Display.NONE) {
+ label="";
+ }
+ if (getDisplay() ==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
+
+ g2d.drawString(label, (int) (bodyRect.getX() + x), (int) (bodyRect
.getY() + y));
}
@@ -386,6 +398,18 @@ public class TrimmerPotentiometer extends AbstractPotentiometer {
public void setBodyColor(Color bodyColor) {
this.bodyColor = bodyColor;
}
+
+ @EditableProperty
+ public Display getDisplay() {
+ if (display == null) {
+ display = Display.VALUE;
+ }
+ return display;
+ }
+
+ public void setDisplay(Display display) {
+ this.display = display;
+ }
@EditableProperty(name = "Border")
public Color getBorderColor() {
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java
index d556e8ec..f7d718e4 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java
@@ -4,6 +4,7 @@ import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Shape;
+import java.awt.geom.AffineTransform;
import org.diylc.appframework.miscutils.ConfigurationManager;
import org.diylc.common.Display;
@@ -28,11 +29,13 @@ public abstract class AbstractTransistorSymbol extends AbstractComponent
public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in);
public static Color COLOR = Color.black;
-
+
+ public static SymbolFlipping FLIPPING = SymbolFlipping.NONE;
protected String value = "";
protected Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0),
new Point(0, 0) };
protected Color color = COLOR;
+ protected SymbolFlipping flipping = FLIPPING;
protected Display display = Display.NAME;
transient protected Shape[] body;
@@ -67,6 +70,32 @@ public abstract class AbstractTransistorSymbol extends AbstractComponent
Shape[] body = getBody();
+ int rotation=0;
+ //determine rotation using control points
+ if (controlPoints[1].x==controlPoints[2].x)
+ {
+ if (controlPoints[0].x>controlPoints[1].x)
+ {
+ rotation=180;
+ }
+ }
+ if (controlPoints[1].y==controlPoints[2].y)
+ {
+ rotation=90;
+ if (controlPoints[0].y>controlPoints[1].y)
+ {
+ rotation=270;
+ }
+ }
+ AffineTransform old = g2d.getTransform();
+ g2d.rotate(Math.toRadians(rotation),controlPoints[0].x,controlPoints[0].y);
+
+ if (this.flipping==SymbolFlipping.Y){
+ g2d.translate(0,controlPoints[0].y);
+ g2d.scale(1, -1);
+ g2d.translate(0, -1*controlPoints[0].y);
+ }
+
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2));
g2d.draw(body[0]);
@@ -74,6 +103,7 @@ public abstract class AbstractTransistorSymbol extends AbstractComponent
g2d.draw(body[1]);
g2d.fill(body[2]);
+ g2d.setTransform(old);
// Draw label
g2d.setFont(LABEL_FONT);
@@ -90,7 +120,16 @@ public abstract class AbstractTransistorSymbol extends AbstractComponent
: LABEL_COLOR;
}
g2d.setColor(finalLabelColor);
- drawCenteredText(g2d, display == Display.VALUE ? getValue() : getName(),
+ String label="";
+ label = display == Display.NAME ? getName()
+ : (getValue() == null ? "" : getValue().toString());
+ if (display==Display.NONE) {
+ label="";
+ }
+ if (display==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
+ drawCenteredText(g2d, label,
x + pinSpacing * 2, y, HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
}
@@ -144,6 +183,15 @@ public abstract class AbstractTransistorSymbol extends AbstractComponent
// Invalidate body
body = null;
}
+
+ @EditableProperty
+ public SymbolFlipping getFlipping() {
+ return flipping;
+ }
+
+ public void setFlipping(SymbolFlipping flipping) {
+ this.flipping = flipping;
+ }
@EditableProperty
public Color getColor() {
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java
index 1e897985..9dc21c0a 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java
@@ -12,7 +12,7 @@ import org.diylc.core.IDIYComponent;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty;
-@ComponentDescriptor(name = "BJT Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "Bipolar junction transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, rotatable = false)
+@ComponentDescriptor(name = "BJT Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "Bipolar junction transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, rotatable = true)
public class BJTSymbol extends AbstractTransistorSymbol {
private static final long serialVersionUID = 1L;
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java
index 6636e971..23755e5f 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java
@@ -18,6 +18,7 @@ import org.diylc.common.IPlugInPort;
import org.diylc.common.ObjectCache;
import org.diylc.common.Orientation;
import org.diylc.components.AbstractTransparentComponent;
+import org.diylc.components.misc.Label;
import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent;
import org.diylc.core.IDrawingObserver;
@@ -44,6 +45,7 @@ public class DIL_IC extends AbstractTransparentComponent {
public static int EDGE_RADIUS = 6;
public static Size PIN_SIZE = new Size(0.04d, SizeUnit.in);
public static Size INDENT_SIZE = new Size(0.07d, SizeUnit.in);
+ public static DisplayNumbers DISPLAY_NUMBERS = DisplayNumbers.NO;
private String value = "";
private Orientation orientation = Orientation.DEFAULT;
@@ -56,6 +58,7 @@ public class DIL_IC extends AbstractTransparentComponent {
private Color borderColor = BORDER_COLOR;
private Color labelColor = LABEL_COLOR;
private Color indentColor = INDENT_COLOR;
+ private DisplayNumbers displayNumbers = DISPLAY_NUMBERS;
// new Point(0, pinSpacing.convertToPixels()),
// new Point(0, 2 * pinSpacing.convertToPixels()),
// new Point(0, 3 * pinSpacing.convertToPixels()),
@@ -334,7 +337,14 @@ public class DIL_IC extends AbstractTransparentComponent {
}
g2d.setColor(finalLabelColor);
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
- String label = display == Display.NAME ? getName() : getValue();
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ if (getDisplay() ==Display.NONE) {
+ label="";
+ }
+ if (getDisplay() ==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
int textWidth = (int) (rect.getWidth());
@@ -343,6 +353,60 @@ public class DIL_IC extends AbstractTransparentComponent {
int x = bounds.x + (bounds.width - textWidth) / 2;
int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent();
g2d.drawString(label, x, y);
+
+ //draw pin numbers
+ int pinNo=0;
+ int j=0;
+ int k=0;
+ int pinSize=(int)PIN_SIZE.convertToPixels();
+ for (Point point : controlPoints) {
+ pinNo++;
+
+ //determine points relative to rotation
+ int textX1=point.x-2*pinSize;
+ int textY1=point.y+pinSize/2;
+ int textX2=point.x+pinSize;
+ int textY2=point.y+pinSize/2;
+ if (orientation==Orientation._90) {
+ textX2=textX2-pinSize-pinSize/2;
+ textY2=textY2+pinSize;
+ textX1=textX1+2*pinSize-pinSize/2;
+ textY1=textY1-pinSize;
+ }
+ if (orientation==Orientation._180) {
+ textX1=textX1+3*pinSize;
+ textX2=textX2-3*pinSize;
+ }
+ if (orientation==Orientation._270) {
+ textX1 = textX1+pinSize+pinSize/2;
+ textY1 = textY1+pinSize;
+ textX2 = textX2-pinSize-pinSize/2;
+ textY2 = textY2-pinSize;
+ }
+
+ g2d.setFont(LABEL_FONT.deriveFont((float)(Label.LABEL_FONT.getSize2D()*0.66)));
+ if (displayNumbers==DisplayNumbers.DIP){
+ if (pinNo>pinCount.getValue()/2) {
+ g2d.drawString(Integer.toString(pinCount.getValue()-j), textX1, textY1);
+ j++;
+ }
+ else
+ {
+ g2d.drawString(Integer.toString(pinNo), textX2, textY2);
+ }
+ }
+ if (displayNumbers==DisplayNumbers.CONNECTOR){
+ if (pinNo>pinCount.getValue()/2) {
+ k++;
+ g2d.drawString(Integer.toString(pinNo-(pinCount.getValue()/2)+k), textX1, textY1);
+ }
+ else
+ {
+ g2d.drawString(Integer.toString(pinNo+j), textX2, textY2);
+ j++;
+ }
+ }
+ }
}
@Override
@@ -407,6 +471,15 @@ public class DIL_IC extends AbstractTransparentComponent {
public void setIndentColor(Color indentColor) {
this.indentColor = indentColor;
}
+
+ @EditableProperty(name = "Display pin numbers")
+ public DisplayNumbers getDisplayNumbers() {
+ return displayNumbers;
+ }
+
+ public void setDisplayNumbers(DisplayNumbers numbers) {
+ this.displayNumbers=numbers;
+ }
public static enum PinCount {
@@ -421,4 +494,14 @@ public class DIL_IC extends AbstractTransparentComponent {
return Integer.parseInt(toString());
}
}
+
+ public enum DisplayNumbers {
+
+ NO, DIP, CONNECTOR;
+
+ @Override
+ public String toString() {
+ return name();
+ }
+ }
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java
index cbd4f3f7..5e83e2f9 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java
@@ -102,7 +102,15 @@ public class ICSymbol extends AbstractTransparentComponent {
}
g2d.setColor(finalLabelColor);
int x = (controlPoints[0].x + controlPoints[2].x) / 2;
- drawCenteredText(g2d, display == Display.VALUE ? getValue() : getName(), x,
+ String label="";
+ label = display == Display.VALUE ? getValue() : getName();
+ if (display==Display.NONE) {
+ label="";
+ }
+ if (display==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
+ drawCenteredText(g2d, label, x,
controlPoints[0].y + pinSpacing, HorizontalAlignment.CENTER,
VerticalAlignment.CENTER);
// Draw +/- markers
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java
index 6f76a28c..e4ef88c3 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java
@@ -10,7 +10,7 @@ import org.diylc.core.IDIYComponent;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty;
-@ComponentDescriptor(name = "JFET Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "JFET transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, rotatable = false)
+@ComponentDescriptor(name = "JFET Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "JFET transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, rotatable = true)
public class JFETSymbol extends AbstractTransistorSymbol {
private static final long serialVersionUID = 1L;
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java
index c5ca68b1..b6dce844 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java
@@ -10,7 +10,7 @@ import org.diylc.core.IDIYComponent;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty;
-@ComponentDescriptor(name = "MOSFET Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "MOSFET transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, rotatable = false)
+@ComponentDescriptor(name = "MOSFET Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "MOSFET transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, rotatable = true)
public class MOSFETSymbol extends AbstractTransistorSymbol {
private static final long serialVersionUID = 1L;
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/SIL_IC.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/SIL_IC.java
index cf4df5ce..31de4c5c 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/SIL_IC.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/SIL_IC.java
@@ -320,7 +320,14 @@ public class SIL_IC extends AbstractTransparentComponent {
}
g2d.setColor(finalLabelColor);
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
- String label = display == Display.NAME ? getName() : getValue();
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ if (getDisplay() ==Display.NONE) {
+ label="";
+ }
+ if (getDisplay() ==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
int textWidth = (int) (rect.getWidth());
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java
index 68d5302b..3feaa36f 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java
@@ -252,7 +252,14 @@ public class TransistorTO1 extends AbstractTransparentComponent {
: getLabelColor();
}
g2d.setColor(finalLabelColor);
- String label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ if (getDisplay() ==Display.NONE) {
+ label="";
+ }
+ if (getDisplay() ==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java
index a3732a58..d1ec4956 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java
@@ -398,7 +398,14 @@ public class TransistorTO220 extends AbstractTransparentComponent {
: LABEL_COLOR;
}
g2d.setColor(finalLabelColor);
- String label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ if (getDisplay() ==Display.NONE) {
+ label="";
+ }
+ if (getDisplay() ==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java
index e2fd7773..e698b7c4 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java
@@ -291,7 +291,14 @@ public class TransistorTO3 extends AbstractTransparentComponent {
: getLabelColor();
}
g2d.setColor(finalLabelColor);
- String label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ if (getDisplay() ==Display.NONE) {
+ label="";
+ }
+ if (getDisplay() ==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java
index 727481e4..236f8074 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java
@@ -288,7 +288,14 @@ public class TransistorTO92 extends AbstractTransparentComponent {
: getLabelColor();
}
g2d.setColor(finalLabelColor);
- String label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ String label="";
+ label = (getDisplay() == Display.NAME) ? getName() : getValue();
+ if (display==Display.NONE) {
+ label="";
+ }
+ if (display==Display.BOTH) {
+ label=getName()+" "+getValue();
+ }
FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont());
Rectangle2D rect = fontMetrics.getStringBounds(label, g2d);
int textHeight = (int) (rect.getHeight());
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/AbstractTubeSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/AbstractTubeSymbol.java
index 04941b56..31e4cb82 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/AbstractTubeSymbol.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/AbstractTubeSymbol.java
@@ -85,8 +85,16 @@ public abstract class AbstractTubeSymbol extends AbstractComponent {
}
g2d.setColor(finalLabelColor);
Point p = getTextLocation();
+ String label="";
+ label = display == Display.VALUE ? getValue() : getName();
+ if (display==Display.NONE) {
+ label="";
+ }
+ if (display==Display.BOTH) {
+ label=getName()+" "+(getValue() == null ? "" : getValue().toString());
+ }
drawCenteredText(g2d,
- display == Display.VALUE ? getValue() : getName(), p.x, p.y,
+ label, p.x, p.y,
HorizontalAlignment.LEFT, VerticalAlignment.TOP);
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath
index 6b78366d..46ccb2bb 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath
@@ -2,7 +2,6 @@
-
@@ -16,5 +15,6 @@
+
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini
index 92012be2..1ae2d02e 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini
@@ -1 +1 @@
--Xms512m -Xmx1024m -Dorg.diylc.scriptRun=true
\ No newline at end of file
+-Xms512m -Xmx1024m -Dorg.diylc.scriptRun=true -Dfile.encoding=UTF-8
\ No newline at end of file
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar
index 16bbc049..6e445fa1 100644
Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar differ
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar
index ad37f99a..7c39bd34 100644
Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar differ
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java
index b70ba2b2..904eeea3 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java
@@ -261,7 +261,7 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
@Override
public EnumSet getSubscribedEventTypes() {
return EnumSet.of(EventType.SELECTION_CHANGED,
- EventType.PROJECT_MODIFIED);
+ EventType.PROJECT_MODIFIED, EventType.PROJECT_LOADED);
}
@Override
@@ -274,6 +274,9 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
undoHandler.stateChanged((Project) params[0], (Project) params[1],
(String) params[2]);
break;
+ case PROJECT_LOADED:
+ undoHandler.reset();
+ break;
}
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java
index 3f203299..11e215de 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java
@@ -72,7 +72,7 @@ public class HelpMenuPlugin implements IPlugIn {
aboutDialog = DialogFactory.getInstance().createAboutDialog("DIY Layout Creator",
IconLoader.IconLarge.getIcon(),
plugInPort.getCurrentVersionNumber().toString(), "Branislav Stojkovic",
- "diylc.org", "bancika@gmail.com", "");
+ "https://github.com/bancika/diy-layout-creator", "bancika@gmail.com", "");
}
return aboutDialog;
}
diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml
index 3211e4d0..eef1fd35 100644
--- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml
+++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml
@@ -1256,6 +1256,46 @@
http://code.google.com/p/diy-layout-creator/downloads/list
+
+
+
+ 3
+ 29
+ 0
+
+ 2016-04-20 20:00:00.000 CET
+
+
+
+ BUG_FIX
+ Issue with losing saved user configuration
+
+
+ BUG_FIX
+ Issue with disabled "Save as Template" context menu item problem, as well as issue with strange rotation and probably few more
+
+
+ BUG_FIX
+ Undo steps kept after opening a new file
+
+
+ NEW_FEATURE
+ Transistors can be rotated and flipped vertically
+
+
+ NEW_FEATURE
+ DIL ICs can show pin numbers
+
+
+ NEW_FEATURE
+ Display both component value and name or neither of them
+
+
+ NEW_FEATURE
+ Potentiometer schematic symbol added
+
+
+ http://code.google.com/p/diy-layout-creator/downloads/list
\ No newline at end of file