import waba.ui.*;
import waba.io.*;
/* Pops up a screen that allows a user to select the file that they want to load. */
public class LoadMmFile extends Container {
private FreeMindPDA main;
private Button btnQuit;
private Button btnOk;
private ListBox listFiles; /* A drop-down list of files. */
private ComboBox cbxFiles;
private ListBox listDirs; /* A drop-down list of directories. */
private ComboBox cbxDirs;
private String storeDir;
protected String selectedFileName=null;
public LoadMmFile(FreeMindPDA main) {
super();
this.main=main;
}
public void onStart() {
btnQuit=new Button("Quit");
add(btnQuit,LEFT,BOTTOM);
/* Construct a list of files on the SD Card. */
File file=main.getStorageDir();
if ((file==null)||(!file.exists())) {
/* The filesystem we have chosen does not exits. Put up a warning. */
add(new Label("No file system found."),CENTER,CENTER);
return;
}
/* Filesystem exists, so we can add the OK button etc. */
storeDir=file.getPath();
btnOk=new Button(" OK ");
add(btnOk,RIGHT,BOTTOM);
String[] list = file.listFiles();
/* Construct list from selected files & dirs. */
listFiles = new ListBox();
listDirs = new ListBox();
listDirs.add("Not implemented yet.");
if (list != null) {
for (int i = 0; i < list.length; i++)
if (list[i] != null) {
if (isDir(list[i])) {
listDirs.add(list[i]);
} else {
if (list[i].toLowerCase().endsWith(".mm")) {
listFiles.add(list[i]);
}
}
}
/* House lists in comboboxes */
add(new Label("Select file to load:"),LEFT,TOP+1);
cbxFiles=new ComboBox(listFiles);
add(cbxFiles);
cbxFiles.setRect(LEFT,AFTER+2,FILL,PREFERRED);
cbxFiles.select(listFiles.getItemAt(0));
add(new Label("Change directory:"),LEFT,AFTER+10);
cbxDirs=new ComboBox(listDirs);
add(cbxDirs);
cbxDirs.setRect(LEFT,AFTER,FILL,PREFERRED);
cbxDirs.select(listDirs.getItemAt(0));
}
}
/**
* Standard event handler.
*/
public void onEvent(Event event) {
if (event.type == ControlEvent.PRESSED) {
if (event.target == btnQuit) {
/* Byebye */
getParentWindow().swap(null);
} else if (event.target == btnOk) {
/* Byebye */
if (cbxFiles.getSelectedIndex()>=0)
selectedFileName=(String)cbxFiles.getSelectedItem();
main.loadFile(storeDir+selectedFileName);
getParentWindow().swap(null);
}
}
}
private boolean isDir(String string) {
if (string.endsWith("/"))
return true;
return false;
}
}