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 01864256..6686875d 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/common/PropertyWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/PropertyWrapper.java index d320695e..1cab105d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/PropertyWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/PropertyWrapper.java @@ -1,7 +1,6 @@ package org.diylc.common; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import org.diylc.core.IPropertyValidator; @@ -16,12 +15,13 @@ public class PropertyWrapper implements Cloneable { private String name; private Class type; private Object value; - private Method setter; - private Method getter; + private String setter; + private String getter; private boolean defaultable; private IPropertyValidator validator; + private boolean unique = true; - public PropertyWrapper(String name, Class type, Method getter, Method setter, + public PropertyWrapper(String name, Class type, String getter, String setter, boolean defaultable, IPropertyValidator validator) { super(); this.name = name; @@ -33,8 +33,8 @@ public class PropertyWrapper implements Cloneable { } public void readFrom(Object object) throws IllegalArgumentException, IllegalAccessException, - InvocationTargetException { - this.value = getter.invoke(object); + InvocationTargetException, SecurityException, NoSuchMethodException { + this.value = object.getClass().getMethod(getter).invoke(object); } // public void readUniqueFrom(IDIYComponent component) @@ -47,8 +47,8 @@ public class PropertyWrapper implements Cloneable { // } public void writeTo(Object object) throws IllegalArgumentException, IllegalAccessException, - InvocationTargetException { - setter.invoke(object, value); + InvocationTargetException, SecurityException, NoSuchMethodException { + object.getClass().getMethod(setter, this.value.getClass()).invoke(object, this.value); } public String getName() { @@ -74,6 +74,14 @@ public class PropertyWrapper implements Cloneable { public IPropertyValidator getValidator() { return validator; } + + public boolean isUnique() { + return unique; + } + + public void setUnique(boolean unique) { + this.unique = unique; + } // @Override // public Object clone() throws CloneNotSupportedException { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java index 8f1c9d49..d25efcf4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java @@ -141,8 +141,8 @@ public class ComponentProcessor { Method setter = clazz.getMethod("set" + method.getName().substring(3), method.getReturnType()); PropertyWrapper property = new PropertyWrapper(name, - method.getReturnType(), method, setter, annotation.defaultable(), - validator); + method.getReturnType(), method.getName(), setter.getName(), + annotation.defaultable(), validator); properties.add(property); } } catch (NoSuchMethodException e) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java index 1b248dea..260d4a87 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java @@ -173,9 +173,11 @@ public class InstantiationManager { * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException + * @throws NoSuchMethodException + * @throws SecurityException */ public void fillWithDefaultProperties(Object object) throws IllegalArgumentException, - IllegalAccessException, InvocationTargetException { + IllegalAccessException, InvocationTargetException, SecurityException, NoSuchMethodException { // Extract properties. List properties = ComponentProcessor.getInstance().extractProperties( object.getClass()); 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 f81f6be5..680e3b80 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -324,7 +324,11 @@ IMPROVEMENT - Ctrl+click should not cleanup selection when clicked on the canvas + Component edit dialog should show mutual properties when components of different types are selected (e.g. curved trace and straight trace witdth) + + + IMPROVEMENT + Ctrl+click should not clear selection when clicked on the canvas IMPROVEMENT 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 0255f09f..7d580ba8 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 @@ -8,7 +8,6 @@ import org.diylc.common.ObjectCache; import org.diylc.components.AbstractCurvedComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; @@ -40,11 +39,11 @@ public class CurvedTrace extends AbstractCurvedComponent { } @EditableProperty(name = "Width") - public Size getSize() { + public Size getThickness() { return size; } - public void setSize(Size size) { + public void setThickness(Size size) { this.size = size; } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java index 235f2c30..e6b51cba 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java @@ -105,7 +105,7 @@ public class TubeSocket extends AbstractTransparentComponent { break; case B9A: pinCount = 9; - pinCircleDiameter = getClosestOdd(new Size(14d, SizeUnit.mm).convertToPixels()); + pinCircleDiameter = getClosestOdd(new Size(21d, SizeUnit.mm).convertToPixels()); hasEmptySpace = true; break; default: