Standardize how folded transistors are displayed - updated TO-92 and

TO-1 packages
This commit is contained in:
bancika
2020-04-18 10:19:33 +02:00
parent 297c8d58c1
commit f41a028236
@@ -27,7 +27,6 @@ import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import java.awt.geom.Area; import java.awt.geom.Area;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.awt.geom.Rectangle2D.Double;
import org.diylc.awt.StringUtils; import org.diylc.awt.StringUtils;
import org.diylc.common.HorizontalAlignment; import org.diylc.common.HorizontalAlignment;
@@ -53,6 +52,8 @@ public abstract class AbstractTransistorPackage extends AbstractTransparentCompo
protected Color labelColor = LABEL_COLOR; protected Color labelColor = LABEL_COLOR;
protected TransistorDisplay display = TransistorDisplay.NAME; protected TransistorDisplay display = TransistorDisplay.NAME;
protected boolean folded = false;
public AbstractTransistorPackage() { public AbstractTransistorPackage() {
} }
@@ -205,6 +206,18 @@ public abstract class AbstractTransistorPackage extends AbstractTransparentCompo
this.pinout = pinout; this.pinout = pinout;
} }
@EditableProperty
public boolean getFolded() {
return folded;
}
public void setFolded(boolean folded) {
this.folded = folded;
updateControlPoints();
// Reset body shape;
body = null;
}
@Override @Override
public boolean canPointMoveFreely(int pointIndex) { public boolean canPointMoveFreely(int pointIndex) {
return false; return false;
@@ -229,22 +242,22 @@ public abstract class AbstractTransistorPackage extends AbstractTransparentCompo
Rectangle2D b = a.getBounds2D(); Rectangle2D b = a.getBounds2D();
if (b.getMinX() < minX) if (b.getMinX() < minX)
minX = b.getMinX(); minX = b.getMinX();
if (b.getMaxX() > minX) if (b.getMaxX() > maxX)
maxX = b.getMaxX(); maxX = b.getMaxX();
if (b.getMinY() < minY) if (b.getMinY() < minY)
minY = b.getMinY(); minY = b.getMinY();
if (b.getMaxY() > minY) if (b.getMaxY() > maxY)
maxY = b.getMaxY(); maxY = b.getMaxY();
} }
for (Point p : controlPoints) { for (Point p : controlPoints) {
if (p.getX() < minX) if (p.getX() < minX)
minX = p.getX(); minX = p.getX();
if (p.getX() > minX) if (p.getX() > maxX)
maxX = p.getX(); maxX = p.getX();
if (p.getY() < minY) if (p.getY() < minY)
minY = p.getY() ; minY = p.getY() ;
if (p.getY() > minY) if (p.getY() > maxY)
maxY = p.getY() ; maxY = p.getY();
} }
return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin); return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin);
} }