package figtree.webui; import eu.webtoolkit.jwt.Side; import eu.webtoolkit.jwt.Signal; import eu.webtoolkit.jwt.Signal1; import eu.webtoolkit.jwt.WApplication; import eu.webtoolkit.jwt.WContainerWidget; import eu.webtoolkit.jwt.WFileUpload; import eu.webtoolkit.jwt.WLabel; import eu.webtoolkit.jwt.WText; public class FileUploadWidget extends WContainerWidget { private WFileUpload fileUpload; private Signal1<String> fileUploaded = new Signal1<String>(); private WLabel label; private WText currentTree; public FileUploadWidget() { currentTree = new WText(this); currentTree.setStyleClass("filename"); currentTree.setInline(false); currentTree.setFloatSide(Side.Right); label = new WLabel("Upload tree: ", this); createUpload(); } private void createUpload() { fileUpload = new WFileUpload(this); fileUpload.changed().addListener(this, new Signal.Listener() { @Override public void trigger() { fileUpload.upload(); } }); fileUpload.uploaded().addListener(this, new Signal.Listener() { @Override public void trigger() { handleUpload(); } }); } private void handleUpload() { WApplication.getInstance().setTitle("FigTree: " + fileUpload.getClientFileName()); currentTree.setText("Read file: <i>" + fileUpload.getClientFileName() + "</i>"); fileUploaded.trigger(fileUpload.getSpoolFileName()); fileUpload.remove(); createUpload(); } public Signal1<String> fileUploaded() { return fileUploaded; } }