From 81194fbcabbb92b6bf3ae10b620fe8b18c0327f5 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 22 Dec 2016 15:51:06 +0100 Subject: [PATCH] Glass diode component added --- diylc/diylc-library/lib/diylc-core.jar | Bin 230151 -> 230151 bytes .../components/semiconductors/DiodeGlass.java | 146 ++++++++++++++++++ diylc/diylc-swing/lib/diylc-core.jar | Bin 230151 -> 230151 bytes diylc/diylc-swing/library/main.jar | Bin 342898 -> 345806 bytes diylc/diylc-swing/update.xml | 4 + 5 files changed, 150 insertions(+) create mode 100644 diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeGlass.java diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index e241ccdcae47559932869c726136b294d37fc096..0f24d8582915bb44ca05097bd564aa75dd4aea94 100644 GIT binary patch delta 4689 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 fuArUqt)#J9TuG9DRZ{EhtEgi+RpfrKN=*07 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 { + + private static final long serialVersionUID = 1L; + + public static Size DEFAULT_WIDTH = new Size(0.2, SizeUnit.in); + public static Size DEFAULT_HEIGHT = new Size(0.09, SizeUnit.in); + public static Size MARKER_WIDTH = new Size(1d, SizeUnit.mm); + public static Color INSIDE_COLOR = Color.decode("#E66E31"); + public static Color BODY_COLOR = Color.decode("#E1F0FF"); + public static Color MARKER_COLOR = Color.gray; + public static Color LABEL_COLOR = Color.white; + public static Color BORDER_COLOR = Color.gray; + + private String value = ""; + private Color markerColor = MARKER_COLOR; + private Color insideColor = INSIDE_COLOR; + + public DiodeGlass() { + super(); + this.labelColor = LABEL_COLOR; + this.bodyColor = BODY_COLOR; + this.borderColor = BORDER_COLOR; + } + + @Override + protected boolean supportsStandingMode() { + return true; + } + + @Override + public Color getStandingBodyColor() { + return getFlipStanding() ? getBodyColor() : getMarkerColor(); + } + + @EditableProperty(name = "Reverse (standing)") + public boolean getFlipStanding() { + return super.getFlipStanding(); + } + + @EditableProperty + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.rotate(-Math.PI / 4, width / 2, height / 2); + g2d.setColor(LEAD_COLOR_ICON); + g2d.drawLine(0, height / 2, width, height / 2); + g2d.setColor(BODY_COLOR); + g2d.fillRect(6, height / 2 - 3, width - 12, 6); + g2d.setColor(INSIDE_COLOR); + g2d.fillRect(7, height / 2 - 2, width - 14, 4); + g2d.setColor(MARKER_COLOR); + int markerWidth = 4 * width / 32; + g2d.fillRect(width - 6 - markerWidth, height / 2 - 3, markerWidth, 6); + g2d.setColor(BORDER_COLOR); + g2d.drawRect(6, height / 2 - 3, width - 12, 6); + } + + @Override + protected Size getDefaultWidth() { + return DEFAULT_HEIGHT; + } + + @Override + protected Size getDefaultLength() { + return DEFAULT_WIDTH; + } + + @Override + protected Shape getBodyShape() { + return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), getClosestOdd(getWidth().convertToPixels())); + } + + @Override + protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { + Color finalMarkerColor; + if (outlineMode) { + Theme theme = + (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); + finalMarkerColor = theme.getOutlineColor(); + } else { + finalMarkerColor = markerColor; + } + + int length = getClosestOdd(getLength().convertToPixels()); + // draw the inside + if (!outlineMode) { + g2d.setColor(getInsideColor()); + int width = getClosestOdd(getWidth().convertToPixels()); + int insideLength = getClosestOdd(length - 0.2 * width); + int insideWidth = getClosestOdd(width * 0.8); + g2d.fillRect((int) (length - insideLength) / 2, (int) (width - insideWidth) / 2, insideLength, insideWidth); + } + + g2d.setColor(finalMarkerColor); + int markerWidth = (int) MARKER_WIDTH.convertToPixels(); + g2d.fillRect((int) (length - markerWidth), 0, markerWidth, getClosestOdd(getWidth().convertToPixels())); + } + + @EditableProperty(name = "Marker") + public Color getMarkerColor() { + return markerColor; + } + + public void setMarkerColor(Color markerColor) { + this.markerColor = markerColor; + } + + @EditableProperty(name = "Inside color") + public Color getInsideColor() { + if (insideColor == null) + insideColor = INSIDE_COLOR; + return insideColor; + } + + public void setInsideColor(Color insideColor) { + this.insideColor = insideColor; + } +} diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index e241ccdcae47559932869c726136b294d37fc096..0f24d8582915bb44ca05097bd564aa75dd4aea94 100644 GIT binary patch delta 4689 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 fuArUqt)#J9TuG9DRZ{EhtEgi+RpfrKN=*07 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 Battery schematic symbol added + + NEW_FEATURE + Glass diode component added + NEW_FEATURE Tube, transistor and potentiometer symbols can be rotated