1717package de .doubleslash .keeptime .view ;
1818
1919import de .doubleslash .keeptime .common .ColorHelper ;
20+ import de .doubleslash .keeptime .common .Resources ;
2021import de .doubleslash .keeptime .controller .Controller ;
2122import de .doubleslash .keeptime .controller .HeimatController ;
2223import de .doubleslash .keeptime .model .Model ;
@@ -170,7 +171,7 @@ protected void updateItem(HeimatTask item, boolean empty) {
170171 && mapping .getHeimatTask ().id () == ht .id ());
171172 return !alreadyMapped ;
172173 }).toList ();
173- List <HeimatTask > selectedItems = showMultiSelectDialog (externalProjectsObservableList , unmappedHeimatTasks );
174+ List <HeimatTask > selectedItems = showMultiSelectDialog (externalProjects , unmappedHeimatTasks );
174175 for (HeimatTask toBeCreatedHeimatTask : selectedItems ) {
175176 final int sortIndex = model .getAvailableProjects ().size ();
176177 final Project project = controller .addNewProject (
@@ -193,7 +194,7 @@ protected void updateItem(HeimatTask item, boolean empty) {
193194 }
194195 }
195196
196- private List <HeimatTask > showMultiSelectDialog (final ObservableList <HeimatTask > externalProjectsObservableList ,
197+ private List <HeimatTask > showMultiSelectDialog (final List <HeimatTask > externalProjects ,
197198 List <HeimatTask > unmappedHeimatTasks ) {
198199 Dialog <List <HeimatTask >> dialog = new Dialog <>();
199200 dialog .setTitle ("Import HEIMAT projects" );
@@ -222,9 +223,10 @@ protected void updateItem(HeimatTask item, boolean empty) {
222223 }
223224 });
224225 listView .getSelectionModel ().setSelectionMode (SelectionMode .MULTIPLE );
225- listView .setItems (externalProjectsObservableList );
226+ listView .setItems (FXCollections . observableArrayList ( externalProjects ) );
226227
227- Button selectAllUnmappedButton = new Button ("Select All Unmapped" );
228+ Button selectAllUnmappedButton = new Button ("Select unmapped projects (" + unmappedHeimatTasks .size () + ")" );
229+ selectAllUnmappedButton .getStyleClass ().add ("secondary-button" );
228230 selectAllUnmappedButton .setOnAction (e -> {
229231 listView .getSelectionModel ().clearSelection ();
230232 for (HeimatTask ht : unmappedHeimatTasks ) {
@@ -236,18 +238,22 @@ protected void updateItem(HeimatTask item, boolean empty) {
236238 VBox content = new VBox (10 , selectAllUnmappedButton , listView );
237239 dialog .getDialogPane ().setContent (content );
238240 final List <HeimatTask > emptyList = List .of ();
239- // Handle result when OK is clicked
240241 dialog .setResultConverter (dialogButton -> {
241242 if (dialogButton == okButtonType ) {
242243 return listView .getSelectionModel ().getSelectedItems ().stream ().toList ();
243244 }
244- return emptyList ; // Cancel was clicked
245+ return emptyList ; // cancel was clicked
245246 });
246247
247248 Button okButton = (Button ) dialog .getDialogPane ().lookupButton (okButtonType );
248- okButton .setText ("Import (0)" ); // Initial state
249+ okButton .setText ("Import (0)" );
250+ okButton .setPrefWidth (100 );
251+ okButton .getStyleClass ().add ("primary-button" );
252+ Button dialogCancelButton = (Button ) dialog .getDialogPane ().lookupButton (cancelButtonType );
253+ dialogCancelButton .getStyleClass ().add ("secondary-button" );
254+ dialog .getDialogPane ().getStylesheets ().add (Resources .getResource (Resources .RESOURCE .CSS_BUTTONS ).toExternalForm ());
255+
249256
250- // Listen for selection changes and update button text
251257 listView .getSelectionModel ().getSelectedItems ().addListener ((ListChangeListener <HeimatTask >) change -> {
252258 int selectedCount = listView .getSelectionModel ().getSelectedItems ().size ();
253259 okButton .setText ("Import (" + selectedCount + ")" );
0 commit comments