diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index d5a9688e..f08aefac 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/swing-framework.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/swing-framework.jar deleted file mode 100644 index b5fce851..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/swing-framework.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar index a2972c62..373c0ffb 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java index e657b248..0e407d89 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -514,7 +514,7 @@ public class ActionFactory { @Override public void actionPerformed(ActionEvent e) { - LOG.info("ExportPNGAction triggered"); + LOG.info("PrintAction triggered"); try { DrawingExporter.getInstance().print(this.drawingProvider); } catch (PrinterException e1) { @@ -539,6 +539,7 @@ public class ActionFactory { @Override public void actionPerformed(ActionEvent e) { + LOG.info("ExitAction triggered"); if (plugInPort.allowFileAction()) { System.exit(0); } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java index 6b30cd42..9301f8fc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java @@ -31,7 +31,12 @@ public class ProjectDrawingProvider implements IDrawingProvider { } @Override - public void draw(Graphics g) { + public Dimension getSize() { + return plugInPort.getCanvasDimensions(useZoom); + } + + @Override + public void draw(int page, Graphics g) { EnumSet drawOptions = EnumSet.of(DrawOption.ANTIALIASING); if (useZoom) { drawOptions.add(DrawOption.ZOOM); @@ -48,7 +53,7 @@ public class ProjectDrawingProvider implements IDrawingProvider { } @Override - public Dimension getSize() { - return plugInPort.getCanvasDimensions(useZoom); + public int getPageCount() { + return 1; } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java index ebc737d0..b06206fb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java @@ -3,13 +3,18 @@ package org.diylc.swing.plugins.file; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; import java.util.EnumSet; +import java.util.List; +import java.util.Set; import org.diylc.common.DrawOption; -import org.diylc.common.IComponentFiler; import org.diylc.common.IPlugInPort; +import org.diylc.common.PCBLayer; import org.diylc.core.IDIYComponent; -import org.diylc.presenter.ComponentZOrderFiler; +import org.diylc.presenter.PCBLayerFiler; import org.diylc.swingframework.IDrawingProvider; /** @@ -21,22 +26,42 @@ import org.diylc.swingframework.IDrawingProvider; public class TraceMaskDrawingProvider implements IDrawingProvider { private IPlugInPort plugInPort; - private IComponentFiler filter; public TraceMaskDrawingProvider(IPlugInPort plugInPort) { super(); this.plugInPort = plugInPort; - this.filter = new ComponentZOrderFiler(IDIYComponent.TRACE); - } - - @Override - public void draw(Graphics g) { - plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ANTIALIASING), - this.filter); } @Override public Dimension getSize() { return plugInPort.getCanvasDimensions(false); } + + @Override + public void draw(int page, Graphics g) { + plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ANTIALIASING), + new PCBLayerFiler(getUsedLayers()[page])); + } + + @Override + public int getPageCount() { + return getUsedLayers().length; + } + + private PCBLayer[] getUsedLayers() { + Set layers = EnumSet.noneOf(PCBLayer.class); + for (IDIYComponent c : plugInPort.getCurrentProject() + .getComponents()) { + Class clazz = c.getClass(); + try { + Method m = clazz.getMethod("getLayer", null); + PCBLayer l = (PCBLayer) m.invoke(c); + layers.add(l); + } catch (Exception e) { + } + } + List sorted = new ArrayList(layers); + Collections.sort(sorted); + return sorted.toArray(new PCBLayer[] {}); + } }