aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/gui/population/GUIGene.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/gui/population/GUIGene.java')
-rw-r--r--src/jcgp/gui/population/GUIGene.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/jcgp/gui/population/GUIGene.java b/src/jcgp/gui/population/GUIGene.java
new file mode 100644
index 0000000..ef44110
--- /dev/null
+++ b/src/jcgp/gui/population/GUIGene.java
@@ -0,0 +1,56 @@
+package jcgp.gui.population;
+
+import javafx.beans.property.SimpleObjectProperty;
+import javafx.scene.Group;
+import javafx.scene.shape.Circle;
+import javafx.scene.text.Text;
+import jcgp.population.Gene;
+
+enum GUIGeneState {
+ NEUTRAL,
+ HOVER,
+ INDIRECT_HOVER,
+ ACTIVE_HOVER,
+ SOURCE,
+ TARGET,
+ NO_CHANGE_TARGET,
+ FORBIDDEN_TARGET
+}
+
+public abstract class GUIGene extends Group {
+
+ public static final double NODE_RADIUS = 30;
+ public static final double SPACING = 15;
+
+ public static final double THETA = Math.PI / 1.4;
+ public static final double SOCKET_RADIUS = Math.sqrt(NODE_RADIUS) / 1.8;
+
+ public static final double NODE_TEXT = 0;
+
+ protected Text text;
+ protected Circle mainCircle;
+
+ protected SimpleObjectProperty<GUIGeneState> stateProperty = new SimpleObjectProperty<GUIGeneState>(GUIGeneState.NEUTRAL);
+
+ protected ChromosomePane parent;
+
+ public SimpleObjectProperty<GUIGeneState> stateProperty() {
+ return stateProperty;
+ }
+
+ public void setState(GUIGeneState newState) {
+ stateProperty.set(newState);
+ }
+
+ public void showText(boolean value) {
+ text.setVisible(value);
+ }
+
+ public abstract Gene getGene();
+
+ public abstract void setConnections(GUIGeneState newState);
+
+ public abstract void resetState();
+
+
+}