IO-Ports Dummy

This commit is contained in:
2024-04-30 18:40:11 +02:00
parent 5a6a70f598
commit b1173a2ceb
9 changed files with 767 additions and 71 deletions

View File

@ -0,0 +1,46 @@
package fabrik.simulator.pic16f84;
import com.gluonhq.charm.glisten.control.ToggleButtonGroup;
import javafx.collections.ListChangeListener;
import javafx.event.EventHandler;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleButton;
import javafx.scene.input.MouseEvent;
public class ToggleButtonGroupExt {
private static ToggleButtonGroupExt me;
private ToggleButtonGroupExt() {
}
public static ToggleButtonGroupExt get() {
if (me == null) {
me = new ToggleButtonGroupExt();
}
return me;
}
public void addAlwaysOneSelectedSupport(final ToggleButtonGroup toggleGroup) {
toggleGroup.getToggles().addListener((ListChangeListener.Change<? extends Toggle> c) -> {
while (c.next()) {
for (final Toggle addedToggle : c.getAddedSubList()) {
addConsumeMouseEventfilter(addedToggle);
}
}
});
toggleGroup.getToggles().forEach(this::addConsumeMouseEventfilter);
}
private void addConsumeMouseEventfilter(Toggle toggle) {
((ToggleButton) toggle).addEventFilter(MouseEvent.MOUSE_PRESSED, consumeMouseEventfilter);
((ToggleButton) toggle).addEventFilter(MouseEvent.MOUSE_RELEASED, consumeMouseEventfilter);
((ToggleButton) toggle).addEventFilter(MouseEvent.MOUSE_CLICKED, consumeMouseEventfilter);
}
public EventHandler<MouseEvent> consumeMouseEventfilter = (MouseEvent mouseEvent) -> {
if (((Toggle) mouseEvent.getSource()).isSelected()) {
mouseEvent.consume();
}
};
}