diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml index 1d5d337d..e2f1eb8c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml @@ -1,15 +1,15 @@ - metric - true + lastPath + C:\Documents and Settings\Branislav Stojkovic\Desktop\oldFiles zoom 1.0 - lastPath - C:\Documents and Settings\Branislav Stojkovic\Desktop\oldFiles + metric + false showTemplatesAtStartup 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 7b4aebce..0fd51897 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java index 208ab753..626fcece 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java @@ -53,7 +53,7 @@ public abstract class AbstractComponent implements IDIYComponent { * @param x * @return */ - protected int getClosestOdd(int x) { - return (x / 2) * 2 + 1; + protected int getClosestOdd(double x) { + return ((int) x / 2) * 2 + 1; } } 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 593e3655..81c235b3 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,10 +24,12 @@ 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(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 Point[] controlPoints = new Point[] { + new Point(0, 0), + new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), 0), + new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), (int) (DEFAULT_SIZE + .convertToPixels())), + new Point((int) DEFAULT_SIZE.convertToPixels(), (int) DEFAULT_SIZE.convertToPixels()) }; protected Color color = getDefaultColor(); @@ -107,7 +109,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp public VisibilityPolicy getControlPointVisibilityPolicy(int index) { return VisibilityPolicy.WHEN_SELECTED; } - + @Override public boolean canControlPointOverlap(int index) { // Only shape control points may overlap. diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java index b530078d..ecba4f66 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java @@ -40,7 +40,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp protected Size width; protected Point[] points = new Point[] { new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0), - new Point(DEFAULT_SIZE.convertToPixels() / 2, 0) }; + new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), 0) }; protected Color bodyColor = Color.white; protected Color borderColor = Color.black; protected Color labelColor = LABEL_COLOR; @@ -173,7 +173,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp * @return default lead thickness. Override this method to change it. */ protected int getLeadThickness() { - return LEAD_THICKNESS.convertToPixels(); + return (int) LEAD_THICKNESS.convertToPixels(); } /** diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java index 9aee9460..e7543161 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java @@ -16,13 +16,13 @@ public class Size extends AbstractMeasure implements Comparable // TODO Auto-generated constructor stub } - public int convertToPixels() { + public double convertToPixels() { // double factor = getUnit().getFactor() / SizeUnit.in.getFactor(); // int grids = (int) (factor * getValue() * Constants.GRIDS_PER_INCH); // double remainder = (factor * getValue() * Constants.GRIDS_PER_INCH) - grids; // return (int) Math.round(Constants.PIXELS_PER_INCH / Constants.GRIDS_PER_INCH // * (grids + remainder)); - return (int) (getValue() * getUnit().getFactor() / SizeUnit.in.getFactor() * Constants.PIXELS_PER_INCH); + return getValue() * getUnit().getFactor() / SizeUnit.in.getFactor() * Constants.PIXELS_PER_INCH; } @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/CalcUtils.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/CalcUtils.java index bac9e6a1..62db2dfc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/CalcUtils.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/CalcUtils.java @@ -13,8 +13,8 @@ public class CalcUtils { * @return */ public static int roundToGrid(int x, Size gridSpacing) { - int grid = gridSpacing.convertToPixels(); - return (Math.round(1f * x / grid) * grid); + double grid = gridSpacing.convertToPixels(); + return (int) (Math.round(1f * x / grid) * grid); } public static void snapPointToGrid(Point point, Size gridSpacing) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java index 1aefde99..0d7cc57f 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java @@ -331,7 +331,7 @@ public class DrawingManager { public Dimension getCanvasDimensions(Project project, Double zoomLevel, boolean useZoom) { double width = project.getWidth().convertToPixels(); - int height = project.getHeight().convertToPixels(); + double height = project.getHeight().convertToPixels(); if (useZoom) { width *= zoomLevel; height *= zoomLevel; 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 2ac04326..9019f16a 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 @@ -815,8 +815,8 @@ public class Presenter implements IPlugInPort { for (IDIYComponent component : components) { for (int i = 0; i < component.getControlPointCount(); i++) { Point point = new Point(component.getControlPoint(i)); - point.translate(currentProject.getGridSpacing().convertToPixels(), currentProject - .getGridSpacing().convertToPixels()); + point.translate((int) currentProject.getGridSpacing().convertToPixels(), + (int) currentProject.getGridSpacing().convertToPixels()); component.setControlPoint(point, i); } addComponent(component, ComponentProcessor.getInstance().extractComponentTypeFrom( diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java index 1d93a8ff..5807aaee 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java @@ -161,8 +161,8 @@ public class ProjectFileManager { int height = Integer.parseInt(root.getAttribute("Height")) + 1; int boardWidth = (int) (width * Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue()); int boardHeight = (int) (height * Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue()); - int projectWidth = project.getWidth().convertToPixels(); - int projectHeight = project.getHeight().convertToPixels(); + int projectWidth = (int) project.getWidth().convertToPixels(); + int projectHeight = (int) project.getHeight().convertToPixels(); int x = (projectWidth - boardWidth) / 2; int y = (projectHeight - boardHeight) / 2; AbstractBoard board; @@ -178,11 +178,11 @@ public class ProjectFileManager { throw new IllegalArgumentException("Unrecognized board type: " + type); } board.setName("Main board"); - Point referencePoint = new Point(roundToGrid(x, V1_GRID_SPACING), roundToGrid(y, - V1_GRID_SPACING)); + Point referencePoint = new Point(CalcUtils.roundToGrid(x, V1_GRID_SPACING), CalcUtils + .roundToGrid(y, V1_GRID_SPACING)); board.setControlPoint(referencePoint, 0); - board.setControlPoint(new Point(roundToGrid(x + boardWidth, V1_GRID_SPACING), roundToGrid(y - + boardHeight, V1_GRID_SPACING)), 1); + board.setControlPoint(new Point(CalcUtils.roundToGrid(x + boardWidth, V1_GRID_SPACING), + CalcUtils.roundToGrid(y + boardHeight, V1_GRID_SPACING)), 1); project.getComponents().add(board); NodeList childNodes = root.getChildNodes(); @@ -435,9 +435,4 @@ public class ProjectFileManager { fis.close(); return project; } - - public int roundToGrid(int x, Size gridSpacing) { - int grid = gridSpacing.convertToPixels(); - return (Math.round(1f * x / grid) * grid); - } } \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java index ec724d0d..2229e24b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java @@ -49,7 +49,7 @@ class CanvasPanel extends JComponent implements Autoscroll { private Image bufferImage; private GraphicsConfiguration screenGraphicsConfiguration; - private static boolean USE_HARDWARE_ACCELLERATION = true; + private static boolean USE_HARDWARE_ACCELLERATION = false; static final EnumSet DRAW_OPTIONS = EnumSet.of(DrawOption.GRID, DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING, diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index 86cd70e4..68eef8c0 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -112,7 +112,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { private RulerScrollPane getScrollPane() { if (scrollPane == null) { scrollPane = new RulerScrollPane(getCanvasPanel(), new ProjectDrawingProvider( - plugInPort, true), new Size(1d, SizeUnit.cm).convertToPixels(), new Size(1d, + plugInPort, true), (int) new Size(1d, SizeUnit.cm).convertToPixels(), (int) new Size(1d, SizeUnit.in).convertToPixels()); boolean metric = ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, true); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml index be6466b9..9c019403 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -167,6 +167,10 @@ IMPROVEMENT Fixed lead alignment issue + + IMPROVEMENT + Better scaling, grid lines are more precise + NEW_FEATURE Added resistor schematic symbol @@ -179,6 +183,14 @@ NEW_FEATURE Added eyelet/turret component + + NEW_FEATURE + Added Marshall/Trainwreck style boards + + + NEW_FEATURE + Added few types of trimmers + http://code.google.com/p/diy-layout-creator/downloads/list diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/.classpath b/ diy-layout-creator --username bancika@gmail.com/Library/.classpath index 83b7e4d9..0fed21e8 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/.classpath +++ b/ diy-layout-creator --username bancika@gmail.com/Library/.classpath @@ -2,8 +2,8 @@ - + diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar b/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar index 82b15b1b..82e176b1 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar and b/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java index 5f3664c4..19b1c796 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java @@ -27,7 +27,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent protected String value = ""; protected Point[] controlPoints = new Point[] { new Point(0, 0), - new Point(DEFAULT_WIDTH.convertToPixels(), DEFAULT_HEIGHT.convertToPixels()) }; + new Point((int) DEFAULT_WIDTH.convertToPixels(), (int) DEFAULT_HEIGHT.convertToPixels()) }; protected Point firstPoint = new Point(); protected Point secondPoint = new Point(); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java index 4fe5f1a9..3490fe64 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java @@ -40,9 +40,9 @@ public class EyeletBoard extends AbstractBoard { / MAX_ALPHA)); } Point p = new Point(firstPoint); - int diameter = getClosestOdd(EYELET_SIZE.convertToPixels()); - int holeDiameter = getClosestOdd(HOLE_SIZE.convertToPixels()); - int spacing = this.spacing.convertToPixels(); + int diameter = getClosestOdd((int) EYELET_SIZE.convertToPixels()); + int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); + int spacing = (int) this.spacing.convertToPixels(); while (p.y < secondPoint.y - spacing) { p.x = firstPoint.x; diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java new file mode 100644 index 00000000..6f7a85eb --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java @@ -0,0 +1,86 @@ +package org.diylc.components.boards; + +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Point; + +import org.diylc.core.ComponentState; +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; +import org.diylc.utils.Constants; + +@ComponentDescriptor(name = "Marshall Style Perf Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board as found on some Marshall and Trainwreck amps") +public class MarshallPerfBoard extends AbstractBoard { + + private static final long serialVersionUID = 1L; + + public static Color BOARD_COLOR = Color.decode("#CD8500"); + public static Color BORDER_COLOR = BOARD_COLOR.darker(); + public static Size SPACING = new Size(3 / 8d, SizeUnit.in); + public static Size HOLE_SIZE = new Size(1 / 8d, SizeUnit.in); + + // private Area copperArea; + protected Size spacing = SPACING; + + public MarshallPerfBoard() { + super(); + this.boardColor = BOARD_COLOR; + this.borderColor = BORDER_COLOR; + } + + @Override + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { + super.draw(g2d, componentState, project, drawingObserver); + if (componentState != ComponentState.DRAGGING) { + if (alpha < MAX_ALPHA) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha + / MAX_ALPHA)); + } + Point p = new Point(firstPoint); + int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); + int spacing = (int) this.spacing.convertToPixels(); + + while (p.y < secondPoint.y - spacing) { + p.x = firstPoint.x; + p.y += spacing; + while (p.x < secondPoint.x - spacing) { + p.x += spacing; + g2d.setColor(Constants.CANVAS_COLOR); + g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, + holeDiameter); + g2d.setColor(borderColor); + g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, + holeDiameter); + } + } + } + } + + @EditableProperty + public Size getSpacing() { + return spacing; + } + + public void setSpacing(Size spacing) { + this.spacing = spacing; + } + + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.setColor(BOARD_COLOR); + g2d.fillRect(2, 2, width - 4, height - 4); + g2d.setColor(BORDER_COLOR); + g2d.drawRect(2, 2, width - 4, height - 4); + g2d.setColor(Constants.CANVAS_COLOR); + g2d.fillOval(width / 2 - 2, width / 2 - 2, 5, 5); + g2d.setColor(BORDER_COLOR); + g2d.drawOval(width / 2 - 2, width / 2 - 2, 5, 5); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java index a0005d70..2aa9d8c8 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java @@ -40,9 +40,9 @@ public class PerfBoard extends AbstractBoard { / MAX_ALPHA)); } Point p = new Point(firstPoint); - int diameter = getClosestOdd(PAD_SIZE.convertToPixels()); - int holeDiameter = getClosestOdd(HOLE_SIZE.convertToPixels()); - int spacing = this.spacing.convertToPixels(); + int diameter = getClosestOdd((int) PAD_SIZE.convertToPixels()); + int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); + int spacing = (int) this.spacing.convertToPixels(); while (p.y < secondPoint.y - spacing) { p.x = firstPoint.x; diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java index 7765da5b..6f9f2324 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java @@ -43,18 +43,18 @@ public class VeroBoard extends AbstractBoard { / MAX_ALPHA)); } Point p = new Point(firstPoint); - int stripSize = getClosestOdd(STRIP_SIZE.convertToPixels()); - int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels()); - int spacing = this.spacing.convertToPixels(); + int stripSize = getClosestOdd((int) STRIP_SIZE.convertToPixels()); + int holeSize = getClosestOdd((int) HOLE_SIZE.convertToPixels()); + int spacing = (int) this.spacing.convertToPixels(); while (p.y < secondPoint.y - spacing) { p.x = firstPoint.x; p.y += spacing; g2d.setColor(stripColor); - g2d.fillRect(p.x + SPACING.convertToPixels() / 2, p.y - stripSize / 2, + g2d.fillRect(p.x + spacing / 2, p.y - stripSize / 2, secondPoint.x - spacing - p.x, stripSize); g2d.setColor(stripColor.darker()); - g2d.drawRect(p.x + SPACING.convertToPixels() / 2, p.y - stripSize / 2, + g2d.drawRect(p.x + spacing / 2, p.y - stripSize / 2, secondPoint.x - spacing - p.x, stripSize); while (p.x < secondPoint.x - spacing) { p.x += spacing; diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java index 2fe76cba..428e4a00 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java @@ -64,7 +64,7 @@ public class CopperTrace extends AbstractLeadedComponent { @Override protected int getLeadThickness() { - return getThickness().convertToPixels(); + return (int) getThickness().convertToPixels(); } @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java index 85b29c90..74e64560 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java @@ -30,7 +30,7 @@ public class CurvedTrace extends AbstractCurvedComponent { @Override protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { - int thickness = size.convertToPixels(); + int thickness = (int) size.convertToPixels(); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness)); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java index 8a5b4207..0c928642 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java @@ -34,8 +34,8 @@ public class Eyelet extends AbstractComponent { @Override public void draw(Graphics2D g2d, ComponentState componentState, Project project, IDrawingObserver drawingObserver) { - int diameter = getClosestOdd(size.convertToPixels()); - int holeDiameter = getClosestOdd(holeSize.convertToPixels()); + int diameter = getClosestOdd((int) size.convertToPixels()); + int holeDiameter = getClosestOdd((int) holeSize.convertToPixels()); g2d.setColor(color); g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); g2d.setColor(componentState == ComponentState.SELECTED diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java index 729e34a0..5bfeaa18 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java @@ -33,8 +33,8 @@ public class SolderPad extends AbstractComponent { @Override public void draw(Graphics2D g2d, ComponentState componentState, Project project, IDrawingObserver drawingObserver) { - int diameter = getClosestOdd(size.convertToPixels()); - int holeDiameter = getClosestOdd(HOLE_SIZE.convertToPixels()); + int diameter = getClosestOdd((int) size.convertToPixels()); + int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color); if (type == Type.ROUND) { diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java index 3d098a7a..59504c22 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java @@ -35,7 +35,7 @@ public class TraceCut extends AbstractComponent { @Override public void draw(Graphics2D g2d, ComponentState componentState, Project project, IDrawingObserver drawingObserver) { - int size = getClosestOdd(this.size.convertToPixels()); + int size = getClosestOdd((int) this.size.convertToPixels()); int dotDiameter = size - 6; g2d.setColor(fillColor); g2d.fillRect(point.x - size / 2, point.y - size / 2, size, size); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java index a3960266..c1ebe8b9 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java @@ -48,7 +48,7 @@ public class MiniToggleSwitch extends AbstractTransparentComponent { } } // Calculate maximum entry size. - int maxEntrySize = maxNameWidth + maxValueWidth + 2 * SPACING.convertToPixels(); - int columnCount = size.convertToPixels() / maxEntrySize; - int columnWidth = size.convertToPixels() / columnCount; + int maxEntrySize = maxNameWidth + maxValueWidth + 2 * (int) SPACING.convertToPixels(); + int columnCount = (int) size.convertToPixels() / maxEntrySize; + int columnWidth = (int) size.convertToPixels() / columnCount; int entriesPerColumn = (int) Math.ceil(1.d * bom.size() / columnCount); if (entriesPerColumn == 0) { g2d.drawString(DEFAULT_TEXT, point.x, point.y); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java index 5fb9c3c0..177ceadc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java @@ -122,11 +122,11 @@ public class AxialElectrolyticCapacitor extends AbstractLeadedComponent { Point firstPoint = controlPoints[0]; controlPoints = new Point[pinCount.getValue()]; controlPoints[0] = firstPoint; + int pinSpacing = (int) this.pinSpacing.convertToPixels(); + int rowSpacing = (int) this.rowSpacing.convertToPixels(); // Update control points. int dx1; int dy1; @@ -155,27 +157,27 @@ public class DIL_IC extends AbstractTransparentComponent { switch (orientation) { case DEFAULT: dx1 = 0; - dy1 = i * pinSpacing.convertToPixels(); - dx2 = rowSpacing.convertToPixels(); - dy2 = i * pinSpacing.convertToPixels(); + dy1 = i * pinSpacing; + dx2 = rowSpacing; + dy2 = i * pinSpacing; break; case _90: - dx1 = -i * pinSpacing.convertToPixels(); + dx1 = -i * pinSpacing; dy1 = 0; - dx2 = -i * pinSpacing.convertToPixels(); - dy2 = rowSpacing.convertToPixels(); + dx2 = -i * pinSpacing; + dy2 = rowSpacing; break; case _180: dx1 = 0; - dy1 = -i * pinSpacing.convertToPixels(); - dx2 = -rowSpacing.convertToPixels(); - dy2 = -i * pinSpacing.convertToPixels(); + dy1 = -i * pinSpacing; + dx2 = -rowSpacing; + dy2 = -i * pinSpacing; break; case _270: - dx1 = i * pinSpacing.convertToPixels(); + dx1 = i * pinSpacing; dy1 = 0; - dx2 = i * pinSpacing.convertToPixels(); - dy2 = -rowSpacing.convertToPixels(); + dx2 = i * pinSpacing; + dy2 = -rowSpacing; break; default: throw new RuntimeException("Unexpected orientation: " + orientation); @@ -193,39 +195,41 @@ public class DIL_IC extends AbstractTransparentComponent { int y = controlPoints[0].y; int width; int height; - int pinSize = PIN_SIZE.convertToPixels(); + int pinSize = (int) PIN_SIZE.convertToPixels(); + int pinSpacing = (int) this.pinSpacing.convertToPixels(); + int rowSpacing = (int) this.rowSpacing.convertToPixels(); Area indentation = null; int indentationSize = getClosestOdd(INDENT_SIZE.convertToPixels()); switch (orientation) { case DEFAULT: - width = rowSpacing.convertToPixels() - pinSize; - height = (pinCount.getValue() / 2) * pinSpacing.convertToPixels(); + width = rowSpacing - pinSize; + height = (pinCount.getValue() / 2) * pinSpacing; x += pinSize / 2; - y -= pinSpacing.convertToPixels() / 2; + y -= pinSpacing / 2; indentation = new Area(new Ellipse2D.Double(x + width / 2 - indentationSize / 2, y - indentationSize / 2, indentationSize, indentationSize)); break; case _90: - width = (pinCount.getValue() / 2) * pinSpacing.convertToPixels(); - height = rowSpacing.convertToPixels() - pinSize; - x -= (pinSpacing.convertToPixels() / 2) + width - pinSpacing.convertToPixels(); + width = (pinCount.getValue() / 2) * pinSpacing; + height = rowSpacing - pinSize; + x -= (pinSpacing / 2) + width - pinSpacing; y += pinSize / 2; indentation = new Area(new Ellipse2D.Double(x + width - indentationSize / 2, y + height / 2 - indentationSize / 2, indentationSize, indentationSize)); break; case _180: - width = rowSpacing.convertToPixels() - pinSize; - height = (pinCount.getValue() / 2) * pinSpacing.convertToPixels(); - x -= rowSpacing.convertToPixels() - pinSize / 2; - y -= (pinSpacing.convertToPixels() / 2) + height - pinSpacing.convertToPixels(); + width = rowSpacing - pinSize; + height = (pinCount.getValue() / 2) * pinSpacing; + x -= rowSpacing - pinSize / 2; + y -= (pinSpacing / 2) + height - pinSpacing; indentation = new Area(new Ellipse2D.Double(x + width / 2 - indentationSize / 2, y + height - indentationSize / 2, indentationSize, indentationSize)); break; case _270: - width = (pinCount.getValue() / 2) * pinSpacing.convertToPixels(); - height = rowSpacing.convertToPixels() - pinSize; - x -= pinSpacing.convertToPixels() / 2; - y += pinSize / 2 - rowSpacing.convertToPixels(); + width = (pinCount.getValue() / 2) * pinSpacing; + height = rowSpacing - pinSize; + x -= pinSpacing / 2; + y += pinSize / 2 - rowSpacing; indentation = new Area(new Ellipse2D.Double(x - indentationSize / 2, y + height / 2 - indentationSize / 2, indentationSize, indentationSize)); break; @@ -245,7 +249,7 @@ public class DIL_IC extends AbstractTransparentComponent { @Override public void draw(Graphics2D g2d, ComponentState componentState, Project project, IDrawingObserver drawingObserver) { - int pinSize = PIN_SIZE.convertToPixels() / 2 * 2; + int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; Area mainArea = getBody()[0]; for (Point point : controlPoints) { g2d.setColor(PIN_COLOR); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java index 16a74b5a..d70a770a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java @@ -77,8 +77,8 @@ public class DiodePlastic extends AbstractLeadedComponent { @Override protected void decorateComponentBody(Graphics2D g2d) { g2d.setColor(markerColor); - int width = getLength().convertToPixels(); - int markerWidth = MARKER_WIDTH.convertToPixels(); + int width = (int) getLength().convertToPixels(); + int markerWidth = (int) MARKER_WIDTH.convertToPixels(); g2d.fillRect(width - markerWidth, 0, markerWidth, getClosestOdd(getWidth() .convertToPixels())); } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java index 0df197c6..5436836f 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java @@ -103,7 +103,7 @@ public class TransistorTO220 extends AbstractTransparentComponent { } private void updateControlPoints() { - int pinSpacing = PIN_SPACING.convertToPixels(); + int pinSpacing = (int) PIN_SPACING.convertToPixels(); // Update control points. int x = controlPoints[0].x; int y = controlPoints[0].y; @@ -134,10 +134,10 @@ public class TransistorTO220 extends AbstractTransparentComponent { body = new Shape[2]; int x = controlPoints[0].x; int y = controlPoints[0].y; - int pinSpacing = PIN_SPACING.convertToPixels(); + int pinSpacing = (int) PIN_SPACING.convertToPixels(); int bodyWidth = getClosestOdd(BODY_WIDTH.convertToPixels()); int bodyHeight = getClosestOdd(BODY_HEIGHT.convertToPixels()); - int tabThickness = TAB_THICKNESS.convertToPixels(); + int tabThickness = (int) TAB_THICKNESS.convertToPixels(); switch (orientation) { case DEFAULT: @@ -174,7 +174,7 @@ public class TransistorTO220 extends AbstractTransparentComponent { @Override public void draw(Graphics2D g2d, ComponentState componentState, Project project, IDrawingObserver drawingObserver) { - int pinSize = PIN_SIZE.convertToPixels() / 2 * 2; + int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; Shape mainArea = getBody()[0]; Shape tabArea = getBody()[1]; Composite oldComposite = g2d.getComposite(); @@ -194,6 +194,7 @@ public class TransistorTO220 extends AbstractTransparentComponent { || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); g2d.draw(mainArea); + // Draw pins. for (Point point : controlPoints) { g2d.setColor(PIN_COLOR); g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java index 85a0e91f..7c36ddfb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java @@ -98,7 +98,7 @@ public class TransistorTO92 extends AbstractTransparentComponent { } private void updateControlPoints() { - int pinSpacing = PIN_SPACING.convertToPixels(); + int pinSpacing = (int) PIN_SPACING.convertToPixels(); // Update control points. int x = controlPoints[0].x; int y = controlPoints[0].y; @@ -128,7 +128,7 @@ public class TransistorTO92 extends AbstractTransparentComponent { if (body == null) { int x = controlPoints[0].x; int y = controlPoints[0].y; - int pinSpacing = PIN_SPACING.convertToPixels(); + int pinSpacing = (int) PIN_SPACING.convertToPixels(); int bodyDiameter = getClosestOdd(BODY_DIAMETER.convertToPixels()); switch (orientation) { @@ -166,7 +166,7 @@ public class TransistorTO92 extends AbstractTransparentComponent { @Override public void draw(Graphics2D g2d, ComponentState componentState, Project project, IDrawingObserver drawingObserver) { - int pinSize = PIN_SIZE.convertToPixels() / 2 * 2; + int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; Area mainArea = getBody(); Composite oldComposite = g2d.getComposite(); if (alpha < MAX_ALPHA) {