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

@ -1,5 +1,6 @@
package fabrik.simulator.pic16f84;
import com.gluonhq.charm.glisten.control.ToggleButtonGroup;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
@ -23,7 +24,7 @@ import javafx.stage.Stage;
import java.util.Arrays;
public class Controller_FileSelect {
public class Controller_Frontend {
private int [] prog;
@ -74,10 +75,6 @@ public class Controller_FileSelect {
System.out.println(Arrays.toString(Arrays.stream(prog).toArray()));
displayLSTFileContent(selectedFile);
}
}
private File chooseLSTFile() {
@ -106,7 +103,48 @@ public class Controller_FileSelect {
}
}
@FXML
private ToggleButtonGroup bgA0;
@FXML
private ToggleButtonGroup bgA1;
@FXML
private ToggleButtonGroup bgA2;
@FXML
private ToggleButtonGroup bgA3;
@FXML
private ToggleButtonGroup bgA4;
@FXML
private ToggleButtonGroup bgA5;
@FXML
private ToggleButtonGroup bgA6;
@FXML
private ToggleButtonGroup bgA7;
@FXML
private ToggleButtonGroup bgB0;
@FXML
private ToggleButtonGroup bgB1;
@FXML
private ToggleButtonGroup bgB2;
@FXML
private ToggleButtonGroup bgB3;
@FXML
private ToggleButtonGroup bgB4;
@FXML
private ToggleButtonGroup bgB5;
@FXML
private ToggleButtonGroup bgB6;
@FXML
private ToggleButtonGroup bgB7;
public void initialize() {
ToggleButtonGroup [] allButtons = {bgA0, bgA1, bgA2, bgA3, bgA4, bgA5, bgA6, bgA7, bgB0, bgB1, bgB2, bgB3, bgB4, bgB5, bgB6, bgB7};
for (int i = 0; i<16; i++) {
// GEHT NICHT
ToggleButtonGroupExt.get().addAlwaysOneSelectedSupport(allButtons[i]);
}
}
}

View File

@ -1,5 +0,0 @@
package fabrik.simulator.pic16f84;
public class Controller_MainBody {
}

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();
}
};
}

View File

@ -6,6 +6,7 @@ module fabrik.simulator.pic16f84 {
requires org.controlsfx.controls;
requires org.kordamp.ikonli.javafx;
requires eu.hansolo.tilesfx;
requires charm.glisten;
opens fabrik.simulator.pic16f84 to javafx.fxml;
exports fabrik.simulator.pic16f84;