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