Added SettingsScene selection infrastructure
This commit is contained in:
19
src/main/java/envoy/client/ui/SettingsPane.java
Normal file
19
src/main/java/envoy/client/ui/SettingsPane.java
Normal file
@ -0,0 +1,19 @@
|
||||
package envoy.client.ui;
|
||||
|
||||
import javafx.scene.Node;
|
||||
|
||||
|
||||
/**
|
||||
* Project: <strong>envoy-client</strong><br>
|
||||
* File: <strong>SettingsPane.java</strong><br>
|
||||
* Created: <strong>18.04.2020</strong><br>
|
||||
*
|
||||
* @author Kai S. K. Engelbart
|
||||
* @since Envoy Client v0.1-beta
|
||||
*/
|
||||
public abstract class SettingsPane extends Node {
|
||||
|
||||
protected String title;
|
||||
|
||||
public abstract String getTitle();
|
||||
}
|
@ -1,5 +1,10 @@
|
||||
package envoy.client.ui;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.*;
|
||||
|
||||
import envoy.client.data.Settings;
|
||||
|
||||
/**
|
||||
* Project: <strong>envoy-client</strong><br>
|
||||
* File: <strong>SettingsSceneController.java</strong><br>
|
||||
@ -10,4 +15,27 @@ package envoy.client.ui;
|
||||
*/
|
||||
public class SettingsSceneController {
|
||||
|
||||
@FXML
|
||||
private ListView<SettingsPane> settingsList;
|
||||
|
||||
@FXML
|
||||
private TitledPane titledPane;
|
||||
|
||||
private static final Settings settings = Settings.getInstance();
|
||||
|
||||
@FXML
|
||||
private void initialize() {
|
||||
settingsList.setCellFactory(listView -> new ListCell<>() {
|
||||
|
||||
@Override
|
||||
protected void updateItem(SettingsPane item, boolean empty) { if (!empty && item != null) setGraphic(new Label(item.getTitle())); };
|
||||
});
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void settingsListClicked() {
|
||||
final var pane = settingsList.getSelectionModel().getSelectedItem();
|
||||
titledPane.setText(pane.getTitle());
|
||||
titledPane.setContent(pane);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user