2727import com .techsenger .shellfx .dialogs .style .DialogIcons ;
2828import com .techsenger .shellfx .material .button .ResultButton ;
2929import com .techsenger .shellfx .material .icon .FontIconView ;
30+ import com .techsenger .shellfx .material .icon .GenericFontIcon ;
3031import com .techsenger .shellfx .material .list .TextFieldColumnListCell ;
3132import com .techsenger .shellfx .material .style .Spacing ;
3233import com .techsenger .shellfx .material .style .StyleClasses ;
4243import java .util .Comparator ;
4344import java .util .List ;
4445import java .util .Map ;
46+ import java .util .function .Function ;
4547import javafx .collections .FXCollections ;
4648import javafx .collections .ObservableList ;
4749import javafx .geometry .Pos ;
@@ -219,6 +221,9 @@ protected void updateItem(T item, boolean empty) {
219221
220222 private AppearanceSettings settings ;
221223
224+ private Function <T , GenericFontIcon <?>> iconProvider =
225+ (f ) -> f .isDirectory () ? DialogIcons .DIRECTORY : DialogIcons .FILE ;
226+
222227 public FileChooserDialogFxView () {
223228 super ();
224229 }
@@ -348,6 +353,14 @@ public void setExtensionFilter(ExtensionFilter filter) {
348353 this .filterComboBox .getSelectionModel ().select (filter );
349354 }
350355
356+ public Function <T , GenericFontIcon <?>> getIconProvider () {
357+ return iconProvider ;
358+ }
359+
360+ public void setIconProvider (Function <T , GenericFontIcon <?>> iconProvider ) {
361+ this .iconProvider = iconProvider ;
362+ }
363+
351364 @ Override
352365 protected Composer createComposer () {
353366 return new FileChooserDialogFxView .Composer ();
@@ -372,7 +385,7 @@ protected void build() {
372385
373386 var columnBuilder = new FileColumnBuilder (settings .getRegularFont ());
374387 this .fileColumnManager .registerColumnFactory (FileColumns .NAME , () -> {
375- var column = columnBuilder .buildNameColumn (DialogIcons . DIRECTORY , DialogIcons . FILE );
388+ var column = columnBuilder .buildNameColumn (iconProvider );
376389 column .setEditable (false );
377390 column .setOnEditCancel (e -> {
378391 var file = (T ) e .getOldValue ();
0 commit comments