GUI update, changes to GenericAreaEditor for GP, merging MK rev. 281
This commit is contained in:
parent
833ed14426
commit
d52694d3e8
@ -5,65 +5,84 @@ import javax.swing.*;
|
||||
|
||||
import eva2.server.go.individuals.codings.gp.AbstractGPNode;
|
||||
import eva2.server.go.individuals.codings.gp.GPArea;
|
||||
import eva2.tools.EVAHELP;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import java.beans.PropertyEditor;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by IntelliJ IDEA.
|
||||
* User: streiche
|
||||
* Date: 23.03.2004
|
||||
* Time: 15:03:29
|
||||
* To change this template use File | Settings | File Templates.
|
||||
* Date: 27.06.2003
|
||||
* Time: 11:41:01
|
||||
* To change this template use Options | File Templates.
|
||||
*/
|
||||
public class GenericStringListEditor implements PropertyEditor {
|
||||
public abstract class AbstractListSelectionEditor extends JPanel implements PropertyEditor {
|
||||
|
||||
/** Handles property change notification */
|
||||
private PropertyChangeSupport m_Support = new PropertyChangeSupport(this);
|
||||
/** The label for when we can't edit that type */
|
||||
private JLabel m_Label = new JLabel("Can't edit", SwingConstants.CENTER);
|
||||
/** The GPArea that is to be edited*/
|
||||
private PropertyStringList m_List;
|
||||
|
||||
|
||||
/** The gaphix stuff */
|
||||
private JPanel m_CustomEditor, m_NodePanel;
|
||||
private JCheckBox[] m_BlackCheck;
|
||||
protected JCheckBox[] m_BlackCheck;
|
||||
|
||||
public GenericStringListEditor() {
|
||||
// compiled code
|
||||
public AbstractListSelectionEditor() {
|
||||
}
|
||||
|
||||
/** This method will init the CustomEditor Panel
|
||||
*/
|
||||
private void initCustomEditor() {
|
||||
this.m_CustomEditor = new JPanel();
|
||||
this.m_CustomEditor.setPreferredSize(new Dimension(200, 200));
|
||||
this.m_CustomEditor.setLayout(new BorderLayout());
|
||||
this.m_CustomEditor.add(new JLabel("Select:"), BorderLayout.NORTH);
|
||||
this.m_CustomEditor.add(new JLabel("Choose the area:"), BorderLayout.NORTH);
|
||||
this.m_NodePanel = new JPanel();
|
||||
this.m_CustomEditor.add(new JScrollPane(this.m_NodePanel), BorderLayout.CENTER);
|
||||
this.updateEditor();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of elements in the list.
|
||||
* @return
|
||||
*/
|
||||
protected abstract int getElementCount();
|
||||
|
||||
/**
|
||||
* Get the display name of an element.
|
||||
*
|
||||
* @param i
|
||||
* @return
|
||||
*/
|
||||
protected abstract String getElementName(int i);
|
||||
|
||||
/**
|
||||
* Get the initial selection state of an element.
|
||||
*
|
||||
* @param i
|
||||
* @return
|
||||
*/
|
||||
protected abstract boolean isElementAllowed(int i);
|
||||
|
||||
/** The object may have changed update the editor.
|
||||
*/
|
||||
private void updateEditor() {
|
||||
if (this.m_NodePanel != null) {
|
||||
String[] strings = this.m_List.getStrings();
|
||||
boolean[] booleans = this.m_List.getSelection();
|
||||
this.m_NodePanel.removeAll();
|
||||
this.m_NodePanel.setLayout(new GridLayout(strings.length, 1));
|
||||
this.m_BlackCheck = new JCheckBox[strings.length];
|
||||
for (int i = 0; i < strings.length; i++) {
|
||||
this.m_BlackCheck[i] = new JCheckBox(strings[i], booleans[i]);
|
||||
this.m_NodePanel.setLayout(new GridLayout(getElementCount(), 1));
|
||||
this.m_BlackCheck = new JCheckBox[getElementCount()];
|
||||
for (int i = 0; i < getElementCount(); i++) {
|
||||
this.m_BlackCheck[i] = new JCheckBox(getElementName(i), isElementAllowed(i));
|
||||
this.m_BlackCheck[i].addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent ev) {
|
||||
makeNodeList();
|
||||
performOnAction();
|
||||
}
|
||||
});
|
||||
this.m_NodePanel.add(this.m_BlackCheck[i]);
|
||||
@ -71,31 +90,29 @@ public class GenericStringListEditor implements PropertyEditor {
|
||||
}
|
||||
}
|
||||
|
||||
/** This method checks the current BlackList and compiles it
|
||||
* to a new ReducedList.
|
||||
/**
|
||||
* Perform actions when the selection state changes.
|
||||
*/
|
||||
private void makeNodeList() {
|
||||
for (int i = 0; i < this.m_BlackCheck.length; i++) {
|
||||
this.m_List.setSelectionForElement(i, this.m_BlackCheck[i].isSelected());
|
||||
}
|
||||
}
|
||||
protected abstract void performOnAction();
|
||||
|
||||
/**
|
||||
* Set the base object, return true on success.
|
||||
* @param o
|
||||
* @return
|
||||
*/
|
||||
protected abstract boolean setObject(Object o);
|
||||
|
||||
/** This method will set the value of object that is to be edited.
|
||||
* @param o an object that must be an array.
|
||||
*/
|
||||
public void setValue(Object o) {
|
||||
if (o instanceof PropertyStringList) {
|
||||
this.m_List = (PropertyStringList) o;
|
||||
this.updateEditor();
|
||||
}
|
||||
if (setObject(o)) updateEditor();
|
||||
}
|
||||
|
||||
/** Retruns the current object.
|
||||
* @return the current object
|
||||
*/
|
||||
public Object getValue() {
|
||||
return this.m_List;
|
||||
}
|
||||
public abstract Object getValue();
|
||||
|
||||
public String getJavaInitializationString() {
|
||||
return "TEST";
|
||||
@ -146,7 +163,7 @@ public class GenericStringListEditor implements PropertyEditor {
|
||||
public void paintValue(Graphics gfx, Rectangle box) {
|
||||
FontMetrics fm = gfx.getFontMetrics();
|
||||
int vpad = (box.height - fm.getAscent()) / 2;
|
||||
String rep = "Select from available Elements";
|
||||
String rep = "Select from list";
|
||||
gfx.drawString(rep, 2, fm.getHeight() + vpad - 3 );
|
||||
}
|
||||
/** Returns true because we do support a custom editor.
|
@ -1,21 +1,7 @@
|
||||
package eva2.gui;
|
||||
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import eva2.server.go.individuals.codings.gp.AbstractGPNode;
|
||||
import eva2.server.go.individuals.codings.gp.GPArea;
|
||||
import eva2.tools.EVAHELP;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import java.beans.PropertyEditor;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by IntelliJ IDEA.
|
||||
@ -24,75 +10,48 @@ import java.util.ArrayList;
|
||||
* Time: 11:41:01
|
||||
* To change this template use Options | File Templates.
|
||||
*/
|
||||
public class GenericAreaEditor extends JPanel implements PropertyEditor {
|
||||
public class GenericAreaEditor extends AbstractListSelectionEditor {
|
||||
|
||||
/** Handles property change notification */
|
||||
private PropertyChangeSupport m_Support = new PropertyChangeSupport(this);
|
||||
/** The label for when we can't edit that type */
|
||||
private JLabel m_Label = new JLabel("Can't edit", SwingConstants.CENTER);
|
||||
/** The GPArea that is to be edited*/
|
||||
private GPArea m_AreaObject;
|
||||
|
||||
/** The gaphix stuff */
|
||||
private JPanel m_CustomEditor, m_NodePanel;
|
||||
private JCheckBox[] m_BlackCheck;
|
||||
|
||||
public GenericAreaEditor() {
|
||||
// compiled code
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getElementCount() {
|
||||
return m_AreaObject.getCompleteList().size();
|
||||
}
|
||||
|
||||
/** This method will init the CustomEditor Panel
|
||||
*/
|
||||
private void initCustomEditor() {
|
||||
this.m_CustomEditor = new JPanel();
|
||||
this.m_CustomEditor.setLayout(new BorderLayout());
|
||||
this.m_CustomEditor.add(new JLabel("Choose the area:"), BorderLayout.NORTH);
|
||||
this.m_NodePanel = new JPanel();
|
||||
this.m_CustomEditor.add(new JScrollPane(this.m_NodePanel), BorderLayout.CENTER);
|
||||
this.updateEditor();
|
||||
}
|
||||
@Override
|
||||
protected String getElementName(int i) {
|
||||
AbstractGPNode an = (AbstractGPNode)m_AreaObject.getCompleteList().get(i);
|
||||
return an.getName();
|
||||
}
|
||||
|
||||
/** The object may have changed update the editor.
|
||||
*/
|
||||
private void updateEditor() {
|
||||
if (this.m_NodePanel != null) {
|
||||
@Override
|
||||
protected boolean isElementAllowed(int i) {
|
||||
return ((Boolean)m_AreaObject.getBlackList().get(i)).booleanValue();
|
||||
}
|
||||
|
||||
ArrayList GPNodes = this.m_AreaObject.getCompleteList();
|
||||
ArrayList Allowed = this.m_AreaObject.getBlackList();
|
||||
this.m_NodePanel.removeAll();
|
||||
this.m_NodePanel.setLayout(new GridLayout(GPNodes.size(), 1));
|
||||
this.m_BlackCheck = new JCheckBox[GPNodes.size()];
|
||||
for (int i = 0; i < GPNodes.size(); i++) {
|
||||
this.m_BlackCheck[i] = new JCheckBox((((AbstractGPNode)GPNodes.get(i))).getName(), ((Boolean)Allowed.get(i)).booleanValue());
|
||||
this.m_BlackCheck[i].addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent ev) {
|
||||
makeNodeList();
|
||||
}
|
||||
});
|
||||
this.m_NodePanel.add(this.m_BlackCheck[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void performOnAction() {
|
||||
/** This method checks the current BlackList and compiles it
|
||||
* to a new ReducedList.
|
||||
*/
|
||||
for (int i = 0; i < this.m_BlackCheck.length; i++) {
|
||||
this.m_AreaObject.setBlackListElement(i, this.m_BlackCheck[i].isSelected());
|
||||
}
|
||||
this.m_AreaObject.compileReducedList();
|
||||
}
|
||||
|
||||
/** This method checks the current BlackList and compiles it
|
||||
* to a new ReducedList.
|
||||
*/
|
||||
private void makeNodeList() {
|
||||
for (int i = 0; i < this.m_BlackCheck.length; i++) {
|
||||
this.m_AreaObject.setBlackListElement(i, this.m_BlackCheck[i].isSelected());
|
||||
}
|
||||
this.m_AreaObject.compileReducedList();
|
||||
}
|
||||
|
||||
/** This method will set the value of object that is to be edited.
|
||||
* @param o an object that must be an array.
|
||||
*/
|
||||
public void setValue(Object o) {
|
||||
@Override
|
||||
protected boolean setObject(Object o) {
|
||||
if (o instanceof GPArea) {
|
||||
this.m_AreaObject = (GPArea) o;
|
||||
this.updateEditor();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else return false;
|
||||
}
|
||||
|
||||
/** Retruns the current object.
|
||||
* @return the current object
|
||||
@ -100,71 +59,4 @@ public class GenericAreaEditor extends JPanel implements PropertyEditor {
|
||||
public Object getValue() {
|
||||
return this.m_AreaObject;
|
||||
}
|
||||
|
||||
public String getJavaInitializationString() {
|
||||
return "TEST";
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public String getAsText() {
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void setAsText(String text) throws IllegalArgumentException {
|
||||
throw new IllegalArgumentException(text);
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public String[] getTags() {
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void addPropertyChangeListener(PropertyChangeListener l) {
|
||||
m_Support.addPropertyChangeListener(l);
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void removePropertyChangeListener(PropertyChangeListener l) {
|
||||
m_Support.removePropertyChangeListener(l);
|
||||
}
|
||||
/** Returns true since the Object can be shown
|
||||
* @return true
|
||||
*/
|
||||
public boolean isPaintable() {
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Paints a representation of the current classifier.
|
||||
*
|
||||
* @param gfx the graphics context to use
|
||||
* @param box the area we are allowed to paint into
|
||||
*/
|
||||
public void paintValue(Graphics gfx, Rectangle box) {
|
||||
FontMetrics fm = gfx.getFontMetrics();
|
||||
int vpad = (box.height - fm.getAscent()) / 2;
|
||||
String rep = "Select from available GPNodes";
|
||||
gfx.drawString(rep, 2, fm.getHeight() + vpad - 3 );
|
||||
}
|
||||
/** Returns true because we do support a custom editor.
|
||||
* @return true
|
||||
*/
|
||||
public boolean supportsCustomEditor() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Returns the array editing component.
|
||||
* @return a value of type 'java.awt.Component'
|
||||
*/
|
||||
public Component getCustomEditor() {
|
||||
if (this.m_CustomEditor == null) this.initCustomEditor();
|
||||
return m_CustomEditor;
|
||||
}
|
||||
}
|
50
src/eva2/gui/GenericObjectListSelectionEditor.java
Normal file
50
src/eva2/gui/GenericObjectListSelectionEditor.java
Normal file
@ -0,0 +1,50 @@
|
||||
package eva2.gui;
|
||||
|
||||
/**
|
||||
* An editor for a selectable List.
|
||||
*
|
||||
*/
|
||||
public class GenericObjectListSelectionEditor extends AbstractListSelectionEditor {
|
||||
private PropertySelectableList objList;
|
||||
|
||||
public GenericObjectListSelectionEditor() {
|
||||
// compiled code
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getElementCount() {
|
||||
return objList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getElementName(int i) {
|
||||
return objList.get(i).toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isElementAllowed(int i) {
|
||||
return objList.isSelected(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void performOnAction() {
|
||||
for (int i = 0; i < this.m_BlackCheck.length; i++) {
|
||||
objList.setSelectionForElement(i, this.m_BlackCheck[i].isSelected());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean setObject(Object o) {
|
||||
if (o instanceof PropertySelectableList) {
|
||||
this.objList = (PropertySelectableList) o;
|
||||
return true;
|
||||
} else return false;
|
||||
}
|
||||
|
||||
/** Retruns the current object.
|
||||
* @return the current object
|
||||
*/
|
||||
public Object getValue() {
|
||||
return objList;
|
||||
}
|
||||
}
|
65
src/eva2/gui/GenericStringListSelectionEditor.java
Normal file
65
src/eva2/gui/GenericStringListSelectionEditor.java
Normal file
@ -0,0 +1,65 @@
|
||||
package eva2.gui;
|
||||
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import eva2.server.go.individuals.codings.gp.AbstractGPNode;
|
||||
import eva2.server.go.individuals.codings.gp.GPArea;
|
||||
|
||||
import java.beans.PropertyEditor;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* TODO this should be redundant with the new GenericObjectListEditor.
|
||||
*
|
||||
* Created by IntelliJ IDEA.
|
||||
* User: streiche
|
||||
* Date: 23.03.2004
|
||||
* Time: 15:03:29
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
public class GenericStringListSelectionEditor extends AbstractListSelectionEditor {
|
||||
private PropertyStringList m_List;
|
||||
|
||||
@Override
|
||||
protected int getElementCount() {
|
||||
return m_List.getStrings().length;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getElementName(int i) {
|
||||
return m_List.getStrings()[i];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isElementAllowed(int i) {
|
||||
return this.m_List.getSelection()[i];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void performOnAction() {
|
||||
for (int i = 0; i < this.m_BlackCheck.length; i++) {
|
||||
this.m_List.setSelectionForElement(i, this.m_BlackCheck[i].isSelected());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean setObject(Object o) {
|
||||
if (o instanceof PropertyStringList) {
|
||||
this.m_List = (PropertyStringList) o;
|
||||
return true;
|
||||
} else return false;
|
||||
}
|
||||
|
||||
/** Retruns the current object.
|
||||
* @return the current object
|
||||
*/
|
||||
public Object getValue() {
|
||||
return this.m_List;
|
||||
}
|
||||
}
|
@ -1,11 +1,10 @@
|
||||
package eva2.gui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.beans.BeanInfo;
|
||||
import java.beans.Introspector;
|
||||
import java.beans.PropertyDescriptor;
|
||||
import java.beans.PropertyEditor;
|
||||
import java.beans.PropertyEditorManager;
|
||||
import java.util.List;
|
||||
|
||||
import sun.beans.editors.BoolEditor;
|
||||
import sun.beans.editors.ByteEditor;
|
||||
@ -170,11 +169,12 @@ public class PropertyEditorProvider {
|
||||
PropertyEditorManager.registerEditor(PropertyEpsilonThreshold.class , GenericEpsilonThresholdEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyEpsilonConstraint.class , GenericEpsilonConstraintEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyWeightedLPTchebycheff.class, GenericWeigthedLPTchebycheffEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyStringList.class , GenericStringListEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyStringList.class , GenericStringListSelectionEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyFilePath.class , GenericFilePathEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyRemoteServers.class , GenericRemoteServersEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyOptimizationObjectives.class , GenericOptimizationObjectivesEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertyOptimizationObjectivesWithParam.class , GenericOptimizationObjectivesWithParamEditor.class);
|
||||
PropertyEditorManager.registerEditor(eva2.gui.MultiLineString.class, eva2.gui.MultiLineStringEditor.class);
|
||||
PropertyEditorManager.registerEditor(PropertySelectableList.class, GenericObjectListSelectionEditor.class);
|
||||
}
|
||||
}
|
||||
|
70
src/eva2/gui/PropertySelectableList.java
Normal file
70
src/eva2/gui/PropertySelectableList.java
Normal file
@ -0,0 +1,70 @@
|
||||
package eva2.gui;
|
||||
|
||||
/**
|
||||
* Created by IntelliJ IDEA.
|
||||
* User: streiche
|
||||
* Date: 23.03.2004
|
||||
* Time: 15:04:05
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
public class PropertySelectableList implements java.io.Serializable {
|
||||
|
||||
private Object[] m_Objects;
|
||||
private boolean[] m_Selection;
|
||||
|
||||
public PropertySelectableList() {
|
||||
}
|
||||
|
||||
public PropertySelectableList(PropertySelectableList b) {
|
||||
if (b.m_Objects != null) {
|
||||
this.m_Objects = new Object[b.m_Objects.length];
|
||||
System.arraycopy(b.m_Objects, 0, this.m_Objects, 0, this.m_Objects.length);
|
||||
}
|
||||
if (b.m_Selection != null) {
|
||||
this.m_Selection = new boolean[b.m_Selection.length];
|
||||
System.arraycopy(b.m_Selection, 0, this.m_Selection, 0, this.m_Selection.length);
|
||||
}
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
return (Object) new PropertySelectableList(this);
|
||||
}
|
||||
|
||||
public void setObjects(Object[] o) {
|
||||
this.m_Objects = o;
|
||||
this.m_Selection = new boolean[o.length];
|
||||
}
|
||||
public Object[] getStrings() {
|
||||
return this.m_Objects;
|
||||
}
|
||||
|
||||
public void setSelection(boolean[] selection) {
|
||||
this.m_Selection = selection;
|
||||
}
|
||||
|
||||
public boolean[] getSelection() {
|
||||
return this.m_Selection;
|
||||
}
|
||||
|
||||
public void setSelectionForElement(int index, boolean b) {
|
||||
this.m_Selection[index] = b;
|
||||
}
|
||||
|
||||
public int size() {
|
||||
if (m_Objects == null) return 0;
|
||||
else return m_Objects.length;
|
||||
}
|
||||
|
||||
public Object get(int i) {
|
||||
return m_Objects[i];
|
||||
}
|
||||
|
||||
public boolean isSelected(int i) {
|
||||
return m_Selection[i];
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
m_Objects=null;
|
||||
m_Selection=null;
|
||||
}
|
||||
}
|
@ -51,13 +51,7 @@ import eva2.tools.StringTools;
|
||||
* CLASS DECLARATION
|
||||
*==========================================================================*/
|
||||
/**
|
||||
* TODO: document those tricks somewhere
|
||||
* Trick methods:
|
||||
* String[] getGOEPropertyUpdateLinks()
|
||||
* void hideHideable()
|
||||
* void globalInfo()
|
||||
* Trick statics:
|
||||
* boolean hideFromGOE
|
||||
* There are some trick methods interpreted here. Check EvA2Notes.txt.
|
||||
*/
|
||||
public class PropertySheetPanel extends JPanel implements PropertyChangeListener {
|
||||
public final static boolean TRACE = false;
|
||||
|
@ -16,6 +16,7 @@ import wsi.ra.chart2d.*;
|
||||
import java.awt.*;
|
||||
|
||||
import eva2.server.go.problems.Interface2DBorderProblem;
|
||||
import eva2.tools.Mathematics;
|
||||
|
||||
import wsi.ra.diagram.ColorBarCalculator;
|
||||
|
||||
@ -63,23 +64,21 @@ public class TopoPlot extends Plot {
|
||||
* Defines the topology (by setting a specific problem) and draws the topology
|
||||
*/
|
||||
public void setTopology(Interface2DBorderProblem problem) {
|
||||
double sizeX = java.lang.Math.abs( problem.get2DBorder()[0][1]-problem.get2DBorder()[0][0]);
|
||||
double sizeY = java.lang.Math.abs( problem.get2DBorder()[1][1]-problem.get2DBorder()[1][0]);
|
||||
double rx, ry;
|
||||
double rw = sizeX/gridx;
|
||||
double rh = sizeY/gridy;
|
||||
double[][] border = problem.get2DBorder();
|
||||
double[] sizeXY=Mathematics.shiftRange(border);
|
||||
double deltaX = sizeXY[0]/gridx;
|
||||
double deltaY = sizeXY[1]/gridy;
|
||||
double[] pos = new double[2];
|
||||
//double fitRange = java.lang.Math.abs(problem.getMinFitness()-problem.getMaxFitness() );
|
||||
double fitRange = 0, max = -Double.MAX_VALUE, min = Double.MAX_VALUE, tmp;
|
||||
for (int x=0; x<gridx; x++) {
|
||||
for (int y=0; y<gridy; y++) {
|
||||
rx = problem.get2DBorder()[0][0]+x*rw;
|
||||
ry = problem.get2DBorder()[1][0]+y*rh;
|
||||
pos[0] = rx; pos[1] = ry;
|
||||
tmp = (float)(problem.functionValue(pos));
|
||||
if (tmp < min) min = tmp;
|
||||
if (tmp > max) max = tmp;
|
||||
} // for y
|
||||
for (int y=0; y<gridy; y++) {
|
||||
pos[0] = border[0][0]+x*deltaX;
|
||||
pos[1] = border[1][0]+y*deltaY;
|
||||
tmp = (float)(problem.functionValue(pos));
|
||||
if (tmp < min) min = tmp;
|
||||
if (tmp > max) max = tmp;
|
||||
} // for y
|
||||
} // for x
|
||||
fitRange = java.lang.Math.abs(max - min);
|
||||
ColorBarCalculator colorBar = new ColorBarCalculator(colorScale);
|
||||
@ -87,16 +86,15 @@ public class TopoPlot extends Plot {
|
||||
m_Frame.setVisible(false);
|
||||
for (int x=0; x<gridx; x++) {
|
||||
for (int y=0; y<gridy; y++) {
|
||||
rx = problem.get2DBorder()[0][0]+x*rw;
|
||||
ry = problem.get2DBorder()[1][0]+y*rh;
|
||||
pos[0] = rx; pos[1] = ry;
|
||||
DRectangle rect = new DRectangle(rx,ry,rw,rh);
|
||||
Color color = new Color(colorBar.getRGB((float)((problem.functionValue(pos)-min)/fitRange)));
|
||||
// Color color = new Color(255,(int)(problem.doEvaluation(pos)[0]/fitRange*255),(int)(problem.doEvaluation(pos)[0]/fitRange*255));
|
||||
// Color color = new Color(colorBar.getRGB((float)(problem.functionValue(pos)/fitRange))); // Color color = new Color(255,(int)(problem.doEvaluation(pos)[0]/fitRange*255),(int)(problem.doEvaluation(pos)[0]/fitRange*255));
|
||||
rect.setColor(color);
|
||||
rect.setFillColor(color);
|
||||
m_PlotArea.addDElement(rect);
|
||||
pos[0] = problem.get2DBorder()[0][0]+x*deltaX;
|
||||
pos[1] = problem.get2DBorder()[1][0]+y*deltaY;
|
||||
DRectangle rect = new DRectangle(pos[0],pos[1],deltaX,deltaY);
|
||||
Color color = new Color(colorBar.getRGB((float)((problem.functionValue(pos)-min)/fitRange)));
|
||||
// Color color = new Color(255,(int)(problem.doEvaluation(pos)[0]/fitRange*255),(int)(problem.doEvaluation(pos)[0]/fitRange*255));
|
||||
// Color color = new Color(colorBar.getRGB((float)(problem.functionValue(pos)/fitRange))); // Color color = new Color(255,(int)(problem.doEvaluation(pos)[0]/fitRange*255),(int)(problem.doEvaluation(pos)[0]/fitRange*255));
|
||||
rect.setColor(color);
|
||||
rect.setFillColor(color);
|
||||
m_PlotArea.addDElement(rect);
|
||||
} // for y
|
||||
} // for x
|
||||
m_Frame.setVisible(true);
|
||||
|
@ -1,19 +0,0 @@
|
||||
package eva2.gui;
|
||||
/*
|
||||
* Title: EvA2
|
||||
* Description:
|
||||
* Copyright: Copyright (c) 2003
|
||||
* Company: University of Tuebingen, Computer Architecture
|
||||
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
|
||||
* @version: $Revision: 10 $
|
||||
* $Date: 2006-01-18 11:02:22 +0100 (Wed, 18 Jan 2006) $
|
||||
* $Author: streiche $
|
||||
*/
|
||||
/*==========================================================================*
|
||||
* IMPORTS
|
||||
*==========================================================================*/
|
||||
public interface TreeElement {
|
||||
public int getNumber();
|
||||
public TreeElement getComponent(int index);
|
||||
public TreeElement[] getComponents();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user