Skip to content

Commit fb9940f

Browse files
committed
Update file comparator in property listener
1 parent 31de943 commit fb9940f

3 files changed

Lines changed: 15 additions & 10 deletions

File tree

tabshell-dialogs/src/main/java/com/techsenger/tabshell/dialogs/file/FileChooserDialogFxView.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import com.techsenger.tabshell.storage.FileColumnBuilder;
3838
import com.techsenger.tabshell.storage.FileColumns;
3939
import com.techsenger.tabshell.storage.GenericFile;
40-
import java.util.Comparator;
40+
import com.techsenger.toolkit.fx.value.ValueUtils;
4141
import java.util.List;
4242
import java.util.Map;
4343
import javafx.collections.FXCollections;
@@ -363,11 +363,6 @@ public void editFile(int index) {
363363
}
364364
}
365365

366-
@Override
367-
public Comparator<GenericFile> getFileComparator() {
368-
return this.fileTableView.getComparator();
369-
}
370-
371366
@Override
372367
public void setFileName(String fileName) {
373368
this.fileNameTextField.setText(fileName);
@@ -547,6 +542,8 @@ protected void addListeners() {
547542
getPresenter().onFileSelected(newV.intValue());
548543
}
549544
});
545+
ValueUtils.callAndAddListener(this.fileTableView.comparatorProperty(), (ov, oldV, newV) ->
546+
getPresenter().onFileComparatorChanged(newV));
550547
this.filterComboBox.getSelectionModel().selectedItemProperty().addListener((ov, odlV, newV) -> {
551548
getPresenter().onFilterSelected(newV);
552549
});

tabshell-dialogs/src/main/java/com/techsenger/tabshell/dialogs/file/FileChooserDialogPresenter.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import java.net.URI;
4747
import java.util.ArrayList;
4848
import java.util.Collections;
49+
import java.util.Comparator;
4950
import java.util.HashMap;
5051
import java.util.List;
5152
import java.util.Map;
@@ -107,6 +108,8 @@ private enum EditType {
107108

108109
private final Map<TableColumnName, TableColumnInfo> columns = new HashMap<>();
109110

111+
private Comparator<GenericFile> fileComparator;
112+
110113
public FileChooserDialogPresenter(V view, FileChooserType type, AppearanceSettings settings,
111114
HistoryManager historyManager) {
112115
this(view, type, FileStorages.getAll(true), settings, historyManager);
@@ -524,6 +527,14 @@ protected void onColumnSortIndexChanged(TableColumnName name, Integer index) {
524527
info.setSortIndex(index);
525528
}
526529

530+
protected void onFileComparatorChanged(Comparator<GenericFile> comparator) {
531+
this.fileComparator = comparator;
532+
}
533+
534+
protected Comparator<GenericFile> getFileComparator() {
535+
return fileComparator;
536+
}
537+
527538
private void navigateTo(FileStorage storage, URI uri) {
528539
this.storage = storage;
529540
this.directory = uri;
@@ -569,7 +580,7 @@ private void updateFiles(GenericFile selectedFile) {
569580
if (filteredFiles != null) {
570581
files = filteredFiles;
571582
}
572-
files.sort(getView().getFileComparator());
583+
files.sort(this.fileComparator);
573584
setFiles(files);
574585
//only after sorting we can find the selected file index
575586
this.selectedFileIndex = -1;

tabshell-dialogs/src/main/java/com/techsenger/tabshell/dialogs/file/FileChooserDialogView.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.techsenger.tabshell.material.table.TableColumnInfo;
2424
import com.techsenger.tabshell.material.table.TableColumnName;
2525
import com.techsenger.tabshell.storage.GenericFile;
26-
import java.util.Comparator;
2726
import java.util.List;
2827
import java.util.Map;
2928

@@ -67,8 +66,6 @@ interface Composer extends DialogView.Composer {
6766

6867
void editFile(int index);
6968

70-
Comparator<GenericFile> getFileComparator();
71-
7269
void setFileName(String fileName);
7370

7471
void setExtensionFilters(List<ExtensionFilter> filters);

0 commit comments

Comments
 (0)