package com.xenoage.zong.desktop.utils;
import com.xenoage.utils.filter.Filter;
import com.xenoage.utils.lang.Lang;
import com.xenoage.zong.Voc;
import javafx.scene.control.ChoiceDialog;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
/**
* Filter dialog which allows selecting a single filename.
* When there is only one file given, it is chosen without
* showing a dialog.
*
* @author Andreas Wenger
*/
public class FilenameDialogFilter
implements Filter<String> {
@Override public List<String> filter(List<String> values) {
List<String> ret = new LinkedList<>();
//when there is only one file, select it. when there is no file, also don't
//show a dialog.
if (values.size() < 2) {
ret.addAll(values);
}
else {
ChoiceDialog<String> dialog = new ChoiceDialog<>(values.get(0), values); //TODO: use Zong! dialog factory
dialog.setContentText(Lang.getLabel(Voc.SelectDocument));
Optional<String> selectedFile = dialog.showAndWait();
//open file
selectedFile.ifPresent(ret::add);
}
return ret;
}
}