package jcgp.gui.handlers; import javafx.event.EventHandler; import javafx.scene.input.MouseEvent; import jcgp.backend.population.Gene; import jcgp.gui.population.GUIConnection; import jcgp.gui.population.GUIGene.GUIGeneState; import jcgp.gui.population.GUIOutput; public final class OutputHandlers { private static EventHandler mouseEnteredHandler = new EventHandler() { @Override public void handle(MouseEvent event) { // acquire the source, we can safely cast it to GUIOutput GUIOutput source = (GUIOutput) event.getSource(); source.setState(GUIGeneState.HOVER); ((GUIConnection) ((Gene) source.getOutput().getSource()).getGUIObject()).setStateRecursively(GUIGeneState.ACTIVE_HOVER); } }; private static EventHandler mouseExitedHandler = new EventHandler() { @Override public void handle(MouseEvent event) { // acquire the source, we can safely cast it to GUIOutput GUIOutput source = (GUIOutput) event.getSource(); source.setState(GUIGeneState.NEUTRAL); ((GUIConnection) ((Gene) source.getOutput().getSource()).getGUIObject()).setStateRecursively(GUIGeneState.NEUTRAL); } }; public static void addHandlers(GUIOutput output) { output.addEventHandler(MouseEvent.MOUSE_ENTERED, mouseEnteredHandler); output.addEventHandler(MouseEvent.MOUSE_EXITED, mouseExitedHandler); } }