From bc154608f4fc68249690dbf92559d56ee207f427 Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 30 Jan 2011 17:21:42 +0000 Subject: [PATCH] allow property edit validation --- .../DIYLC/lib/bancika-gui-framework.jar | Bin 88203 -> 88285 bytes .../DIYLC/library/main.jar | Bin 75998 -> 76025 bytes .../src/org/diylc/common/PropertyWrapper.java | 18 ++++++---- .../src/org/diylc/core/AllowAllValidator.java | 13 +++++++ .../org/diylc/core/IPropertyValidator.java | 16 +++++++++ .../DIYLC/src/org/diylc/core/Project.java | 22 ++++++++++-- .../org/diylc/core/ValidationException.java | 11 ++++++ .../core/annotations/EditableProperty.java | 9 +++++ .../annotations/PositiveMeasureValidator.java | 20 +++++++++++ .../src/org/diylc/core/measures/Size.java | 7 +++- .../diylc/presenter/ComponentProcessor.java | 33 ++++++++++++++---- .../gui/editor/PropertyEditorDialog.java | 19 ++++++++++ .../Library/lib/diylc.jar | Bin 329720 -> 335525 bytes .../diylc/components/passive/Resistor.java | 3 +- 14 files changed, 153 insertions(+), 18 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/AllowAllValidator.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IPropertyValidator.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ValidationException.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/PositiveMeasureValidator.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar index d3374bf429a0be59c6d523c1c062b7516fb0b0c2..acef8105d79b7a5feadaf00914324b80e13bbdd4 100644 GIT binary patch delta 5631 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 MAi}3g++39Z1KZF0`v3p{ 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 3634937b80b2898145b299129b75f9b5baf7a088..bb39c9f5197f10521274cda83139e73631357826 100644 GIT binary patch delta 3049 zcmY+Gc{r5o8^`AzvQBo!nkB}TNw&oPvjV;+JO(|=(-#nw=b*}UN@qFg{y}$SKT+h6Jy!Xc*_O%{%1kRj|od*UUJeiD8 zg*%YR2d{#)MGmYJDCSDxg$}^+WC|A22MB|(05y;yz$T;zpbN(U1j3IoQSk)c%Ly3I zgNFl-A{saV^M!j@43acu)t|{%vjIOu=@iR;+CsE4&rJ~o%t zcgUE|qNtTA%Xh)e@PeGF(;!PLy7ce>z2bG9mAe`g!y+Qwlf?^{n>m>mtI)sN#5#8^ zmBczHg0i0r^gYZy%<|`MN3k@KCdbkLM)SKQY@0>*lpJ*&{Z{?8Y>W5T+NrMW z>|O9!-0FPoMMn5=@Y~Ig!5+@5qrp_Da=eh8@#2I;5rOkt6MW13lg`^0qy@2h-DsYA zjnoh0UxVt|_dGhMhaLDaP}L>XpRg@rGD(FNVswMpUKUjDA;w) z@QhcS;a?5+t%y@P+@ll?COU*YpDTwgpFkCu-GU0H^9s(HU@6VS1q`ZyxU|3gCB>pq zWy1V1+y1r2y{Y>rRI7f5%#)4@@X@|o#OQ7EP|9Af<|LPy7YE0=dAC7hHTV5wI%z`p zA{G13`*tqrbV_w6QWPY`FB>7Ae!+D-W^8mXl;j*$aP_JFD$*MtURPWcIwUw3bi0<4 z8rZivEzyH=J$ri06uc@yi+%dA zY@c8rfnRaHe%kobbKL=aUUkwJUzD3vr(Ju8pL&LSG%nGO@b$iX#JZ9lDwjji2tGxN z;fkS_s}EFGy*apI>6ni}b69+kMkn%hJ~{H{Zhf7QV^&VLSj`-|by25xHgukQEUX9< zAX4q+Iqzc={HmGp4nbNRES<|fIqv!C!?Dv;gnjML=;0hEbLpG0YOOt19-%|&63?zN7u)76YCU){MltW$5po$^poJ=SO>#A)~y2-9N zNg;pd&&Q|Lphm@pT3_qGi-QAS7IbH4I|vx^kKOqoxOZAr&C|}9mePHaazJJw_6wOx z{3})dCcUNZR--DeN6B@4>7?Ss8J_z=&h5!DykS|oL{Vv@1X6N(4CcH@h}J;DCJ$N* z(>ysuw=OFCgmJR{F5|q0MyrSI!HY!k0y`6Nd0YZ%&X>FV%Gi6^pNN*`$1bgC1fWBCS7X|^FXrlMMv!o|LgsCHEWTHjQ=jrkGpL`RR03|;GMcfMR)@a=AF zO|@%nDD)I2Z8h997&1;jot1`hI7&CQE=?%iJnQ2lqJE3!n(d6M)Xu@0joDM!2FlSI z0cqw_5`}x8_n92h{m{RDq+^fpu<(QIoCj?-P_(8+LLM*y}5Ats6$}NvWZ%k&igd9=%qUevvdANUL3>uIaf03ViQ|Z zitDe=A_&20M4QYUgD5d>NgDBXH%>b#bmj`x4NX2z{aR9_TqSIIB#Gu#kXPuUtMSpW zDKa#qk8~_lclaXPoPD>rxo#iIJrc7Rzd=;#e?`q6~` zeWR|ypF-Ko3|(eJ&)$f8iKwzj7~aaPIcSw2I715ZjYFWah|E7BNYeRwOQzNhmGvJS z!^j^e7cm{nRnEs-Kh=dk5b{@Z{ZcDp>3{zOcgoCk`J?$MsfGKvZ~F*~{D>#A+Vm|E zg&Cyk*9kTc2kt`=lSjzYNpuN~u`Hnr_Ka)qP0pZ?UTdGu`sJxkEWrvrxUOS_FdH8* zUGyc{Mf{pVcCAN`T8C(>J#;Y^Iv`=FwI}Vo=VD9T_BoTYoUZQri^bSvoqX@cm_#A} zr7KG0)^0;`++=3jO}?XB$>A9fv00ZJsNF^|>or)DAD;#?(5*aV{Z65V6r<+q2d86C z`AgpO7IQy2!#y^7S8)4W&Z`U2I5SRdp1wA2_2gO=f>U!$3O6z!e&Tst5kW}yXH)3| z|MAvUmGN!P|Ia~O%sHr{sY{$SmJIYtvOfDu{Z1@>l8)gApZ(MsUe*|q%Q(Q|+a)zt z?$?R~AG2O<%K<3^qdJlcO5e@=LFE^NFwB92Y9 zDc}_(WChrVgiZpgh(pGJf#T2!z-QtR4sf>wbOz8{0y+iwLIOGsC@Tr!0mFW?=Qq`) zAQ#{#{pP$B%3GkH+>HAfmk$bxL4?EP#1KrmQ090t>3&AL0w zz35qLkP>7d2SWPz-Nl@2Fc^UY2E+U(#Qu&FEs0F;6Qgb`L6YDoDHQW40v*^?9E$m_ znO->X@@96T0@OwnBm?XbVAB{oHa}Hf84?AyzB1DuS^8~LG*|hlNy?B2DBT7n?$v)w yqSRl?5EwhDTq=+>n=1!IiH0jNdl1x9Dv%f`1cE{$*T02k6-b;zT8w#V*#7{jGd`{W delta 3050 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 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 20829d82..d320695e 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 @@ -3,6 +3,8 @@ package org.diylc.common; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import org.diylc.core.IPropertyValidator; + /** * Entity class for editable properties extracted from component objects. * Represents a single editable property together with it's current value. @@ -17,19 +19,21 @@ public class PropertyWrapper implements Cloneable { private Method setter; private Method getter; private boolean defaultable; + private IPropertyValidator validator; public PropertyWrapper(String name, Class type, Method getter, Method setter, - boolean defaultable) { + boolean defaultable, IPropertyValidator validator) { super(); this.name = name; this.type = type; this.getter = getter; this.setter = setter; this.defaultable = defaultable; + this.validator = validator; } - public void readFrom(Object object) throws IllegalArgumentException, - IllegalAccessException, InvocationTargetException { + public void readFrom(Object object) throws IllegalArgumentException, IllegalAccessException, + InvocationTargetException { this.value = getter.invoke(object); } @@ -42,8 +46,8 @@ public class PropertyWrapper implements Cloneable { // } // } - public void writeTo(Object object) throws IllegalArgumentException, - IllegalAccessException, InvocationTargetException { + public void writeTo(Object object) throws IllegalArgumentException, IllegalAccessException, + InvocationTargetException { setter.invoke(object, value); } @@ -67,8 +71,8 @@ public class PropertyWrapper implements Cloneable { return defaultable; } - public void setDefaultable(boolean defaultable) { - this.defaultable = defaultable; + public IPropertyValidator getValidator() { + return validator; } // @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/AllowAllValidator.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/AllowAllValidator.java new file mode 100644 index 00000000..0b194256 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/AllowAllValidator.java @@ -0,0 +1,13 @@ +package org.diylc.core; + +/** + * Validator that allows all values. + * + * @author Branislav Stojkovic + */ +public class AllowAllValidator implements IPropertyValidator { + + @Override + public void validate(Object value) throws ValidationException { + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IPropertyValidator.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IPropertyValidator.java new file mode 100644 index 00000000..9dbdee24 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IPropertyValidator.java @@ -0,0 +1,16 @@ +package org.diylc.core; + +/** + * Interface for validating property value changes. + * + * @author Branislav Stojkovic + */ +public interface IPropertyValidator { + + /** + * @param value + * @throws ValidationException + * if validation fails. Message will contain the reason. + */ + void validate(Object value) throws ValidationException; +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java index 2b54b590..942bd1ee 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Set; import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; @@ -92,7 +93,7 @@ public class Project implements Serializable { this.height = height; } - @EditableProperty(name = "Grid spacing") + @EditableProperty(name = "Grid spacing", validatorClass = SpacingValidator.class) public Size getGridSpacing() { return gridSpacing; } @@ -118,7 +119,7 @@ public class Project implements Serializable { public Set>> getGroups() { return groups; } - + public Set getLockedLayers() { return lockedLayers; } @@ -177,12 +178,27 @@ public class Project implements Serializable { return false; return true; } - + @Override public String toString() { return title; } + public static class SpacingValidator extends PositiveMeasureValidator { + + @Override + public void validate(Object value) throws ValidationException { + super.validate(value); + Size size = (Size) value; + if (size.compareTo(new Size(1d, SizeUnit.mm)) < 0) { + throw new ValidationException("must be greater than 1mm"); + } + if (size.compareTo(new Size(1d, SizeUnit.in)) > 0) { + throw new ValidationException("must be less than 1in"); + } + } + } + // @Override // public Project clone() throws CloneNotSupportedException { // List clonedComponents = new diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ValidationException.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ValidationException.java new file mode 100644 index 00000000..f78cc348 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ValidationException.java @@ -0,0 +1,11 @@ + +package org.diylc.core; + +public class ValidationException extends Exception { + + private static final long serialVersionUID = 1L; + + public ValidationException(String message) { + super(message); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/EditableProperty.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/EditableProperty.java index 14a926a0..9642d074 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/EditableProperty.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/EditableProperty.java @@ -3,6 +3,9 @@ package org.diylc.core.annotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import org.diylc.core.AllowAllValidator; +import org.diylc.core.IPropertyValidator; + /** * Used to annotate editable component property. Editable property XYZ must have * both getter and setter named getXYZ and setXYZ @@ -30,4 +33,10 @@ public @interface EditableProperty { * @return */ boolean defaultable() default true; + + /** + * Class of validator to use to + * @return + */ + Class validatorClass() default AllowAllValidator.class; } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/PositiveMeasureValidator.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/PositiveMeasureValidator.java new file mode 100644 index 00000000..98b91b75 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/PositiveMeasureValidator.java @@ -0,0 +1,20 @@ +package org.diylc.core.annotations; + +import org.diylc.core.IPropertyValidator; +import org.diylc.core.ValidationException; +import org.diylc.core.measures.AbstractMeasure; + +public class PositiveMeasureValidator implements IPropertyValidator { + + @Override + public void validate(Object value) throws ValidationException { + if (value instanceof AbstractMeasure) { + AbstractMeasure measure = (AbstractMeasure) value; + if (measure.getValue() <= 0) { + throw new ValidationException("must be greater than zero."); + } + } else { + throw new ValidationException("wrong data type, measure expected."); + } + } +} 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 ec3b06a3..9aee9460 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 @@ -2,7 +2,7 @@ package org.diylc.core.measures; import org.diylc.utils.Constants; -public class Size extends AbstractMeasure { +public class Size extends AbstractMeasure implements Comparable { private static final long serialVersionUID = 1L; @@ -39,4 +39,9 @@ public class Size extends AbstractMeasure { } throw new IllegalArgumentException("Could not parse size: " + value); } + + @Override + public int compareTo(Size o) { + return new Double(value * unit.getFactor()).compareTo(o.getValue() * o.getUnit().getFactor()); + } } 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 d98c59fa..32f1c365 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 @@ -19,6 +19,7 @@ import org.diylc.common.ComponentType; import org.diylc.common.PropertyWrapper; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; +import org.diylc.core.IPropertyValidator; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -35,7 +36,8 @@ public class ComponentProcessor { private static ComponentProcessor instance; - private Map, List> propertyCache; + private Map> propertyCache; + private Map propertyValidatorCache; private Map componentTypeMap; private Cloner cloner; @@ -50,8 +52,9 @@ public class ComponentProcessor { private ComponentProcessor() { super(); this.cloner = new Cloner(); - this.propertyCache = new HashMap, List>(); + this.propertyCache = new HashMap>(); this.componentTypeMap = new HashMap(); + this.propertyValidatorCache = new HashMap(); } public ComponentType extractComponentTypeFrom(Class> clazz) { @@ -117,8 +120,8 @@ public class ComponentProcessor { * @return */ public List extractProperties(Class clazz) { - if (propertyCache.containsKey(clazz)) { - return cloner.deepClone(propertyCache.get(clazz)); + if (propertyCache.containsKey(clazz.getName())) { + return cloner.deepClone(propertyCache.get(clazz.getName())); } List properties = new ArrayList(); for (Method method : clazz.getMethods()) { @@ -133,10 +136,13 @@ public class ComponentProcessor { } else { name = annotation.name(); } + IPropertyValidator validator = getPropertyValidator(annotation + .validatorClass()); Method setter = clazz.getMethod("set" + method.getName().substring(3), method.getReturnType()); PropertyWrapper property = new PropertyWrapper(name, - method.getReturnType(), method, setter, annotation.defaultable()); + method.getReturnType(), method, setter, annotation.defaultable(), + validator); properties.add(property); } } catch (NoSuchMethodException e) { @@ -146,7 +152,7 @@ public class ComponentProcessor { } } - propertyCache.put(clazz, properties); + propertyCache.put(clazz.getName(), properties); return cloner.deepClone(properties); } @@ -187,4 +193,19 @@ public class ComponentProcessor { Collections.sort(properties, ComparatorFactory.getInstance().getPropertyNameComparator()); return properties; } + + private IPropertyValidator getPropertyValidator(Class clazz) { + if (propertyValidatorCache.containsKey(clazz.getName())) { + return propertyValidatorCache.get(clazz.getName()); + } + IPropertyValidator validator; + try { + validator = clazz.newInstance(); + } catch (Exception e) { + LOG.error("Could not instantiate validator for " + clazz.getName(), e); + return null; + } + propertyValidatorCache.put(clazz.getName(), validator); + return validator; + } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java index 6ff3ebe3..b8242a71 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java @@ -18,10 +18,12 @@ import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import org.apache.log4j.Logger; import org.diylc.common.PropertyWrapper; +import org.diylc.core.ValidationException; import com.diyfever.gui.ButtonDialog; @@ -65,6 +67,23 @@ public class PropertyEditorDialog extends ButtonDialog { // setLocationRelativeTo(owner); } + @Override + protected boolean validateInput(String button) { + if (button.equals(ButtonDialog.OK)) { + for (PropertyWrapper property : properties) { + try { + property.getValidator().validate(property.getValue()); + } catch (ValidationException ve) { + JOptionPane.showMessageDialog(PropertyEditorDialog.this, "Input error for \"" + + property.getName() + "\": " + ve.getMessage(), "Error", + JOptionPane.ERROR_MESSAGE); + return false; + } + } + } + return true; + } + private JPanel createEditorFields() { JPanel editorPanel = new JPanel(new GridBagLayout()); editorPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 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 21dbaea50737687ea4e3b6d3ffdc863289556e8d..d744a258b57d07a2bb711ac02711cd97b2128b1e 100644 GIT binary patch delta 62117 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

7%(LYj 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java index 69efcc02..dfade752 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java @@ -12,6 +12,7 @@ import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.measures.Resistance; import org.diylc.core.measures.ResistanceUnit; import org.diylc.core.measures.Size; @@ -36,7 +37,7 @@ public class Resistor extends AbstractLeadedComponent { this.borderColor = BORDER_COLOR; } - @EditableProperty + @EditableProperty(validatorClass = PositiveMeasureValidator.class) public Resistance getValue() { return value; }