diff --git a/diylc/diylc-core/src/org/diylc/common/SimpleComponentTransformer.java b/diylc/diylc-core/src/org/diylc/components/transform/SimpleComponentTransformer.java similarity index 94% rename from diylc/diylc-core/src/org/diylc/common/SimpleComponentTransformer.java rename to diylc/diylc-core/src/org/diylc/components/transform/SimpleComponentTransformer.java index 899b8871..01ea1507 100644 --- a/diylc/diylc-core/src/org/diylc/common/SimpleComponentTransformer.java +++ b/diylc/diylc-core/src/org/diylc/components/transform/SimpleComponentTransformer.java @@ -19,12 +19,13 @@ along with DIYLC. If not, see . */ -package org.diylc.common; +package org.diylc.components.transform; import java.awt.Point; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; +import org.diylc.common.IComponentTransformer; import org.diylc.core.IDIYComponent; public class SimpleComponentTransformer implements IComponentTransformer { diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index 1137f320..75545289 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3296,15 +3296,23 @@ IMPROVEMENT - In cases when there's already a component in the selection that is reduced to nothing, allow moving the selection + In cases when there's already a component in the selection that is reduced to nothing, allow moving the selection to avoid getting stuck IMPROVEMENT - Apply context menu rotation and mirroring to Trimmer potentiometers + Apply context menu rotation and mirroring to Trimmer Potentiometer components IMPROVEMENT - Apply context menu rotation and mirroring to SMD components + Apply context menu rotation and mirroring to SMD Capacitor and Resistor components + + + IMPROVEMENT + Apply context menu rotation and mirroring to Tag Strip components + + + IMPROVEMENT + Apply context menu rotation to Breadboard components IMPROVEMENT diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index bd31d9e0..1274a110 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/src/org/diylc/components/boards/BlankBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java index 0e2b228c..671e9c6d 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java @@ -29,7 +29,7 @@ import java.awt.Shape; import java.awt.geom.Point2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java b/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java index aa6da041..72df4c32 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java @@ -37,6 +37,7 @@ import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; import org.diylc.common.VerticalAlignment; import org.diylc.components.AbstractComponent; +import org.diylc.components.transform.BreadboardTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; @@ -52,7 +53,7 @@ import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Breadboard", category = "Boards", author = "Branislav Stojkovic", description = "Prototyping solderless breadboard", instanceNamePrefix = "BB", zOrder = IDIYComponent.BOARD, bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, autoEdit = false, - keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME, enableCache = true) + keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME, enableCache = true, transformer = BreadboardTransformer.class) public class Breadboard extends AbstractComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/boards/EyeletBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/EyeletBoard.java index 28ebb486..150a5f72 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/EyeletBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/EyeletBoard.java @@ -27,7 +27,7 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Point2D; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java index 3404b146..9b69ebf3 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java @@ -27,7 +27,7 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Point2D; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java index 69805b7a..7908f93f 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java @@ -27,7 +27,7 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Point2D; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/chassis/ChassisPanel.java b/diylc/diylc-library/src/org/diylc/components/chassis/ChassisPanel.java index a3d1a199..7a36e568 100644 --- a/diylc/diylc-library/src/org/diylc/components/chassis/ChassisPanel.java +++ b/diylc/diylc-library/src/org/diylc/components/chassis/ChassisPanel.java @@ -26,8 +26,8 @@ import java.awt.Composite; import java.awt.Graphics2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.shapes.AbstractShape; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/chassis/EllipticalCutout.java b/diylc/diylc-library/src/org/diylc/components/chassis/EllipticalCutout.java index 647185ac..340af317 100644 --- a/diylc/diylc-library/src/org/diylc/components/chassis/EllipticalCutout.java +++ b/diylc/diylc-library/src/org/diylc/components/chassis/EllipticalCutout.java @@ -22,8 +22,8 @@ import java.awt.Composite; import java.awt.Graphics2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.shapes.AbstractShape; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/chassis/PolygonalCutout.java b/diylc/diylc-library/src/org/diylc/components/chassis/PolygonalCutout.java index 00f96c9c..2120aa0d 100644 --- a/diylc/diylc-library/src/org/diylc/components/chassis/PolygonalCutout.java +++ b/diylc/diylc-library/src/org/diylc/components/chassis/PolygonalCutout.java @@ -25,8 +25,8 @@ import java.awt.geom.Point2D; import java.util.Arrays; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.shapes.AbstractShape; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/chassis/RectangularCutout.java b/diylc/diylc-library/src/org/diylc/components/chassis/RectangularCutout.java index fffd9e99..4177c398 100644 --- a/diylc/diylc-library/src/org/diylc/components/chassis/RectangularCutout.java +++ b/diylc/diylc-library/src/org/diylc/components/chassis/RectangularCutout.java @@ -22,8 +22,8 @@ import java.awt.Composite; import java.awt.Graphics2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.shapes.AbstractShape; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java index 639cf9e0..94356dfa 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java @@ -23,8 +23,8 @@ import java.awt.Shape; import org.diylc.common.ObjectCache; import org.diylc.common.PCBLayer; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java index 7333fdaa..c73c05c8 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java @@ -24,8 +24,8 @@ import java.awt.geom.Path2D; import org.diylc.common.LineStyle; import org.diylc.common.ObjectCache; import org.diylc.common.PCBLayer; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractCurvedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CutLine.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CutLine.java index 50a19095..0828fd8c 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CutLine.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CutLine.java @@ -25,8 +25,8 @@ import java.awt.geom.Point2D; import org.diylc.common.ObjectCache; import org.diylc.common.OrientationHV; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Dot.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Dot.java index 86c472df..596661cb 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Dot.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Dot.java @@ -26,8 +26,8 @@ import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Point2D; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java index 4964de06..38cc77d1 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java @@ -27,8 +27,8 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java b/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java index b5bebe31..a81c79cc 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java @@ -28,8 +28,8 @@ import java.util.Arrays; import org.diylc.common.ObjectCache; import org.diylc.common.PCBLayer; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java b/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java index bb2d52c5..ddc2d3f5 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java @@ -25,8 +25,8 @@ import java.awt.Stroke; import java.awt.geom.Path2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractCurvedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IContinuity; import org.diylc.core.IDIYComponent; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Jumper.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Jumper.java index 4b92da6c..0392d515 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Jumper.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Jumper.java @@ -28,8 +28,8 @@ import java.awt.Shape; import org.diylc.common.Display; import org.diylc.common.LineStyle; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.CreationMethod; import org.diylc.core.IContinuity; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java index d34ef3df..9b6c1778 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java @@ -33,8 +33,8 @@ import java.awt.geom.Point2D; import org.diylc.common.Display; import org.diylc.common.LineStyle; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; 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 c142445b..04f4727d 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java @@ -24,8 +24,8 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import org.diylc.common.PCBLayer; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java b/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java index f36524d2..76368f5e 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java @@ -28,10 +28,10 @@ import java.awt.geom.Rectangle2D; import org.diylc.common.ObjectCache; import org.diylc.common.OrientationHV; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractComponent; import org.diylc.components.boards.AbstractBoard; import org.diylc.components.boards.VeroBoard; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java index e03badac..f33b5b8a 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java @@ -27,8 +27,8 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java index 7f9e108c..1343a8e4 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java @@ -34,8 +34,8 @@ import java.util.List; import org.diylc.common.LineStyle; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractCurvedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IContinuity; import org.diylc.core.IDIYComponent; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java index d2bc08ca..255006c6 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java @@ -32,8 +32,8 @@ import java.awt.geom.RoundRectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.Theme; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java index bdb11825..e2cf37ff 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java @@ -23,7 +23,7 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Rectangle2D; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java index f5c5e48d..5b1a8a98 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java @@ -25,8 +25,8 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.GeneralPath; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractSchematicLeadedSymbol; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/CrystalOscillator.java b/diylc/diylc-library/src/org/diylc/components/passive/CrystalOscillator.java index 04b6486e..e6ee74a7 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/CrystalOscillator.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/CrystalOscillator.java @@ -28,8 +28,8 @@ import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/FuseSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/FuseSymbol.java index d2bccd3f..dfd05dfc 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/FuseSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/FuseSymbol.java @@ -26,8 +26,8 @@ import java.awt.Shape; import java.awt.geom.Ellipse2D; import java.awt.geom.Path2D; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractSchematicLeadedSymbol; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java index d3a3f924..37fb073b 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java @@ -25,8 +25,8 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.GeneralPath; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractSchematicLeadedSymbol; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java index ebef6614..b625f29c 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java @@ -26,8 +26,8 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Ellipse2D; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractRadialComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java b/diylc/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java index d2dc1329..09a79daf 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java @@ -32,8 +32,8 @@ import java.awt.geom.RoundRectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractRadialComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.Theme; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java index b1494569..f0b9b0cb 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java @@ -27,7 +27,7 @@ import java.awt.Rectangle; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/RadialInductor.java b/diylc/diylc-library/src/org/diylc/components/passive/RadialInductor.java index 41287692..4ba86ab7 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/RadialInductor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/RadialInductor.java @@ -33,8 +33,8 @@ import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractRadialComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/Resistor.java b/diylc/diylc-library/src/org/diylc/components/passive/Resistor.java index 9784b97b..75026bad 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/Resistor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/Resistor.java @@ -32,8 +32,8 @@ import java.awt.geom.Rectangle2D; import org.diylc.common.ObjectCache; import org.diylc.common.ResistorColorCode; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java index ca2bf20f..c12eff8a 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java @@ -25,8 +25,8 @@ import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.GeneralPath; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractSchematicLeadedSymbol; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/TantalumCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/TantalumCapacitor.java index 74bcb61b..ffc3732a 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/TantalumCapacitor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/TantalumCapacitor.java @@ -32,8 +32,8 @@ import java.awt.geom.RoundRectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractRadialComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.Theme; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/ToroidalInductor.java b/diylc/diylc-library/src/org/diylc/components/passive/ToroidalInductor.java index 17aee575..131927c0 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/ToroidalInductor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/ToroidalInductor.java @@ -28,8 +28,8 @@ import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeGlass.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeGlass.java index 89e8fbe8..f6b7e6bb 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeGlass.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeGlass.java @@ -27,9 +27,9 @@ import java.awt.Shape; import java.awt.geom.Rectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.SimpleComponentTransformer; -import org.diylc.components.AbstractLeadedComponent; +import org.diylc.common.IPlugInPort; +import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.Theme; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java index 8d06ed73..502f1dd4 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java @@ -27,9 +27,9 @@ import java.awt.Shape; import java.awt.geom.Rectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.SimpleComponentTransformer; -import org.diylc.components.AbstractLeadedComponent; +import org.diylc.common.IPlugInPort; +import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.Theme; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java index d59ce410..a903e3b5 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java @@ -24,8 +24,8 @@ package org.diylc.components.semiconductors; import java.awt.Graphics2D; import java.awt.Polygon; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/LED.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/LED.java index bfb31436..a450e644 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/LED.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/LED.java @@ -28,9 +28,9 @@ import java.awt.geom.Area; import java.awt.geom.Ellipse2D; import java.awt.geom.Rectangle2D; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; -import org.diylc.components.AbstractLeadedComponent; +import org.diylc.common.ObjectCache; +import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java index 4a7d98e1..4a4e62b8 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java @@ -25,8 +25,8 @@ import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.geom.AffineTransform; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/PhotoDiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/PhotoDiodeSymbol.java index da828bb6..cd78b274 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/PhotoDiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/PhotoDiodeSymbol.java @@ -25,8 +25,8 @@ import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.geom.AffineTransform; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java index 75ba8519..8243a07f 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java @@ -24,8 +24,8 @@ package org.diylc.components.semiconductors; import java.awt.Graphics2D; import java.awt.Polygon; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java index 2eba4daf..2247cf06 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java @@ -24,8 +24,8 @@ package org.diylc.components.semiconductors; import java.awt.Graphics2D; import java.awt.Polygon; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; diff --git a/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java b/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java index ceab11f3..64447324 100644 --- a/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java +++ b/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java @@ -25,8 +25,8 @@ import java.awt.AlphaComposite; import java.awt.Composite; import java.awt.Graphics2D; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/shapes/Polygon.java b/diylc/diylc-library/src/org/diylc/components/shapes/Polygon.java index 64ed4288..5c306faa 100644 --- a/diylc/diylc-library/src/org/diylc/components/shapes/Polygon.java +++ b/diylc/diylc-library/src/org/diylc/components/shapes/Polygon.java @@ -29,7 +29,7 @@ import java.awt.geom.Point2D; import java.util.Arrays; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java b/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java index 80994bee..d454d429 100644 --- a/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java +++ b/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java @@ -25,8 +25,8 @@ import java.awt.AlphaComposite; import java.awt.Composite; import java.awt.Graphics2D; -import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; +import org.diylc.common.ObjectCache; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; diff --git a/diylc/diylc-library/src/org/diylc/components/shapes/TapeMeasure.java b/diylc/diylc-library/src/org/diylc/components/shapes/TapeMeasure.java index 606266f7..78a51387 100644 --- a/diylc/diylc-library/src/org/diylc/components/shapes/TapeMeasure.java +++ b/diylc/diylc-library/src/org/diylc/components/shapes/TapeMeasure.java @@ -38,8 +38,8 @@ import java.text.DecimalFormat; import org.diylc.common.Display; import org.diylc.common.LineStyle; import org.diylc.common.ObjectCache; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.AbstractLeadedComponent; +import org.diylc.components.transform.SimpleComponentTransformer; import org.diylc.core.ComponentState; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; diff --git a/diylc/diylc-library/src/org/diylc/components/transform/BreadboardTransformer.java b/diylc/diylc-library/src/org/diylc/components/transform/BreadboardTransformer.java new file mode 100644 index 00000000..14c3f54a --- /dev/null +++ b/diylc/diylc-library/src/org/diylc/components/transform/BreadboardTransformer.java @@ -0,0 +1,73 @@ +/* + + DIY Layout Creator (DIYLC). + Copyright (c) 2009-2018 held jointly by the individual authors. + + This file is part of DIYLC. + + DIYLC is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + DIYLC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DIYLC. If not, see . + +*/ +package org.diylc.components.transform; + +import java.awt.geom.AffineTransform; +import java.awt.geom.Point2D; + +import org.diylc.common.IComponentTransformer; +import org.diylc.common.Orientation; +import org.diylc.components.boards.Breadboard; +import org.diylc.core.IDIYComponent; + +public class BreadboardTransformer implements IComponentTransformer { + + @Override + public boolean canRotate(IDIYComponent component) { + return component.getClass().equals(Breadboard.class); + } + + @Override + public boolean canMirror(IDIYComponent component) { + return false; + } + + @Override + public boolean mirroringChangesCircuit() { + return false; + } + + @Override + public void rotate(IDIYComponent component, Point2D center, int direction) { + AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI / 2 * direction, center.getX(), center.getY()); + for (int index = 0; index < component.getControlPointCount(); index++) { + Point2D p = new Point2D.Double(); + rotate.transform(component.getControlPoint(index), p); + component.setControlPoint(p, index); + } + + Breadboard board = (Breadboard) component; + Orientation o = board.getOrientation(); + int oValue = o.ordinal(); + oValue += direction; + if (oValue < 0) + oValue = Orientation.values().length - 1; + if (oValue >= Orientation.values().length) + oValue = 0; + o = Orientation.values()[oValue]; + board.setOrientation(o); + } + + @Override + public void mirror(IDIYComponent component, Point2D center, int direction) { + } +} diff --git a/diylc/diylc-library/src/org/diylc/components/transform/VeroBoardTransformer.java b/diylc/diylc-library/src/org/diylc/components/transform/VeroBoardTransformer.java index 60613986..30ab18c6 100644 --- a/diylc/diylc-library/src/org/diylc/components/transform/VeroBoardTransformer.java +++ b/diylc/diylc-library/src/org/diylc/components/transform/VeroBoardTransformer.java @@ -24,7 +24,6 @@ package org.diylc.components.transform; import java.awt.geom.Point2D; import org.diylc.common.OrientationHV; -import org.diylc.common.SimpleComponentTransformer; import org.diylc.components.boards.AbstractVeroBoard; import org.diylc.core.IDIYComponent;