From f9c08ecbaa33efcb88f1414ef6cdf68100bfbdfa Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 23 Jan 2011 17:26:34 +0000 Subject: [PATCH] changed curve position synchronous messages added pot --- .../DIYLC/lib/bancika-gui-framework.jar | Bin 87206 -> 87957 bytes .../DIYLC/library/main.jar | Bin 46065 -> 51711 bytes .../components/AbstractCurvedComponent.java | 9 +- .../src/org/diylc/presenter/Presenter.java | 2 +- .../passive/AbstractPotentiometer.java | 84 +++++++ .../passive/PotentiometerPanel.java | 212 ++++++++++++++++++ .../passive/PotentiometerValue.java | 28 +++ .../org/diylc/components/passive/Taper.java | 6 + 8 files changed, 335 insertions(+), 6 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java create mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java create mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java create mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar index d8c14dfaf4ee5d3e71517c208a47766a13edf1de..c3edf3e636be34bff8076a92ae3e42350183db24 100644 GIT binary patch delta 5077 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 PDu0|M*f*2WBOCXBp0Ul& delta 4140 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 JHIVrf^I!HtE@%J% diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar index c479bf4b9a375b7ea9ac227fbf44e00725dd6203..33d05d685581c537cc38bca823f0d8bad95327e4 100644 GIT binary patch delta 6415 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 DWpoO5 diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java index bab5d6bb..91172662 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java @@ -24,11 +24,10 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp public static Color GUIDELINE_COLOR = Color.blue; public static Size DEFAULT_SIZE = new Size(1d, SizeUnit.in); - protected Point[] controlPoints = new Point[] { - new Point(-DEFAULT_SIZE.convertToPixels() / 2, -DEFAULT_SIZE.convertToPixels() / 2), - new Point(0, -DEFAULT_SIZE.convertToPixels() / 2), - new Point(0, DEFAULT_SIZE.convertToPixels() / 2), - new Point(DEFAULT_SIZE.convertToPixels() / 2, DEFAULT_SIZE.convertToPixels() / 2) }; + protected Point[] controlPoints = new Point[] { new Point(0, 0), + new Point(DEFAULT_SIZE.convertToPixels() / 2, 0), + new Point(DEFAULT_SIZE.convertToPixels() / 2, DEFAULT_SIZE.convertToPixels()), + new Point(DEFAULT_SIZE.convertToPixels(), DEFAULT_SIZE.convertToPixels()) }; protected Color color = getDefaultColor(); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java index 29b01006..9dc7f028 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java @@ -102,7 +102,7 @@ public class Presenter implements IPlugInPort { super(); this.view = view; plugIns = new ArrayList(); - messageDispatcher = new MessageDispatcher(); + messageDispatcher = new MessageDispatcher(true); selectedComponents = new ComponentSelection(); lockedComponents = new HashSet>(); currentProject = new Project(); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java new file mode 100644 index 00000000..a189c4da --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java @@ -0,0 +1,84 @@ +package org.diylc.components.passive; + +import java.awt.Point; + +import org.diylc.common.Orientation; +import org.diylc.components.AbstractComponent; +import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.measures.Resistance; +import org.diylc.core.measures.ResistanceUnit; + +public abstract class AbstractPotentiometer extends AbstractComponent { + + private static final long serialVersionUID = 1L; + + protected Point[] controlPoints; + + protected Resistance resistance = new Resistance(100d, ResistanceUnit.K); + protected Orientation orientation = Orientation.DEFAULT; + protected Taper taper; + + @Override + public int getControlPointCount() { + return controlPoints.length; + } + + @Override + public Point getControlPoint(int index) { + return controlPoints[index]; + } + + @Override + public void setControlPoint(Point point, int index) { + controlPoints[index].setLocation(point); + } + + @Override + public VisibilityPolicy getControlPointVisibilityPolicy(int index) { + return VisibilityPolicy.NEVER; + } + + @Override + public boolean isControlPointSticky(int index) { + return true; + } + + @EditableProperty + public Resistance getResistance() { + return resistance; + } + + public void setResistance(Resistance resistance) { + this.resistance = resistance; + } + + @Override + public PotentiometerValue getValue() { + return new PotentiometerValue(resistance, taper); + } + + @Override + public void setValue(PotentiometerValue value) { + this.resistance = value.getResistance(); + this.taper = value.getTaper(); + } + + @EditableProperty + public Taper getTaper() { + return taper; + } + + public void setTaper(Taper taper) { + this.taper = taper; + } + + @EditableProperty + public Orientation getOrientation() { + return orientation; + } + + public void setOrientation(Orientation orientation) { + this.orientation = orientation; + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java new file mode 100644 index 00000000..a7999dd5 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java @@ -0,0 +1,212 @@ +package org.diylc.components.passive; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Point; +import java.awt.geom.Area; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Rectangle2D; + +import org.diylc.common.ObjectCache; +import org.diylc.common.Orientation; +import org.diylc.core.ComponentState; +import org.diylc.core.CreationMethod; +import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; +import org.diylc.core.Project; +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; + +@ComponentDescriptor(name = "Potentiometer (panel mount)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.SINGLE_CLICK, instanceNamePrefix = "VR", description = "test", zOrder = IDIYComponent.ABOVE_COMPONENT, stretchable = false) +public class PotentiometerPanel extends AbstractPotentiometer { + + private static final long serialVersionUID = 1L; + + protected static Size BODY_DIAMETER = new Size(1d, SizeUnit.in); + protected static Size SPACING = new Size(0.3d, SizeUnit.in); + protected static Size LUG_DIAMETER = new Size(0.15d, SizeUnit.in); + protected static Color BODY_COLOR = Color.gray.brighter(); + protected static Color BORDER_COLOR = Color.gray; + + protected Size bodyDiameter = BODY_DIAMETER; + protected Size spacing = SPACING; + protected Color bodyColor = BODY_COLOR; + protected Color borderColor = BORDER_COLOR; + protected Area[] body = null; + + public PotentiometerPanel() { + controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; + updateControlPoints(); + } + + protected void updateControlPoints() { + int spacing = this.spacing.convertToPixels(); + switch (orientation) { + case DEFAULT: + controlPoints[1].setLocation(controlPoints[0].x + spacing, controlPoints[0].y); + controlPoints[2].setLocation(controlPoints[0].x + 2 * spacing, controlPoints[0].y); + break; + case _90: + controlPoints[1].setLocation(controlPoints[0].x, controlPoints[0].y + spacing); + controlPoints[2].setLocation(controlPoints[0].x, controlPoints[0].y + 2 * spacing); + break; + case _180: + controlPoints[1].setLocation(controlPoints[0].x - spacing, controlPoints[0].y); + controlPoints[2].setLocation(controlPoints[0].x - 2 * spacing, controlPoints[0].y); + break; + case _270: + controlPoints[1].setLocation(controlPoints[0].x, controlPoints[0].y - spacing); + controlPoints[2].setLocation(controlPoints[0].x, controlPoints[0].y - 2 * spacing); + break; + default: + break; + } + } + + public Area[] getBody() { + int spacing = this.spacing.convertToPixels(); + int diameter = getClosestOdd(bodyDiameter.convertToPixels()); + if (body == null) { + body = new Area[7]; + + // Add lugs. + int lugDiameter = getClosestOdd(LUG_DIAMETER.convertToPixels()); + int holeDiameter = getClosestOdd(LUG_DIAMETER.convertToPixels() / 2); + for (int i = 0; i < 3; i++) { + Area area = new Area(new Ellipse2D.Double(controlPoints[i].x - lugDiameter / 2, + controlPoints[i].y - lugDiameter / 2, lugDiameter, lugDiameter)); + body[4 + i] = area; + } + + switch (orientation) { + case DEFAULT: + body[3] = new Area(new Ellipse2D.Double( + controlPoints[0].x + spacing - diameter / 2, controlPoints[0].y - spacing + / 2 - diameter, diameter, diameter)); + for (int i = 0; i < 3; i++) { + body[i] = new Area(new Rectangle2D.Double( + controlPoints[i].x - holeDiameter / 2, controlPoints[i].y + - (spacing + diameter) / 2, holeDiameter, + (spacing + diameter) / 2)); + } + break; + case _90: + body[3] = new Area(new Ellipse2D.Double(controlPoints[0].x + spacing / 2, + controlPoints[0].y + spacing - diameter / 2, diameter, diameter)); + for (int i = 0; i < 3; i++) { + body[i] = new Area(new Rectangle2D.Double(controlPoints[i].x, + controlPoints[i].y - holeDiameter / 2, (spacing + diameter) / 2, + holeDiameter)); + } + break; + case _180: + body[3] = new Area(new Ellipse2D.Double( + controlPoints[0].x + spacing - diameter / 2, controlPoints[0].y + spacing + / 2, diameter, diameter)); + for (int i = 0; i < 3; i++) { + body[i] = new Area(new Rectangle2D.Double( + controlPoints[i].x - holeDiameter / 2, controlPoints[i].y, + holeDiameter, (spacing + diameter) / 2)); + } + break; + case _270: + body[3] = new Area(new Ellipse2D.Double( + controlPoints[0].x - spacing / 2 - diameter, controlPoints[0].y - spacing + - diameter / 2, diameter, diameter)); + for (int i = 0; i < 3; i++) { + body[i] = new Area(new Rectangle2D.Double(controlPoints[i].x + - (spacing + diameter) / 2, controlPoints[i].y - holeDiameter / 2, + (spacing + diameter) / 2, holeDiameter)); + } + break; + default: + break; + } + for (int i = 0; i < 3; i++) { + for (int j = 3; j < 7; j++) { + body[i].subtract(body[j]); + } + } + // Make holes in the lugs. + for (int i = 0; i < 3; i++) { + body[4 + i].subtract(new Area(new Ellipse2D.Double(controlPoints[i].x + - holeDiameter / 2, controlPoints[i].y - holeDiameter / 2, holeDiameter, + holeDiameter))); + } + } + return body; + } + + @Override + public void setControlPoint(Point point, int index) { + super.setControlPoint(point, index); + body = null; + } + + @Override + public void setOrientation(Orientation orientation) { + super.setOrientation(orientation); + updateControlPoints(); + body = null; + } + + @Override + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); + for (Area shape : getBody()) { + if (shape != null) { + g2d.setColor(bodyColor); + g2d.fill(shape); + g2d.setColor(borderColor); + g2d.draw(shape); + } + } + } + + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + // TODO Auto-generated method stub + + } + + @EditableProperty + public Size getSpacing() { + return spacing; + } + + public void setSpacing(Size spacing) { + this.spacing = spacing; + updateControlPoints(); + body = null; + } + + @EditableProperty(name = "Diameter") + public Size getBodyDiameter() { + return bodyDiameter; + } + + public void setBodyDiameter(Size bodyDiameter) { + this.bodyDiameter = bodyDiameter; + } + + @EditableProperty(name = "Body") + public Color getBodyColor() { + return bodyColor; + } + + public void setBodyColor(Color bodyColor) { + this.bodyColor = bodyColor; + } + + @EditableProperty(name = "Border") + public Color getBorderColor() { + return borderColor; + } + + public void setBorderColor(Color borderColor) { + this.borderColor = borderColor; + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java new file mode 100644 index 00000000..00efd2b3 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java @@ -0,0 +1,28 @@ +package org.diylc.components.passive; + +import org.diylc.core.measures.Resistance; + +public class PotentiometerValue { + + private Resistance resistance; + private Taper taper; + + public PotentiometerValue(Resistance resistance, Taper taper) { + super(); + this.resistance = resistance; + this.taper = taper; + } + + public Resistance getResistance() { + return resistance; + } + + public Taper getTaper() { + return taper; + } + + @Override + public String toString() { + return resistance.toString() + taper.toString(); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java new file mode 100644 index 00000000..372e3294 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java @@ -0,0 +1,6 @@ +package org.diylc.components.passive; + +public enum Taper { + + LINEAR, LOG, REVERSE_LOG, W, S +}