use of org.apache.pivot.wtk.FileBrowserSheet in project pivot by apache.
the class Pivot862 method startup.
@Override
public void startup(Display display, Map<String, String> properties) throws Exception {
BXMLSerializer bxmlSerializer = new BXMLSerializer();
window = (Window) bxmlSerializer.readObject(getClass().getResource("pivot_862.bxml"));
bxmlSerializer.bind(this, Pivot862.class);
selectFolderButton.getButtonPressListeners().add(new ButtonPressListener() {
@Override
public void buttonPressed(Button button) {
final FileBrowserSheet fileBrowserSheet = new FileBrowserSheet();
// to
fileBrowserSheet.setMode(FileBrowserSheet.Mode.SAVE_TO);
// be
// able
// to
// select
// a
// folder
fileBrowserSheet.open(window, new SheetCloseListener() {
@Override
public void sheetClosed(Sheet sheet) {
if (sheet.getResult()) {
File loadedFile = fileBrowserSheet.getSelectedFile();
try {
selectedFolder = loadedFile.getCanonicalPath();
System.out.println("Selected folder '" + selectedFolder + "'");
// multiple tests ...
System.out.println("Verify: Root folder (display from getName) was set to '" + fileBrowserSheet.getRootDirectory().getName() + "'");
System.out.println("Verify: Root folder (display from getCanonicalPath) was set to '" + fileBrowserSheet.getRootDirectory().getCanonicalPath() + "'");
System.out.println("Verify: Root folder (display from getCanonicalFile) was set to '" + fileBrowserSheet.getRootDirectory().getCanonicalFile() + "'");
openFileButton.setEnabled(true);
} catch (IOException e) {
e.printStackTrace();
openFileButton.setEnabled(false);
}
window.setTitle("Selected folder: " + selectedFolder);
}
}
});
}
});
openFileButton.getButtonPressListeners().add(new ButtonPressListener() {
@Override
public void buttonPressed(Button button) {
System.out.println("Now opening a BrowserSheet starting from the previous selected folder: \"" + selectedFolder + "\"");
FileBrowserSheet fileBrowserSheet = // selectedFolder); // use this as a workaround ...
new FileBrowserSheet(// test to see
FileBrowserSheet.Mode.OPEN);
// the wrong
// behavior
// new FileBrowserSheet(); // test to see the wrong behavior
// ok, but
fileBrowserSheet.setRootFolder(selectedFolder);
// doesn't solve
// this issue
// ...
System.out.println("\nNote: the behavior here is right only when using the constructor with two parameters ..." + " but in this source it's used one of other constructors.\n");
try {
// multiple tests ...
System.out.println("Verify: Root folder (display from getName) was set to '" + fileBrowserSheet.getRootDirectory().getName() + "'");
System.out.println("Verify: Root folder (display from getCanonicalPath) was set to '" + fileBrowserSheet.getRootDirectory().getCanonicalPath() + "'");
System.out.println("Verify: Root folder (display from getCanonicalFile) was set to '" + fileBrowserSheet.getRootDirectory().getCanonicalFile() + "'");
} catch (IOException e) {
e.printStackTrace();
}
fileBrowserSheet.open(window, new SheetCloseListener() {
@Override
public void sheetClosed(Sheet sheet) {
// empty block
}
});
}
});
window.open(display);
}
use of org.apache.pivot.wtk.FileBrowserSheet in project pivot by apache.
the class Pivot800 method startup.
@Override
public void startup(Display display, Map<String, String> properties) throws Exception {
Window window = new Window();
window.setMaximized(true);
sheet = new FileBrowserSheet(FileBrowserSheet.Mode.SAVE_TO);
sheet.getWindowStateListeners().add(new SelectFileListener());
window.open(display);
sheet.open(window);
}
use of org.apache.pivot.wtk.FileBrowserSheet in project pivot by apache.
the class FileBrowserWithCharsetTest method startup.
@Override
public void startup(Display display, Map<String, String> properties) throws Exception {
BoxPane windowContent = new BoxPane();
windowContent.getStyles().put(Style.verticalAlignment, VerticalAlignment.CENTER);
final Checkbox showHiddenCheckbox = new Checkbox("Show hidden files");
windowContent.add(showHiddenCheckbox);
PushButton button = new PushButton("Open File Browser");
button.getStyles().put(Style.padding, "[2, 4, 2, 4]");
button.getButtonPressListeners().add(new ButtonPressListener() {
@Override
public void buttonPressed(Button buttonArgument) {
final Window window = Window.getActiveWindow();
final FileBrowserWithCharsetTest fileBrowserSheet = new FileBrowserWithCharsetTest(FileBrowserSheet.Mode.OPEN);
fileBrowserSheet.getStyles().put(Style.showHiddenFiles, showHiddenCheckbox.isSelected());
fileBrowserSheet.open(window, new SheetCloseListener() {
@Override
public void sheetClosed(Sheet sheet) {
if (sheet.getResult()) {
Sequence<File> selectedFiles = fileBrowserSheet.getSelectedFiles();
ListView listView = new ListView();
listView.setListData(new ArrayList<>(selectedFiles));
listView.setSelectMode(ListView.SelectMode.NONE);
listView.getStyles().put(Style.backgroundColor, null);
Alert.alert(MessageType.INFO, "You selected (charset " + fileBrowserSheet.getCharsetName() + "):", listView, window);
} else {
Alert.alert(MessageType.INFO, "You didn't select anything.", window);
}
}
});
}
});
windowContent.add(button);
frame = new Frame(windowContent);
frame.setMaximized(true);
frame.open(display);
}
use of org.apache.pivot.wtk.FileBrowserSheet in project pivot by apache.
the class TerraFileBrowserSheetSkin method previewSheetClose.
@Override
public Vote previewSheetClose(final Sheet sheet, final boolean result) {
Vote vote = null;
if (result && !okButton.isEnabled()) {
vote = Vote.DENY;
} else {
if (result) {
updatingSelection = true;
FileBrowserSheet fileBrowserSheet = (FileBrowserSheet) sheet;
FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
switch(mode) {
case OPEN:
case OPEN_MULTIPLE:
case SAVE_TO:
{
fileBrowserSheet.setSelectedFiles(fileBrowser.getSelectedFiles());
break;
}
case SAVE_AS:
{
String fileName = saveAsTextInput.getText();
// Contents of the entry field could be:
// 1. Just a new file name in the current root directory
// 2. A relative or absolute path that is an existing directory
// to navigate to
// 3. A relative or absolute path including the new file name
// in an existing directory
// So, first make it an absolute path
File selectedFile = new File(fileName);
if (!selectedFile.isAbsolute() && !fileName.startsWith(File.separator)) {
selectedFile = new File(fileBrowser.getRootDirectory(), fileName);
} else {
selectedFile = selectedFile.getAbsoluteFile();
}
if (selectedFile.exists() && selectedFile.isDirectory()) {
try {
File root = selectedFile.getCanonicalFile();
fileBrowserSheet.setRootDirectory(root);
fileBrowser.setRootDirectory(root);
saveAsTextInput.setText("");
} catch (IOException ioe) {
Form.setFlag(saveAsBoxPane, new Form.Flag());
}
selectedFile = null;
vote = Vote.DENY;
} else {
File root = selectedFile.getParentFile();
if (root != null && root.exists() && root.isDirectory()) {
try {
fileBrowserSheet.setRootDirectory(root.getCanonicalFile());
selectedFile = new File(selectedFile.getName());
} catch (IOException ioe) {
Form.setFlag(saveAsBoxPane, new Form.Flag());
selectedFile = null;
vote = Vote.DENY;
}
} else {
// Could be an error message here
// ("Directory does not exist")
Form.setFlag(saveAsBoxPane, new Form.Flag());
selectedFile = null;
vote = Vote.DENY;
}
}
if (selectedFile != null) {
fileBrowserSheet.setSelectedFiles(new ArrayList<>(selectedFile));
}
break;
}
default:
{
break;
}
}
updatingSelection = false;
}
if (vote == null) {
vote = super.previewSheetClose(sheet, result);
}
}
return vote;
}
use of org.apache.pivot.wtk.FileBrowserSheet in project pivot by apache.
the class TerraFileBrowserSheetSkin method updateOKButtonState.
private void updateOKButtonState() {
FileBrowserSheet fileBrowserSheet = (FileBrowserSheet) getComponent();
FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
Sequence<File> selectedFiles = fileBrowser.getSelectedFiles();
switch(mode) {
case OPEN:
case OPEN_MULTIPLE:
{
okButton.setEnabled(selectedFiles.getLength() > 0 && selectedDirectoryCount == 0);
break;
}
case SAVE_AS:
{
okButton.setEnabled(saveAsTextInput.getCharacterCount() > 0);
break;
}
case SAVE_TO:
{
okButton.setEnabled(selectedDirectoryCount > 0);
break;
}
default:
{
break;
}
}
}
Aggregations