From f419c1afb9d32e57e6bacabbbba71e41ded0e33a Mon Sep 17 00:00:00 2001 From: bancika Date: Fri, 24 Aug 2012 11:12:46 +0000 Subject: [PATCH] Multi-layer PCB support --- .../src/org/diylc/common/PCBLayer.java | 10 +++++++ .../diylc/presenter/ComponentZOrderFiler.java | 23 -------------- .../org/diylc/presenter/PCBLayerFiler.java | 30 +++++++++++++++++++ 3 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PCBLayer.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PCBLayerFiler.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PCBLayer.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PCBLayer.java new file mode 100644 index 00000000..63add607 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PCBLayer.java @@ -0,0 +1,10 @@ +package org.diylc.common; + +public enum PCBLayer { + + _1, _2, _3, _4, _5; + + public String toString() { + return name().substring(1); + }; +} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java deleted file mode 100644 index 5410f1df..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.diylc.presenter; - -import org.diylc.common.ComponentType; -import org.diylc.common.IComponentFiler; -import org.diylc.core.IDIYComponent; - -public class ComponentZOrderFiler implements IComponentFiler { - - private int zOrder; - - public ComponentZOrderFiler(int zOrder) { - super(); - this.zOrder = zOrder; - } - - @SuppressWarnings("unchecked") - @Override - public boolean testComponent(IDIYComponent component) { - ComponentType componentType = ComponentProcessor.getInstance().extractComponentTypeFrom( - (Class>) component.getClass()); - return Math.round(componentType.getZOrder()) == zOrder; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PCBLayerFiler.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PCBLayerFiler.java new file mode 100644 index 00000000..2daf17f5 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PCBLayerFiler.java @@ -0,0 +1,30 @@ +package org.diylc.presenter; + +import java.lang.reflect.Method; + +import org.diylc.common.IComponentFiler; +import org.diylc.common.PCBLayer; +import org.diylc.core.IDIYComponent; + +public class PCBLayerFiler implements IComponentFiler { + + private PCBLayer layer; + + public PCBLayerFiler(PCBLayer layer) { + super(); + this.layer = layer; + } + + @SuppressWarnings("unchecked") + @Override + public boolean testComponent(IDIYComponent component) { + Class clazz = component.getClass(); + try { + Method m = clazz.getMethod("getLayer", null); + PCBLayer l = (PCBLayer) m.invoke(component); + return layer == l; + } catch (Exception e) { + return false; + } + } +}