From a88f0d0a454def486a85812933d7f16a8c1747c9 Mon Sep 17 00:00:00 2001 From: bancika Date: Tue, 4 Jan 2011 20:55:35 +0000 Subject: [PATCH] refactored component framework --- .../DIYLC/library/main.jar | Bin 0 -> 5470 bytes .../DIYLC/library/test.jar | Bin 6208 -> 0 bytes ...e.java => AbstractLeadedDIYComponent.java} | 8 +- .../diylc/components/MockComponentType.java | 48 ------ ...entInstance.java => MockDIYComponent.java} | 17 +-- .../{ResistorInstance.java => Resistor.java} | 12 +- .../org/diylc/components/ResistorType.java | 48 ------ .../DIYLC/src/org/diylc/DIYLCStarter.java | 2 +- .../org/diylc/common/ComponentSelection.java | 8 +- .../org/diylc/common/ControlPointWrapper.java | 6 +- .../DIYLC/src/org/diylc/common/EventType.java | 4 +- .../src/org/diylc/common/IPlugInPort.java | 16 +- .../src/org/diylc/common/PropertyWrapper.java | 8 +- .../src/org/diylc/core/IComponentType.java | 65 -------- ...ponentInstance.java => IDIYComponent.java} | 15 +- .../DIYLC/src/org/diylc/core/Project.java | 14 +- .../core/annotations/ComponentDescriptor.java | 32 ++++ .../diylc/core/annotations/ComponentName.java | 9 -- .../DIYLC/src/org/diylc/gui/MainFrame.java | 2 +- .../plugins/canvas/CanvasTargetListener.java | 2 +- .../plugins/canvas/SelectionTransferable.java | 6 +- .../plugins/clipboard/ClipboardManager.java | 4 +- .../src/org/diylc/plugins/file/BomMaker.java | 6 +- .../diylc/plugins/statusbar/StatusBar.java | 16 +- .../plugins/toolbox/ComponentButton.java | 13 +- .../plugins/toolbox/ComponentTabbedPane.java | 10 +- .../diylc/presenter/ComponentProcessor.java | 20 +-- .../org/diylc/presenter/ComponentType.java | 76 ++++++++++ .../src/org/diylc/presenter/Presenter.java | 141 +++++++++++------- .../org/diylc/plugins/file/BomMakerTest.java | 12 +- .../diylc/presenter/ClassProcessorTest.java | 6 +- 31 files changed, 309 insertions(+), 317 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/library/test.jar rename diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/{AbstractLeadedComponentInstance.java => AbstractLeadedDIYComponent.java} (87%) delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockComponentType.java rename diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/{MockComponentInstance.java => MockDIYComponent.java} (81%) rename diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/{ResistorInstance.java => Resistor.java} (75%) delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorType.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentType.java rename diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/{IComponentInstance.java => IDIYComponent.java} (62%) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentName.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentType.java 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 new file mode 100644 index 0000000000000000000000000000000000000000..805a3a93b5d0e26882f2368cb6a3a90e1fd94fbb GIT binary patch literal 5470 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 xvgiMHfWKqWzfbt{C;aBEze)%HpC getComponentInstanceClass() { - return MockComponentInstance.class; - } - - @Override - public String getInstanceNamePrefix() { - return "ABC"; - } - - @Override - public ComponentLayer getComponentLayer() { - return ComponentLayer.BOARD; - } - - @Override - public String getDescription() { - return "Some description"; - } - - @Override - public Icon getIcon() { - return IconLoader.Gears.getIcon(); - } - - @Override - public String getName() { - return "Mock Component"; - } - - @Override - public String getCategory() { - return "Samples"; - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockComponentInstance.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockDIYComponent.java similarity index 81% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockComponentInstance.java rename to diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockDIYComponent.java index c18b8dd0..1321dfd7 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockComponentInstance.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/MockDIYComponent.java @@ -5,10 +5,11 @@ import java.awt.Graphics2D; import java.awt.Point; import org.diylc.core.ComponentState; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; import org.diylc.core.VisibilityPolicy; import org.diylc.core.annotations.BomName; import org.diylc.core.annotations.BomValue; +import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.ControlPoint; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Capacitance; @@ -18,8 +19,8 @@ import org.diylc.core.measures.ResistanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; - -public class MockComponentInstance implements IComponentInstance { +@ComponentDescriptor(name = "Mock", author = "bancika", category = "Sample", instanceNamePrefix = "M", desciption = "test") +public class MockDIYComponent implements IDIYComponent { private static final long serialVersionUID = 1L; @@ -31,7 +32,7 @@ public class MockComponentInstance implements IComponentInstance { private Point leftTopCorner = new Point(0, 0); private String name = "something"; - public MockComponentInstance(String testField, Capacitance c, Resistance r, Size s, + public MockDIYComponent(String testField, Capacitance c, Resistance r, Size s, Color color, Point leftTopCorner) { super(); this.testField = testField; @@ -42,7 +43,7 @@ public class MockComponentInstance implements IComponentInstance { this.leftTopCorner = leftTopCorner; } - public MockComponentInstance() { + public MockDIYComponent() { super(); } @@ -119,9 +120,7 @@ public class MockComponentInstance implements IComponentInstance { } @Override - public MockComponentInstance clone() throws CloneNotSupportedException { - MockComponentInstance newInstance = new MockComponentInstance(testField, c.clone(), r - .clone(), s.clone(), color, (Point) leftTopCorner.clone()); - return newInstance; + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.drawString("X", 10, 10); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorInstance.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java similarity index 75% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorInstance.java rename to diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java index e5eecfc9..f5700ea1 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorInstance.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java @@ -5,21 +5,22 @@ import java.awt.Color; import java.awt.Graphics2D; import org.diylc.core.ComponentState; +import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Resistance; import org.diylc.core.measures.ResistanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; - -public class ResistorInstance extends AbstractLeadedComponentInstance { +@ComponentDescriptor(name = "Resistor", author = "bancika", category = "Passive", instanceNamePrefix = "R", desciption = "test") +public class Resistor extends AbstractLeadedDIYComponent { private static final long serialVersionUID = 1L; private Resistance r = new Resistance(123d, ResistanceUnit.K); private Color color = Color.green; - public ResistorInstance() { + public Resistor() { super(); } @@ -40,6 +41,11 @@ public class ResistorInstance extends AbstractLeadedComponentInstance { g2d.fillRect((point1.x + point2.x) / 2 - 10, (point1.y + point2.y) / 2 - 10, 20, 20); } + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.drawString("R", 10, 10); + } + @Override protected Size getDefaultHeight() { return new Size(3d, SizeUnit.mm); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorType.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorType.java deleted file mode 100644 index 952676cc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/ResistorType.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.diylc.components; - -import javax.swing.Icon; - -import org.diylc.core.ComponentLayer; -import org.diylc.core.IComponentInstance; -import org.diylc.core.IComponentType; -import org.diylc.images.IconLoader; - - -public class ResistorType implements IComponentType { - - @Override - public Class getComponentInstanceClass() { - return ResistorInstance.class; - } - - @Override - public String getInstanceNamePrefix() { - return "R"; - } - - @Override - public ComponentLayer getComponentLayer() { - return ComponentLayer.COMPONENT; - } - - @Override - public String getDescription() { - return "Some description"; - } - - @Override - public Icon getIcon() { - return IconLoader.Gears.getIcon(); - } - - @Override - public String getName() { - return "Resistor"; - } - - @Override - public String getCategory() { - return "Samples"; - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java index 3b8d770c..91879bb7 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java @@ -57,7 +57,7 @@ public class DIYLCStarter { // p.installPlugin(new CanvasPlugin()); // // Project project = new Project(); - // project.getComponents().add(new MockComponentInstance()); + // project.getComponents().add(new MockDIYComponent()); // p.loadProject(project); // panel.setPreferredSize(new Dimension(2000, 1500)); // RulerScrollPane scrollPane = new RulerScrollPane(panel); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentSelection.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentSelection.java index f930adf4..ca59c49a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentSelection.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentSelection.java @@ -8,17 +8,17 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; /** * Represents component selection as a {@link List} of - * {@link IComponentInstance} objects. Implements {@link Transferable}, so it is + * {@link IDIYComponent} objects. Implements {@link Transferable}, so it is * suitable for clipboard usage. * * @author Branislav Stojkovic */ -public class ComponentSelection extends ArrayList implements Transferable { +public class ComponentSelection extends ArrayList implements Transferable { private static final long serialVersionUID = 1L; @@ -28,7 +28,7 @@ public class ComponentSelection extends ArrayList implements super(); } - public ComponentSelection(Collection selectedComponents) { + public ComponentSelection(Collection selectedComponents) { super(selectedComponents); } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ControlPointWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ControlPointWrapper.java index 99c8a99c..5e562044 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ControlPointWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ControlPointWrapper.java @@ -4,7 +4,7 @@ import java.awt.Point; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; import org.diylc.core.VisibilityPolicy; @@ -44,7 +44,7 @@ public class ControlPointWrapper { * @throws IllegalAccessException * @throws InvocationTargetException */ - public void readFrom(IComponentInstance component) throws IllegalArgumentException, + public void readFrom(IDIYComponent component) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { value = (Point) getter.invoke(component); } @@ -58,7 +58,7 @@ public class ControlPointWrapper { * @throws IllegalAccessException * @throws InvocationTargetException */ - public void writeTo(IComponentInstance component) throws IllegalArgumentException, + public void writeTo(IDIYComponent component) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { setter.invoke(component, value); } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/EventType.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/EventType.java index 093d0a66..768cb742 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/EventType.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/EventType.java @@ -2,8 +2,8 @@ package org.diylc.common; import java.awt.Rectangle; -import org.diylc.core.IComponentType; import org.diylc.core.Project; +import org.diylc.presenter.ComponentType; /** @@ -44,7 +44,7 @@ public enum EventType { REPAINT, /** * Called when new component slot has been changed. The only parameter is - * {@link IComponentType} and may be null. + * {@link ComponentType} and may be null. */ SLOT_CHANGED, /** diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java index 18c219a3..3de130dc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java @@ -15,9 +15,9 @@ import javax.swing.SwingConstants; import javax.swing.JPopupMenu.Separator; import org.diylc.core.ComponentLayer; -import org.diylc.core.IComponentInstance; -import org.diylc.core.IComponentType; +import org.diylc.core.IDIYComponent; import org.diylc.core.Project; +import org.diylc.presenter.ComponentType; import com.diyfever.gui.simplemq.IMessageListener; import com.diyfever.gui.simplemq.MessageDispatcher; @@ -76,13 +76,13 @@ public interface IPlugInPort { void loadProject(Project project, boolean freshStart); /** - * Returns all available {@link IComponentType}s classified by category. + * Returns all available {@link ComponentType}s classified by category. * Result is a {@link Map} between category name to a {@link List} of all - * {@link IComponentType}s that share that category name. + * {@link ComponentType}s that share that category name. * * @return */ - Map> getComponentTypes(); + Map> getComponentTypes(); /** * Draws project on the provided {@link Graphics2D}. @@ -175,7 +175,7 @@ public interface IPlugInPort { * * @return */ - Area getComponentArea(IComponentInstance component); + Area getComponentArea(IDIYComponent component); /** * Notification that drag has been started from the specified point. @@ -218,7 +218,7 @@ public interface IPlugInPort { * @param components * @param preferredPoint */ - void addComponents(List components, Point preferredPoint); + void addComponents(List components, Point preferredPoint); /** * Checks if a certain layer is locked for editing. @@ -288,5 +288,5 @@ public interface IPlugInPort { * Sets the new component slot. Specified component type will be used to * instantiate new component. */ - void setNewComponentSlot(IComponentType componentType); + void setNewComponentSlot(ComponentType componentType); } 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 ad831092..ea38d10b 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,7 +3,7 @@ package org.diylc.common; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; /** @@ -31,12 +31,12 @@ public class PropertyWrapper implements Cloneable { this.defaultable = defaultable; } - public void readFrom(IComponentInstance component) throws IllegalArgumentException, + public void readFrom(IDIYComponent component) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { this.value = getter.invoke(component); } - // public void readUniqueFrom(IComponentInstance component) + // public void readUniqueFrom(IDIYComponent component) // throws IllegalArgumentException, IllegalAccessException, // InvocationTargetException { // Object newValue = getter.invoke(component); @@ -45,7 +45,7 @@ public class PropertyWrapper implements Cloneable { // } // } - public void writeTo(IComponentInstance component) throws IllegalArgumentException, + public void writeTo(IDIYComponent component) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { setter.invoke(component, value); } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentType.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentType.java deleted file mode 100644 index bfb173d9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentType.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.diylc.core; - -import javax.swing.Icon; - -/** - * Interface used to describe a component type. - * - * @author Branislav Stojkovic - * - * @see IComponentInstance - */ -public interface IComponentType { - - /** - * Returns component type name. - * - * @return - */ - String getName(); - - /** - * Returns component instance name prefix, e.g. "R" for resistors, "C" for - * capacitors, etc. - * - * @return - */ - String getInstanceNamePrefix(); - - /** - * Returns component category. - * - * @return - */ - String getCategory(); - - /** - * Returns component type description that may contain HTML tags. - * - * @return - */ - String getDescription(); - - /** - * Returns an {@link Icon} used to represent component type. - * - * @return - */ - Icon getIcon(); - - /** - * Returns a {@link ComponentLayer} where this component belongs. - * - * @return - */ - ComponentLayer getComponentLayer(); - - /** - * Returns class that represents component instances of this component type. - * Application will instantiate objects of this class when components are - * created. - * - * @return - */ - Class getComponentInstanceClass(); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentInstance.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java similarity index 62% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentInstance.java rename to diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java index 0dc8438e..6933cff3 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IComponentInstance.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java @@ -3,6 +3,8 @@ package org.diylc.core; import java.awt.Graphics2D; import java.io.Serializable; +import org.diylc.presenter.ComponentType; + /** * Interface for component instance. Implementation classes of this interface * will be instantiated by the application when component is added to the @@ -12,9 +14,9 @@ import java.io.Serializable; * * @author Branislav Stojkovic * - * @see IComponentType + * @see ComponentType */ -public interface IComponentInstance extends Serializable { +public interface IDIYComponent extends Serializable { /** * Draws the component onto the {@link Graphics2D}. @@ -23,4 +25,13 @@ public interface IComponentInstance extends Serializable { * @param componentState */ void draw(Graphics2D g2d, ComponentState componentState); + + /** + * Draws icon representation of the component. + * + * @param g2d + * @param width + * @param height + */ + void drawIcon(Graphics2D g2d, int width, int height); } 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 da4ccf46..856964bb 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 @@ -29,10 +29,10 @@ public class Project implements Serializable { private String description; private Size width; private Size height; - private List components; + private List components; public Project() { - components = new ArrayList(); + components = new ArrayList(); title = DEFAULT_TITLE; author = System.getProperty("user.name"); width = DEFAULT_WIDTH; @@ -40,7 +40,7 @@ public class Project implements Serializable { } public Project(String title, String author, String description, Size width, Size height, - List components) { + List components) { super(); this.title = title; this.author = author; @@ -95,7 +95,7 @@ public class Project implements Serializable { this.height = height; } - public List getComponents() { + public List getComponents() { return components; } @@ -156,9 +156,9 @@ public class Project implements Serializable { // @Override // public Project clone() throws CloneNotSupportedException { - // List clonedComponents = new - // ArrayList(); - // for (IComponentInstance component : components) { + // List clonedComponents = new + // ArrayList(); + // for (IDIYComponent component : components) { // clonedComponents.add(component.clone()); // } // Project project = new Project(title, author, description, diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java new file mode 100644 index 00000000..8e1444e3 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java @@ -0,0 +1,32 @@ +package org.diylc.core.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import org.diylc.core.ComponentLayer; +import org.diylc.core.IDIYComponent; +import org.diylc.core.VisibilityPolicy; + +/** + * Annotation for {@link IDIYComponent} implementation. Describes component + * properties. + * + * @author Branislav Stojkovic + */ +@Retention(RetentionPolicy.RUNTIME) +public @interface ComponentDescriptor { + + String name(); + + String desciption(); + + String category(); + + String author(); + + String instanceNamePrefix(); + + ComponentLayer componentLayer() default ComponentLayer.COMPONENT; + + boolean stretchable() default true; +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentName.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentName.java deleted file mode 100644 index 6855e18c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentName.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.diylc.core.annotations; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -@Retention(RetentionPolicy.RUNTIME) -public @interface ComponentName { - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/MainFrame.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/MainFrame.java index 842f4e2c..b337bf28 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/MainFrame.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/MainFrame.java @@ -73,7 +73,7 @@ public class MainFrame extends JFrame implements IView { presenter.installPlugin(canvasPlugin); Project project = new Project(); - // project.getComponents().add(new MockComponentInstance()); + // project.getComponents().add(new MockDIYComponent()); presenter.loadProject(project, true); addWindowListener(new WindowAdapter() { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasTargetListener.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasTargetListener.java index 8ba73116..4e3accfd 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasTargetListener.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasTargetListener.java @@ -53,7 +53,7 @@ class CanvasTargetListener implements DropTargetListener { // (t.isDataFlavorSupported(SelectionTransferable.selectionFlavor)) // { // if (currentPoint != null) { - // List selection = (List) t + // List selection = (List) t // .getTransferData(SelectionTransferable.selectionFlavor); // Point startPoint = (Point) t // .getTransferData(PointTransferable.pointFlavor); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/SelectionTransferable.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/SelectionTransferable.java index 5bdbc7af..68b3f4bf 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/SelectionTransferable.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/SelectionTransferable.java @@ -7,7 +7,7 @@ import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; import java.util.List; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; public class SelectionTransferable implements Transferable { @@ -16,9 +16,9 @@ public class SelectionTransferable implements Transferable { "Component Selection"); private Point startPoint; - private List selection; + private List selection; - public SelectionTransferable(List selection, Point startPoint) { + public SelectionTransferable(List selection, Point startPoint) { super(); this.selection = selection; this.startPoint = startPoint; diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java index fd90ed9f..2dfcf0e7 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java @@ -19,7 +19,7 @@ import org.diylc.common.ComponentSelection; import org.diylc.common.EventType; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; import org.diylc.core.Project; import org.diylc.images.IconLoader; @@ -163,7 +163,7 @@ public class ClipboardManager implements IPlugIn, ClipboardOwner { public void actionPerformed(ActionEvent e) { LOG.info("Paste triggered"); try { - List components = (List) clipboard + List components = (List) clipboard .getData(ComponentSelection.listFlavor); plugInPort.addComponents(cloner.deepClone(components), null); } catch (Exception ex) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/BomMaker.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/BomMaker.java index 0f1d08f2..bd399078 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/BomMaker.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/BomMaker.java @@ -7,7 +7,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; import org.diylc.presenter.ComponentProcessor; @@ -25,9 +25,9 @@ public class BomMaker { private BomMaker() { } - public List createBom(List components) { + public List createBom(List components) { Map entryMap = new HashMap(); - for (IComponentInstance component : components) { + for (IDIYComponent component : components) { String name = ComponentProcessor.getInstance().extractBomName(component); String value = ComponentProcessor.getInstance().extractBomValue(component); if ((name != null) && (value != null)) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java index 6e7d7300..f214024a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java @@ -21,9 +21,9 @@ import org.diylc.common.ControlPointWrapper; import org.diylc.common.EventType; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; -import org.diylc.core.IComponentInstance; -import org.diylc.core.IComponentType; +import org.diylc.core.IDIYComponent; import org.diylc.presenter.ComponentProcessor; +import org.diylc.presenter.ComponentType; import com.diyfever.gui.MemoryBar; import com.diyfever.gui.miscutils.PercentageListCellRenderer; @@ -41,8 +41,8 @@ public class StatusBar extends JPanel implements IPlugIn { private IPlugInPort plugInPort; // State variables - private IComponentType componentSlot; - private List componentsUnderCursor; + private ComponentType componentSlot; + private List componentsUnderCursor; public StatusBar() { super(); @@ -159,12 +159,12 @@ public class StatusBar extends JPanel implements IPlugIn { } break; case SLOT_CHANGED: - componentSlot = (IComponentType) params[0]; + componentSlot = (ComponentType) params[0]; refreshStatusText(); break; case AVAILABLE_CTRL_POINTS_CHANGED: - componentsUnderCursor = new ArrayList( - ((Map) params[0]).keySet()); + componentsUnderCursor = new ArrayList( + ((Map) params[0]).keySet()); refreshStatusText(); break; } @@ -177,7 +177,7 @@ public class StatusBar extends JPanel implements IPlugIn { } else { // String formattedNames = ""; // int n = 1; - // for (IComponentInstance component : componentsUnderCursor) { + // for (IDIYComponent component : componentsUnderCursor) { // if (n > 1) { // formattedNames += ", "; // } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentButton.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentButton.java index 3240f744..b753ca27 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentButton.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentButton.java @@ -8,8 +8,7 @@ import java.awt.event.ActionListener; import javax.swing.JButton; import org.diylc.common.IPlugInPort; -import org.diylc.core.IComponentType; - +import org.diylc.presenter.ComponentType; /** * {@link JButton} that displays component type icon and instantiates the @@ -22,9 +21,9 @@ class ComponentButton extends JButton { private static final long serialVersionUID = 1L; private IPlugInPort plugInPort; - private IComponentType componentType; + private ComponentType componentType; - public ComponentButton(final IPlugInPort plugInPort, final IComponentType componentType) { + public ComponentButton(final IPlugInPort plugInPort, final ComponentType componentType) { super(componentType.getIcon()); this.plugInPort = plugInPort; this.componentType = componentType; @@ -59,10 +58,8 @@ class ComponentButton extends JButton { private void initializeDnD() { // Initialize drag source recognizer. - DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer( - this, + DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_MOVE, - new ToolboxGestureListener(plugInPort, componentType.getComponentInstanceClass() - .getName())); + new ToolboxGestureListener(plugInPort, componentType.getInstanceClass().getName())); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentTabbedPane.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentTabbedPane.java index f1c6a1e5..ab1ac7d2 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentTabbedPane.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/toolbox/ComponentTabbedPane.java @@ -9,7 +9,7 @@ import javax.swing.JButton; import javax.swing.JTabbedPane; import org.diylc.common.IPlugInPort; -import org.diylc.core.IComponentType; +import org.diylc.presenter.ComponentType; class ComponentTabbedPane extends JTabbedPane { @@ -20,16 +20,16 @@ class ComponentTabbedPane extends JTabbedPane { public ComponentTabbedPane(IPlugInPort plugInPort) { super(); this.plugInPort = plugInPort; - Map> componentTypes = plugInPort.getComponentTypes(); - for (Map.Entry> entry : componentTypes.entrySet()) { + Map> componentTypes = plugInPort.getComponentTypes(); + for (Map.Entry> entry : componentTypes.entrySet()) { addTab(entry.getKey(), createComponentPanel(entry.getValue())); } } - private Container createComponentPanel(List componentTypes) { + private Container createComponentPanel(List componentTypes) { Container componentPanel = new Container(); componentPanel.setLayout(new BoxLayout(componentPanel, BoxLayout.X_AXIS)); - for (IComponentType componentType : componentTypes) { + for (ComponentType componentType : componentTypes) { JButton button = new ComponentButton(plugInPort, componentType); componentPanel.add(button); } 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 5250744a..e8235194 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 @@ -10,7 +10,7 @@ import java.util.Map; import org.apache.log4j.Logger; import org.diylc.common.ControlPointWrapper; import org.diylc.common.PropertyWrapper; -import org.diylc.core.IComponentInstance; +import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.BomName; import org.diylc.core.annotations.BomValue; import org.diylc.core.annotations.ControlPoint; @@ -54,7 +54,7 @@ public class ComponentProcessor { * @param clazz * @return */ - public List extractProperties(Class clazz) { + public List extractProperties(Class clazz) { if (propertyCache.containsKey(clazz)) { return cloner.deepClone(propertyCache.get(clazz)); } @@ -91,13 +91,13 @@ public class ComponentProcessor { * Reads all control points from the specified component class. Note than * control points are cached, so it may happen that control points returned * already have their values populated. Always use - * {@link ControlPointWrapper#readFrom(IComponentInstance)} to update their + * {@link ControlPointWrapper#readFrom(IDIYComponent)} to update their * state from an actual component. * * @param clazz * @return */ - public List extractControlPoints(Class clazz) { + public List extractControlPoints(Class clazz) { if (controlPointCache.containsKey(clazz)) { return cloner.deepClone(controlPointCache.get(clazz)); } @@ -136,12 +136,12 @@ public class ComponentProcessor { * @return */ public List getMutualSelectionProperties( - List selectedComponents) { + List selectedComponents) { if (selectedComponents.isEmpty()) { return null; } List properties = new ArrayList(); - IComponentInstance firstComponent = selectedComponents.get(0); + IDIYComponent firstComponent = selectedComponents.get(0); properties.addAll(extractProperties(firstComponent.getClass())); // Initialize values for (PropertyWrapper property : properties) { @@ -153,7 +153,7 @@ public class ComponentProcessor { } } for (int i = 1; i < selectedComponents.size(); i++) { - IComponentInstance component = selectedComponents.get(i); + IDIYComponent component = selectedComponents.get(i); List newProperties = extractProperties(component.getClass()); for (PropertyWrapper property : newProperties) { try { @@ -183,7 +183,7 @@ public class ComponentProcessor { * @param component * @return */ - public String extractBomName(IComponentInstance component) { + public String extractBomName(IDIYComponent component) { String name = null; for (Method method : component.getClass().getMethods()) { if (method.isAnnotationPresent(BomName.class)) { @@ -204,7 +204,7 @@ public class ComponentProcessor { * @param component * @param newBomName */ - public void writeBomName(IComponentInstance component, String newBomName) { + public void writeBomName(IDIYComponent component, String newBomName) { for (Method method : component.getClass().getMethods()) { if (method.isAnnotationPresent(BomName.class)) { try { @@ -224,7 +224,7 @@ public class ComponentProcessor { * @param component * @return */ - public String extractBomValue(IComponentInstance component) { + public String extractBomValue(IDIYComponent component) { String value = null; for (Method method : component.getClass().getMethods()) { if (method.isAnnotationPresent(BomValue.class)) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentType.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentType.java new file mode 100644 index 00000000..342eabed --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentType.java @@ -0,0 +1,76 @@ +package org.diylc.presenter; + +import javax.swing.Icon; + +import org.diylc.core.ComponentLayer; +import org.diylc.core.IDIYComponent; + +/** + * Entity class used to describe a component type. + * + * @author Branislav Stojkovic + * + * @see IDIYComponent + */ +public class ComponentType { + + private String name; + private String description; + private String category; + private String namePrefix; + private String author; + private Icon icon; + private Class instanceClass; + private ComponentLayer layer; + + public ComponentType(String name, String description, String category, String namePrefix, + String author, Icon icon, Class instanceClass, + ComponentLayer layer) { + super(); + this.name = name; + this.description = description; + this.category = category; + this.namePrefix = namePrefix; + this.author = author; + this.icon = icon; + this.instanceClass = instanceClass; + this.layer = layer; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public String getCategory() { + return category; + } + + public String getNamePrefix() { + return namePrefix; + } + + public String getAuthor() { + return author; + } + + public Icon getIcon() { + return icon; + } + + public Class getInstanceClass() { + return instanceClass; + } + + public ComponentLayer getLayer() { + return layer; + } + + @Override + public String toString() { + return name; + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java index 34401084..b62d64e6 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java @@ -7,12 +7,15 @@ import java.awt.Composite; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Graphics2D; +import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.geom.Area; import java.awt.geom.Point2D; +import java.awt.image.BufferedImage; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.EnumSet; import java.util.HashMap; @@ -22,6 +25,8 @@ import java.util.Set; import java.util.Map.Entry; import javax.swing.Action; +import javax.swing.Icon; +import javax.swing.ImageIcon; import javax.swing.JComponent; import org.apache.log4j.Logger; @@ -35,10 +40,10 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.PropertyWrapper; import org.diylc.core.ComponentLayer; import org.diylc.core.ComponentState; -import org.diylc.core.IComponentInstance; -import org.diylc.core.IComponentType; +import org.diylc.core.IDIYComponent; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.gui.IView; import org.diylc.utils.Constants; @@ -61,17 +66,18 @@ public class Presenter implements IPlugInPort { private static final VersionNumber CURRENT_VERSION = new VersionNumber(0, 0, 0); private static final String DEFAULTS_KEY = "defaults"; private static final int CONTROL_POINT_SENSITIVITY = 4; + private static final int ICON_SIZE = 32; private double zoomLevel = 1; - private Map componentAreaMap; + private Map componentAreaMap; private Project currentProject; - private Map> componentTypes; + private Map> componentTypes; private List plugIns; private ComponentSelection selectedComponents; // List of components that have at least one of their control points // under the last recorded mouse position. - private Map componentControlPointMap; + private Map componentControlPointMap; private Cloner cloner; @@ -91,12 +97,12 @@ public class Presenter implements IPlugInPort { private Point previousDragPoint = null; private Project preDragProject = null; - private IComponentType componentSlot; + private ComponentType componentSlot; public Presenter(IView view) { super(); this.view = view; - componentAreaMap = new HashMap(); + componentAreaMap = new HashMap(); plugIns = new ArrayList(); messageDispatcher = new MessageDispatcher(); selectedComponents = new ComponentSelection(); @@ -141,7 +147,7 @@ public class Presenter implements IPlugInPort { if (componentSlot == null) { // Scale point to remove zoom factor. Point2D scaledPoint = scalePoint(point); - for (Map.Entry entry : componentAreaMap.entrySet()) { + for (Map.Entry entry : componentAreaMap.entrySet()) { if (entry.getValue().contains(scaledPoint)) { return Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); } @@ -178,28 +184,64 @@ public class Presenter implements IPlugInPort { messageDispatcher.dispatchMessage(EventType.REPAINT); } + @SuppressWarnings("unchecked") @Override - public Map> getComponentTypes() { + public Map> getComponentTypes() { if (componentTypes == null) { LOG.info("Loading component types."); - componentTypes = new HashMap>(); + componentTypes = new HashMap>(); List> componentTypeClasses = JarScanner.getInstance().scanFolder("library/", - IComponentType.class); + IDIYComponent.class); for (Class clazz : componentTypeClasses) { - try { - IComponentType componentType = (IComponentType) clazz.newInstance(); - List nestedList; + if (!Modifier.isAbstract(clazz.getModifiers())) { + ComponentDescriptor annotation = clazz.getAnnotation(ComponentDescriptor.class); + String name; + String description; + String category; + String namePrefix; + String author; + Icon icon; + Class instanceClass = (Class) clazz; + ComponentLayer layer; + if (annotation == null) { + name = clazz.getSimpleName(); + description = ""; + category = "Uncategorized"; + namePrefix = "Unknown"; + author = "Unknown"; + layer = ComponentLayer.COMPONENT; + } else { + name = annotation.name(); + description = annotation.desciption(); + category = annotation.category(); + namePrefix = annotation.instanceNamePrefix(); + author = annotation.author(); + layer = annotation.componentLayer(); + } + icon = null; + // Draw component icon. + try { + IDIYComponent componentInstance = (IDIYComponent) clazz.newInstance(); + Image image = new BufferedImage(ICON_SIZE, ICON_SIZE, + java.awt.image.BufferedImage.TYPE_INT_ARGB); + componentInstance.drawIcon((Graphics2D) image.getGraphics(), ICON_SIZE, + ICON_SIZE); + icon = new ImageIcon(image); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + ComponentType componentType = new ComponentType(name, description, category, + namePrefix, author, icon, instanceClass, layer); + List nestedList; if (componentTypes.containsKey(componentType.getCategory())) { nestedList = componentTypes.get(componentType.getCategory()); } else { - nestedList = new ArrayList(); + nestedList = new ArrayList(); componentTypes.put(componentType.getCategory(), nestedList); } nestedList.add(componentType); - } catch (InstantiationException e) { - LOG.warn("Could not instantiate: " + clazz.getName()); - } catch (IllegalAccessException e) { - LOG.warn("Could not access: " + clazz.getName()); } } } @@ -249,10 +291,10 @@ public class Presenter implements IPlugInPort { // g2dWrapper.resetTx(); - List components = getCurrentProject().getComponents(); + List components = getCurrentProject().getComponents(); componentAreaMap.clear(); if (components != null) { - for (IComponentInstance component : components) { + for (IDIYComponent component : components) { g2dWrapper.startedDrawingComponent(); ComponentState state = ComponentState.NORMAL; if (drawOptions.contains(DrawOption.SELECTION) @@ -343,9 +385,9 @@ public class Presenter implements IPlugInPort { * * @return */ - private List findComponentsAt(Point point) { - List components = new ArrayList(); - for (Map.Entry entry : componentAreaMap.entrySet()) { + private List findComponentsAt(Point point) { + List components = new ArrayList(); + for (Map.Entry entry : componentAreaMap.entrySet()) { if (entry.getValue().contains(point)) { components.add(entry.getKey()); } @@ -360,20 +402,20 @@ public class Presenter implements IPlugInPort { Point scaledPoint = scalePoint(point); if (componentSlot != null) { try { - instantiateComponent(componentSlot.getComponentInstanceClass(), componentSlot - .getName(), componentSlot.getInstanceNamePrefix(), scaledPoint); + instantiateComponent(componentSlot.getInstanceClass(), componentSlot.getName(), + componentSlot.getNamePrefix(), scaledPoint); } catch (Exception e) { LOG.error("Error instatiating component of type: " - + componentSlot.getComponentInstanceClass().getName()); + + componentSlot.getInstanceClass().getName()); } setNewComponentSlot(null); } else { - List components = findComponentsAt(scaledPoint); + List components = findComponentsAt(scaledPoint); // If there's nothing under mouse cursor deselect all. if (components.isEmpty()) { selectedComponents.clear(); } else { - IComponentInstance component = components.get(0); + IDIYComponent component = components.get(0); // If ctrl is pressed just toggle the component under mouse // cursor. if (ctrlDown) { @@ -395,9 +437,9 @@ public class Presenter implements IPlugInPort { @Override public void mouseMoved(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown) { - Map components = new HashMap(); + Map components = new HashMap(); Point scaledPoint = scalePoint(point); - for (IComponentInstance component : currentProject.getComponents()) { + for (IDIYComponent component : currentProject.getComponents()) { List currentPoints = ComponentProcessor.getInstance() .extractControlPoints(component.getClass()); for (ControlPointWrapper controlPoint : currentPoints) { @@ -431,7 +473,7 @@ public class Presenter implements IPlugInPort { } @Override - public Area getComponentArea(IComponentInstance component) { + public Area getComponentArea(IDIYComponent component) { return componentAreaMap.get(component); } @@ -447,7 +489,7 @@ public class Presenter implements IPlugInPort { preDragProject = cloner.deepClone(currentProject); Point scaledPoint = scalePoint(point); previousDragPoint = scaledPoint; - List components = findComponentsAt(scaledPoint); + List components = findComponentsAt(scaledPoint); if (!componentControlPointMap.isEmpty()) { // If we're dragging control points reset selection. selectedComponents.clear(); @@ -460,7 +502,7 @@ public class Presenter implements IPlugInPort { messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, selectedComponents); messageDispatcher.dispatchMessage(EventType.REPAINT); } else { - IComponentInstance component = components.get(0); + IDIYComponent component = components.get(0); // If the component under the cursor is not already selected, make // it into the only selected component. if (!selectedComponents.contains(component)) { @@ -479,8 +521,8 @@ public class Presenter implements IPlugInPort { } Point scaledPoint = scalePoint(point); if (!componentControlPointMap.isEmpty()) { - // We're dragging control point(s). - IComponentInstance firstComponent = componentControlPointMap.keySet().iterator().next(); + // We're dragging control point(s). + IDIYComponent firstComponent = componentControlPointMap.keySet().iterator().next(); ControlPointWrapper controlPoint = componentControlPointMap.get(firstComponent); if (controlPoint == null) { LOG.warn("Control point not found in the map!"); @@ -499,11 +541,11 @@ public class Presenter implements IPlugInPort { / Constants.GRID) * Constants.GRID); previousDragPoint.setLocation(x, y); - for (Entry entry : componentControlPointMap + for (Entry entry : componentControlPointMap .entrySet()) { try { controlPoint = entry.getValue(); - IComponentInstance component = entry.getKey(); + IDIYComponent component = entry.getKey(); controlPoint.readFrom(component); if (controlPoint.isEditable()) { controlPoint.getValue().setLocation(x, y); @@ -543,7 +585,7 @@ public class Presenter implements IPlugInPort { this.selectionRect = Utils.createRectangle(scaledPoint, previousDragPoint); } selectedComponents.clear(); - for (IComponentInstance component : currentProject.getComponents()) { + for (IDIYComponent component : currentProject.getComponents()) { Area area = componentAreaMap.get(component); if ((area != null) && area.intersects(selectionRect)) { selectedComponents.add(component); @@ -571,7 +613,7 @@ public class Presenter implements IPlugInPort { int dx = (int) (Math.round((toPoint.x - fromPoint.x) / zoomLevel / Constants.GRID) * Constants.GRID); int dy = (int) (Math.round((toPoint.y - fromPoint.y) / zoomLevel / Constants.GRID) * Constants.GRID); fromPoint.translate(dx, dy); - for (IComponentInstance component : selectedComponents) { + for (IDIYComponent component : selectedComponents) { List controlPoints = ComponentProcessor.getInstance() .extractControlPoints(component.getClass()); for (ControlPointWrapper controlPoint : controlPoints) { @@ -595,7 +637,7 @@ public class Presenter implements IPlugInPort { } @Override - public void addComponents(List components, Point preferredPoint) { + public void addComponents(List components, Point preferredPoint) { LOG.debug(String.format("addComponents(%s)", components)); Project oldProject = cloner.deepClone(currentProject); currentProject.getComponents().addAll(components); @@ -634,7 +676,7 @@ public class Presenter implements IPlugInPort { @Override // @Override // public Object getDefaultPropertyValue( - // Class componentClass, + // Class componentClass, // String propertyName) { // return configuration.getDefaultPropertyValues().get( // componentClass.getName() + ":" + propertyName); @@ -647,7 +689,7 @@ public class Presenter implements IPlugInPort { defaultMap = new HashMap(); ConfigurationManager.getInstance().setConfigurationItem(DEFAULTS_KEY, defaultMap); } - for (IComponentInstance component : selectedComponents) { + for (IDIYComponent component : selectedComponents) { String className = component.getClass().getName(); LOG.debug("Default property value set for " + className + ":" + propertyName); defaultMap.put(className + ":" + propertyName, value); @@ -655,14 +697,14 @@ public class Presenter implements IPlugInPort { } @SuppressWarnings("unchecked") - private void instantiateComponent(Class componentClass, + private void instantiateComponent(Class componentClass, String componentTypeName, String namePrefix, Point point) throws Exception { LOG.info("Instatiating component of type: " + componentClass.getName()); Project oldProject = cloner.deepClone(currentProject); // Instantiate the component. - IComponentInstance component = componentClass.newInstance(); + IDIYComponent component = componentClass.newInstance(); // Find the next available name for the component. int i = 0; @@ -671,7 +713,7 @@ public class Presenter implements IPlugInPort { i++; String name = namePrefix + i; exists = false; - for (IComponentInstance c : currentProject.getComponents()) { + for (IDIYComponent c : currentProject.getComponents()) { String cName = ComponentProcessor.getInstance().extractBomName(c); if (cName.equals(name)) { exists = true; @@ -735,7 +777,7 @@ public class Presenter implements IPlugInPort { LOG.debug(String.format("applyPropertiesToSelection(%s)", properties)); Project oldProject = cloner.deepClone(currentProject); try { - for (IComponentInstance component : selectedComponents) { + for (IDIYComponent component : selectedComponents) { for (PropertyWrapper property : properties) { property.writeTo(component); } @@ -751,7 +793,7 @@ public class Presenter implements IPlugInPort { } @Override - public void setNewComponentSlot(IComponentType componentType) { + public void setNewComponentSlot(ComponentType componentType) { LOG.debug(String.format("setNewComponentSlot(%s)", componentType == null ? null : componentType.getName())); this.componentSlot = componentType; @@ -771,8 +813,7 @@ public class Presenter implements IPlugInPort { (int) (point.y / zoomLevel)); } - private boolean shouldShowControlPoint(ControlPointWrapper controlPoint, - IComponentInstance component) { + private boolean shouldShowControlPoint(ControlPointWrapper controlPoint, IDIYComponent component) { return controlPoint.getVisibilityPolicy().equals(VisibilityPolicy.ALWAYS) || ((controlPoint.getVisibilityPolicy().equals(VisibilityPolicy.WHEN_SELECTED)) && (getSelectedComponents() .contains(component))); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java index 2a1b90be..c7f172a0 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java @@ -5,8 +5,8 @@ import static org.junit.Assert.*; import java.util.ArrayList; import java.util.List; -import org.diylc.components.MockComponentInstance; -import org.diylc.core.IComponentInstance; +import org.diylc.components.MockDIYComponent; +import org.diylc.core.IDIYComponent; import org.diylc.core.measures.Capacitance; import org.diylc.core.measures.CapacitanceUnit; import org.diylc.plugins.file.BomEntry; @@ -18,12 +18,12 @@ public class BomMakerTest { @Test public void testCreateBom() { - List components = new ArrayList(); - MockComponentInstance c1 = new MockComponentInstance(); + List components = new ArrayList(); + MockDIYComponent c1 = new MockDIYComponent(); c1.setC(new Capacitance(3d, CapacitanceUnit.pF)); components.add(c1); - components.add(new MockComponentInstance()); - components.add(new MockComponentInstance()); + components.add(new MockDIYComponent()); + components.add(new MockDIYComponent()); List bom = BomMaker.getInstance().createBom(components); assertNotNull(bom); assertEquals(2, bom.size()); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/presenter/ClassProcessorTest.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/presenter/ClassProcessorTest.java index 8a261575..e8ba6b7a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/presenter/ClassProcessorTest.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/presenter/ClassProcessorTest.java @@ -7,7 +7,7 @@ import java.util.List; import org.diylc.common.ControlPointWrapper; import org.diylc.common.PropertyWrapper; -import org.diylc.components.MockComponentInstance; +import org.diylc.components.MockDIYComponent; import org.diylc.presenter.ComponentProcessor; import org.junit.Test; @@ -17,7 +17,7 @@ public class ClassProcessorTest { @Test public void testExtractProperties() { List properties = ComponentProcessor.getInstance().extractProperties( - MockComponentInstance.class); + MockDIYComponent.class); assertNotNull(properties); assertEquals(4, properties.size()); }; @@ -25,7 +25,7 @@ public class ClassProcessorTest { @Test public void testExtractControlPoints() { List controlPoints = ComponentProcessor.getInstance() - .extractControlPoints(MockComponentInstance.class); + .extractControlPoints(MockDIYComponent.class); assertNotNull(controlPoints); assertEquals(1, controlPoints.size()); };