From d4e42566a742d17c5b9ecec42b790a1a949d0254 Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 2 Jan 2011 13:16:56 +0000 Subject: [PATCH] added PropertyInjector --- .../DIYLC/lib/bancika-gui-framework.jar | Bin 85474 -> 85554 bytes .../src/com/diyfever/diylc/DIYLCStarter.java | 11 +++++++++++ .../diylc/common/PropertyWrapper.java | 6 ++++++ .../src/com/diyfever/diylc/config.properties | 1 + .../diylc/model/annotations/BomName.java | 6 ++++++ .../diylc/model/annotations/BomValue.java | 6 ++++++ .../diylc/model/annotations/ControlPoint.java | 6 +++--- .../diyfever/diylc/presenter/G2DWrapper.java | 8 ++++++-- 8 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/config.properties 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 ca82e0500cd35cd95d53d743dc91763876d2cbed..663e1b68ba83178fe17234556de29bc9beaab793 100644 GIT binary patch delta 4162 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/DIYLCStarter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/DIYLCStarter.java index a244cc2d..bb452b64 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/DIYLCStarter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/DIYLCStarter.java @@ -9,6 +9,7 @@ import javax.swing.UIManager; import org.apache.log4j.PropertyConfigurator; import com.diyfever.diylc.gui.MainFrame; +import com.diyfever.gui.miscutils.PropertyInjector; /** * @@ -28,6 +29,16 @@ public class DIYLCStarter { } catch (IOException e) { e.printStackTrace(); } + + url = DIYLCStarter.class.getResource("config.properties"); + properties = new Properties(); + try { + properties.load(url.openStream()); + PropertyInjector.injectProperties(properties); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/common/PropertyWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/common/PropertyWrapper.java index 3c9b2267..dec8ae85 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/common/PropertyWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/common/PropertyWrapper.java @@ -5,6 +5,12 @@ import java.lang.reflect.Method; import com.diyfever.diylc.model.IComponentInstance; +/** + * Entity class for editable properties extracted from component objects. + * Represents a single editable property together with it's current value. + * + * @author Branislav Stojkovic + */ public class PropertyWrapper implements Cloneable { private String name; diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/config.properties b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/config.properties new file mode 100644 index 00000000..308224fe --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/config.properties @@ -0,0 +1 @@ +Test=XYZ \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomName.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomName.java index fced8813..c831196e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomName.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomName.java @@ -3,6 +3,12 @@ package com.diyfever.diylc.model.annotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +/** + * Annotates getter for the component name that will be shown in the BOM. Only + * one getter per class may be tagged with this annotation. + * + * @author Branislav Stojkovic + */ @Retention(RetentionPolicy.RUNTIME) public @interface BomName { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomValue.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomValue.java index 3a27d30f..a5064dc5 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomValue.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/BomValue.java @@ -3,6 +3,12 @@ package com.diyfever.diylc.model.annotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +/** + * Annotates getter for the component value that will be shown in the BOM. Only + * one getter per class may be tagged with this annotation. + * + * @author Branislav Stojkovic + */ @Retention(RetentionPolicy.RUNTIME) public @interface BomValue { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/ControlPoint.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/ControlPoint.java index cff7a706..d4cd711d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/ControlPoint.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/model/annotations/ControlPoint.java @@ -7,9 +7,9 @@ import java.lang.annotation.RetentionPolicy; import com.diyfever.diylc.model.VisibilityPolicy; /** - * Annotation for control points. This annotation may be added to a field XYZ of - * type {@link Point} only when both getters and setters for that property - * exist. Annotation is added always on the getter. + * Annotation for control points. This annotation may be added fields of type + * {@link Point} only when both getters and setters exist. Annotation is added + * always on the getter. * * @author Branislav Stojkovic */ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/G2DWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/G2DWrapper.java index 082199e7..6ff2b8d9 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/G2DWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/G2DWrapper.java @@ -32,7 +32,10 @@ import java.util.Map; /** * {@link Graphics2D} wrapper that keeps track of all drawing actions and - * creates an {@link Area} that corresponds to drawn objects. + * creates an {@link Area} that corresponds to drawn objects. Before each + * component is drawn, {@link #startedDrawingComponent()} should be called. + * After the component is drawn, area may be retrieved using + * {@link #finishedDrawingComponent()}. * * @author Branislav Stojkovic */ @@ -71,7 +74,8 @@ class G2DWrapper extends Graphics2D { } /** - * Resets transformation to identity. + * Resets transformation to identity. Should be called only once before any + * drawing is done. */ public void resetTx() { currentTx = new AffineTransform();