(final Stage primaryStage)
| 103 | } |
| 104 | |
| 105 | @Override |
| 106 | public void start(final Stage primaryStage) { |
| 107 | |
| 108 | this.stage = primaryStage; |
| 109 | |
| 110 | ServiceLoader<FXSamplerConfiguration> configurationServiceLoader = ServiceLoader.load(FXSamplerConfiguration.class); |
| 111 | |
| 112 | projectsMap = new SampleScanner().discoverSamples(); |
| 113 | buildSampleTree(null); |
| 114 | |
| 115 | // simple layout: TreeView on left, sample area on right |
| 116 | grid = new GridPane(); |
| 117 | grid.setPadding(new Insets(5, 10, 10, 10)); |
| 118 | grid.setHgap(10); |
| 119 | grid.setVgap(10); |
| 120 | |
| 121 | // --- left hand side |
| 122 | // search box |
| 123 | final TextField searchBox = new TextField(); |
| 124 | searchBox.setPromptText("Search"); |
| 125 | searchBox.getStyleClass().add("search-box"); |
| 126 | searchBox.textProperty().addListener(o -> buildSampleTree(searchBox.getText())); |
| 127 | GridPane.setMargin(searchBox, new Insets(5, 0, 0, 0)); |
| 128 | grid.add(searchBox, 0, 0); |
| 129 | |
| 130 | // treeview |
| 131 | samplesTreeView = new TreeView<>(root); |
| 132 | samplesTreeView.setShowRoot(false); |
| 133 | samplesTreeView.getStyleClass().add("samples-tree"); |
| 134 | samplesTreeView.setMinWidth(200); |
| 135 | samplesTreeView.setMaxWidth(200); |
| 136 | samplesTreeView.setCellFactory(new Callback<>() { |
| 137 | @Override |
| 138 | public TreeCell<Sample> call(TreeView<Sample> param) { |
| 139 | return new TreeCell<>() { |
| 140 | @Override |
| 141 | protected void updateItem(Sample item, boolean empty) { |
| 142 | super.updateItem(item, empty); |
| 143 | |
| 144 | if (empty) { |
| 145 | setText(""); |
| 146 | } else { |
| 147 | setText(item.getSampleName()); |
| 148 | } |
| 149 | } |
| 150 | }; |
| 151 | } |
| 152 | }); |
| 153 | samplesTreeView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newSample) -> { |
| 154 | if (newSample == null) { |
| 155 | return; |
| 156 | } else if (newSample.getValue() instanceof EmptySample) { |
| 157 | Sample selectedSample = newSample.getValue(); |
| 158 | selectedProject = projectsMap.get(selectedSample.getSampleName()); |
| 159 | if(selectedProject != null) { |
| 160 | changeToWelcomeTab(selectedProject.getWelcomePage()); |
| 161 | } |
| 162 | return; |
nothing calls this directly
no test coverage detected