Adding an enum editor for the GUI. Merge from MK branch rev. 157
This commit is contained in:
parent
5690097d44
commit
2a215953eb
@ -4,6 +4,7 @@ package eva2;
|
|||||||
* Main product and version information strings.
|
* Main product and version information strings.
|
||||||
*
|
*
|
||||||
* --- Changelog
|
* --- Changelog
|
||||||
|
* 2.030: Added an EnumEditor to access enums easily through the GUI.
|
||||||
* 2.029: Tuned the 2d-graphs which now paints quicker and changes size depending on the
|
* 2.029: Tuned the 2d-graphs which now paints quicker and changes size depending on the
|
||||||
* surrounding plot window. Added a preloader-thread to accelerate the GUI at starting time.
|
* surrounding plot window. Added a preloader-thread to accelerate the GUI at starting time.
|
||||||
* 2.028: Tuned the Population to sort only when necessary on calls to getBestN... Added StatisticsDummy.
|
* 2.028: Tuned the Population to sort only when necessary on calls to getBestN... Added StatisticsDummy.
|
||||||
@ -29,7 +30,7 @@ package eva2;
|
|||||||
public class EvAInfo {
|
public class EvAInfo {
|
||||||
public static final String productName = "EvA 2";
|
public static final String productName = "EvA 2";
|
||||||
public static final String productLongName = "Evolutionary Algorithms Workbench 2";
|
public static final String productLongName = "Evolutionary Algorithms Workbench 2";
|
||||||
public static final String versionNum = new String ("2.029");
|
public static final String versionNum = new String ("2.030");
|
||||||
public static final String url = "http://www.ra.cs.uni-tuebingen.de/software/EvA2";
|
public static final String url = "http://www.ra.cs.uni-tuebingen.de/software/EvA2";
|
||||||
|
|
||||||
public static final String propertyFile = "resources/EvA2.props";
|
public static final String propertyFile = "resources/EvA2.props";
|
||||||
|
81
src/eva2/gui/EnumEditor.java
Normal file
81
src/eva2/gui/EnumEditor.java
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
package eva2.gui;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.event.WindowAdapter;
|
||||||
|
import java.awt.event.WindowEvent;
|
||||||
|
import java.beans.PropertyEditorSupport;
|
||||||
|
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by IntelliJ IDEA.
|
||||||
|
* User: streiche
|
||||||
|
* Date: 27.06.2003
|
||||||
|
* Time: 11:41:01
|
||||||
|
* To change this template use Options | File Templates.
|
||||||
|
*/
|
||||||
|
public class EnumEditor extends PropertyEditorSupport {
|
||||||
|
/** The Enum values that may be chosen */
|
||||||
|
private Object[] values = null;
|
||||||
|
|
||||||
|
public String getAsText() {
|
||||||
|
return getValue().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(Object value) {
|
||||||
|
if (value instanceof Enum) {
|
||||||
|
values = ((Enum)value).getClass().getEnumConstants();
|
||||||
|
super.setValue(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setAsText(String text) throws IllegalArgumentException {
|
||||||
|
for (int i=0; i<values.length; i++) {
|
||||||
|
if (text.equals(values[i].toString())) {
|
||||||
|
setValue((Enum)values[i]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("Invalid text for enum");
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String[] getTags() {
|
||||||
|
String[] tags = new String[values.length];
|
||||||
|
for (int i=0; i<tags.length; i++) tags[i]=values[i].toString();
|
||||||
|
return tags;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the editor.
|
||||||
|
*
|
||||||
|
* @param args ignored
|
||||||
|
*/
|
||||||
|
public static void main(String [] args) {
|
||||||
|
try {
|
||||||
|
Enum<?> initial = TestEnum.asdf;
|
||||||
|
EnumEditor ed = new EnumEditor();
|
||||||
|
ed.setValue(initial);
|
||||||
|
PropertyValueSelector ps = new PropertyValueSelector(ed);
|
||||||
|
JFrame f = new JFrame();
|
||||||
|
f.addWindowListener(new WindowAdapter() {
|
||||||
|
public void windowClosing(WindowEvent e) {
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
f.getContentPane().setLayout(new BorderLayout());
|
||||||
|
f.getContentPane().add(ps, BorderLayout.CENTER);
|
||||||
|
f.pack();
|
||||||
|
f.setVisible(true);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
System.err.println(ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum TestEnum { asdf, sdf, asdfa};
|
@ -38,6 +38,7 @@ public class PropertyEditorProvider {
|
|||||||
// if (TRACE) System.out.println((editor == null ) ? "No editor from PEM" : ("Found " + editor.getClass()));
|
// if (TRACE) System.out.println((editor == null ) ? "No editor from PEM" : ("Found " + editor.getClass()));
|
||||||
if ((editor == null) && useDefaultGOE ) {
|
if ((editor == null) && useDefaultGOE ) {
|
||||||
if (cls.isArray()) editor = new GenericArrayEditor();
|
if (cls.isArray()) editor = new GenericArrayEditor();
|
||||||
|
else if (cls.isEnum()) editor = new EnumEditor();
|
||||||
else editor = new GenericObjectEditor();
|
else editor = new GenericObjectEditor();
|
||||||
// if (TRACE) System.out.println("using GOE/GAE");
|
// if (TRACE) System.out.println("using GOE/GAE");
|
||||||
}
|
}
|
||||||
@ -119,6 +120,7 @@ public class PropertyEditorProvider {
|
|||||||
if (TRACE) System.out.println((editor == null ) ? "No editor from PEM by type" : ("Found " + editor.getClass()));
|
if (TRACE) System.out.println((editor == null ) ? "No editor from PEM by type" : ("Found " + editor.getClass()));
|
||||||
if ((editor == null) && useDefaultGOE ) {
|
if ((editor == null) && useDefaultGOE ) {
|
||||||
if (type.isArray()) editor = new GenericArrayEditor();
|
if (type.isArray()) editor = new GenericArrayEditor();
|
||||||
|
else if (type.isEnum()) editor = new EnumEditor();
|
||||||
else editor = new GenericObjectEditor();
|
else editor = new GenericObjectEditor();
|
||||||
if (TRACE) System.out.println("using GOE/GAE");
|
if (TRACE) System.out.println("using GOE/GAE");
|
||||||
}
|
}
|
||||||
@ -144,6 +146,7 @@ public class PropertyEditorProvider {
|
|||||||
*/
|
*/
|
||||||
public static void installEditors() {
|
public static void installEditors() {
|
||||||
PropertyEditorManager.registerEditor(SelectedTag.class, TagEditor.class);
|
PropertyEditorManager.registerEditor(SelectedTag.class, TagEditor.class);
|
||||||
|
PropertyEditorManager.registerEditor(Enum.class, EnumEditor.class);
|
||||||
PropertyEditorManager.registerEditor(int[].class, GenericArrayEditor.class);
|
PropertyEditorManager.registerEditor(int[].class, GenericArrayEditor.class);
|
||||||
PropertyEditorManager.registerEditor(double[].class, GenericArrayEditor.class);
|
PropertyEditorManager.registerEditor(double[].class, GenericArrayEditor.class);
|
||||||
PropertyEditorManager.registerEditor(InterfaceTerminator[].class, GenericArrayEditor.class);
|
PropertyEditorManager.registerEditor(InterfaceTerminator[].class, GenericArrayEditor.class);
|
||||||
|
@ -114,11 +114,11 @@ public class TagEditor extends PropertyEditorSupport {
|
|||||||
try {
|
try {
|
||||||
PropertyEditorManager.registerEditor(SelectedTag.class,TagEditor.class);
|
PropertyEditorManager.registerEditor(SelectedTag.class,TagEditor.class);
|
||||||
Tag [] tags = {
|
Tag [] tags = {
|
||||||
new Tag(1, "First option"),
|
new Tag(0, "First option"),
|
||||||
new Tag(2, "Second option"),
|
new Tag(1, "Second option"),
|
||||||
new Tag(3, "Third option"),
|
new Tag(2, "Third option"),
|
||||||
new Tag(4, "Fourth option"),
|
new Tag(3, "Fourth option"),
|
||||||
new Tag(5, "Fifth option"),
|
new Tag(4, "Fifth option"),
|
||||||
};
|
};
|
||||||
SelectedTag initial = new SelectedTag(1, tags);
|
SelectedTag initial = new SelectedTag(1, tags);
|
||||||
TagEditor ce = new TagEditor();
|
TagEditor ce = new TagEditor();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user