diff options
Diffstat (limited to 'src/jcgp/gui/population/GUIGene.java')
-rw-r--r-- | src/jcgp/gui/population/GUIGene.java | 56 |
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(); + + +} |