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.java33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/jcgp/gui/population/GUIGene.java b/src/jcgp/gui/population/GUIGene.java
index d6f9638..02b87e7 100644
--- a/src/jcgp/gui/population/GUIGene.java
+++ b/src/jcgp/gui/population/GUIGene.java
@@ -54,6 +54,8 @@ public abstract class GUIGene extends Group {
private Text text;
private Circle mainCircle;
+
+ private int lock = 0;
/**
* Initialises the {@code Text} and {@code Circle} objects so that all genes are standardised.
@@ -66,7 +68,7 @@ public abstract class GUIGene extends Group {
text.setWrappingWidth(Constants.NODE_RADIUS * 2);
text.setX(-Constants.NODE_RADIUS);
- mainCircle = new Circle(Constants.NODE_RADIUS, Constants.NEUTRAL_COLOUR);
+ mainCircle = new Circle(Constants.NODE_RADIUS, Constants.NEUTRAL_PAINT);
mainCircle.setStroke(Paint.valueOf("black"));
getChildren().addAll(mainCircle, text);
@@ -105,24 +107,21 @@ public abstract class GUIGene extends Group {
public final void setState(GUIGeneState newState) {
switch (newState) {
case NEUTRAL:
- mainCircle.setFill(Constants.NEUTRAL_COLOUR);
- setLinesVisible(false);
+ mainCircle.setFill(isLocked() ? Constants.HARD_HIGHLIGHT_PAINT : Constants.NEUTRAL_PAINT);
+ setLinesVisible(isLocked() ? true : false);
break;
case HOVER:
- mainCircle.setFill(Constants.MEDIUM_HIGHLIGHT_COLOUR);
+ mainCircle.setFill(Constants.MEDIUM_HIGHLIGHT_PAINT);
setLinesVisible(true);
break;
case EXTENDED_HOVER:
- mainCircle.setFill(Constants.SOFT_HIGHLIGHT_COLOUR);
- setLinesVisible(false);
+ mainCircle.setFill(Constants.SOFT_HIGHLIGHT_PAINT);
+ setLinesVisible(isLocked() ? true : false);
break;
case ACTIVE_HOVER:
- mainCircle.setFill(Constants.SOFT_HIGHLIGHT_COLOUR);
+ mainCircle.setFill(Constants.SOFT_HIGHLIGHT_PAINT);
setLinesVisible(true);
break;
-
- default:
- break;
}
currentState = newState;
}
@@ -134,4 +133,18 @@ public abstract class GUIGene extends Group {
* @param value the visibility value.
*/
protected abstract void setLinesVisible(boolean value);
+
+ public boolean isLocked() {
+ return lock > 0;
+ }
+
+ public void setLock(boolean value) {
+ if (value) {
+ lock++;
+ } else if (lock > 0) {
+ lock--;
+ } else {
+ lock = 0;
+ }
+ }
}