From 7bd3245024eb05ed449b31e3bd404a1937e478cd Mon Sep 17 00:00:00 2001 From: bancika Date: Wed, 5 Jan 2011 19:41:32 +0000 Subject: [PATCH] added enum editor --- .../org/diylc/components/DIL_IC.java | 15 +++++++-- .../src/org/diylc/common/Orientation.java | 15 +++++++++ .../src/org/diylc/gui/editor/EnumEditor.java | 32 +++++++++++++++++++ .../diylc/gui/editor/FieldEditorFactory.java | 5 ++- .../gui/editor/PropertyEditorDialog.java | 2 +- .../org/diylc/gui/editor/StringEditor.java | 1 + .../diylc/plugins/statusbar/StatusBar.java | 3 +- 7 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Orientation.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/EnumEditor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/DIL_IC.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/DIL_IC.java index db2339d4..703ced92 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/DIL_IC.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/DIL_IC.java @@ -6,6 +6,7 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.geom.Rectangle2D; +import org.diylc.common.Orientation; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.Project; @@ -27,6 +28,7 @@ public class DIL_IC implements IDIYComponent { private Point point2 = new Point((int) (Constants.GRID) * 4, (int) (Constants.GRID) * 5); private String name = "New Component"; private String value = ""; + private Orientation orientation = Orientation.DEFAULT; @EditableProperty public String getName() { @@ -46,16 +48,25 @@ public class DIL_IC implements IDIYComponent { this.value = value; } + @EditableProperty + public Orientation getOrientation() { + return orientation; + } + + public void setOrientation(Orientation orientation) { + this.orientation = orientation; + } + @Override public int getControlPointCount() { return 2; } - + @Override public Point getControlPoint(int index) { return index == 0 ? point1 : point2; } - + @Override public void setControlPoint(Point point, int index) { if (index == 0) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Orientation.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Orientation.java new file mode 100644 index 00000000..5d2d4f22 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Orientation.java @@ -0,0 +1,15 @@ +package org.diylc.common; + +public enum Orientation { + + DEFAULT, _90, _180, _270; + + @Override + public String toString() { + if (this == DEFAULT) { + return "Default"; + } else { + return name().replace("_", "") + " degrees clockwise"; + } + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/EnumEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/EnumEditor.java new file mode 100644 index 00000000..af41e5c1 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/EnumEditor.java @@ -0,0 +1,32 @@ +package org.diylc.gui.editor; + +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; + +import org.diylc.common.PropertyWrapper; + +public class EnumEditor extends JComboBox { + + private static final long serialVersionUID = 1L; + + private final PropertyWrapper property; + + public EnumEditor(PropertyWrapper property) { + this.property = property; + Object[] values = property.getType().getEnumConstants(); + setModel(new DefaultComboBoxModel(values)); + setSelectedItem(property.getValue()); + addItemListener(new ItemListener() { + + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + EnumEditor.this.property.setValue(e.getItem()); + } + } + }); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/FieldEditorFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/FieldEditorFactory.java index 7ba92c39..c8579074 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/FieldEditorFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/FieldEditorFactory.java @@ -6,7 +6,6 @@ import java.awt.Component; import org.diylc.common.PropertyWrapper; import org.diylc.core.measures.AbstractMeasure; - public class FieldEditorFactory { public static Component createFieldEditor(PropertyWrapper property) { @@ -22,6 +21,10 @@ public class FieldEditorFactory { MeasureEditor editor = new MeasureEditor(property); return editor; } + if (property.getType().isEnum()) { + EnumEditor editor = new EnumEditor(property); + return editor; + } return null; } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/PropertyEditorDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/PropertyEditorDialog.java index a1ee0495..db0fe1f6 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/PropertyEditorDialog.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/PropertyEditorDialog.java @@ -34,7 +34,7 @@ public class PropertyEditorDialog extends ButtonDialog { private Set defaultedProperties; public PropertyEditorDialog(JFrame owner, List properties) { - super(owner, "Editor", new String[] { ButtonDialog.OK, ButtonDialog.CANCEL }); + super(owner, "Component Editor", new String[] { ButtonDialog.OK, ButtonDialog.CANCEL }); LOG.debug("Creating property editor for: " + properties); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/StringEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/StringEditor.java index dca77eea..48ecc064 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/StringEditor.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/gui/editor/StringEditor.java @@ -10,6 +10,7 @@ import org.diylc.common.PropertyWrapper; public class StringEditor extends JTextField { private static final long serialVersionUID = 1L; + private final PropertyWrapper property; public StringEditor(PropertyWrapper property) { 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 6046ba6a..2bc3c1d2 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 @@ -55,7 +55,8 @@ public class StatusBar extends JPanel implements IPlugIn { private JComboBox getZoomBox() { if (zoomBox == null) { - zoomBox = new JComboBox(new Double[] { 0.25d, 0.5d, 0.75d, 1d, 1.5d, 2d }); + zoomBox = new JComboBox(new Double[] { 0.25d, 0.3333d, 0.5d, 0.6667d, 0.75d, 1d, 1.25d, + 1.5d, 2d }); zoomBox.setSelectedItem(1d); zoomBox.setFocusable(false); zoomBox.setRenderer(new PercentageListCellRenderer());