Example usage for com.google.gwt.user.client.ui FormSubmitCompleteEvent getResults

List of usage examples for com.google.gwt.user.client.ui FormSubmitCompleteEvent getResults

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui FormSubmitCompleteEvent getResults.

Prototype

public String getResults() 

Source Link

Document

Gets the result text of the form submission.

Usage

From source file:com.apress.progwt.client.college.gui.LoginWindow.java

License:Apache License

private void setupForm() {
    form = new FormPanel();

    form.setAction(Interactive.getRelativeURL(SECURITY_URL));

    form.setMethod(FormPanel.METHOD_POST);

    // Create a panel to hold all of the form widgets.

    VerticalPanel panel = new VerticalPanel();

    DecoratedTabPanel tabs = new DecoratedTabPanel();
    tabs.add(getOpenIDTab(), "OpenID");
    tabs.add(getUPTab(), "Username/Password");
    tabs.selectTab(1);/*from  w  w w.  j a  v  a2  s. co  m*/

    panel.add(tabs);

    messageLabel = new Label("");
    panel.add(messageLabel);

    form.addFormHandler(new FormHandler() {

        // note, this doesn't need to be perfectly secure. We just
        // want to know that we think we're secure. The next request
        // will tell us for sure
        public void onSubmitComplete(FormSubmitCompleteEvent event) {

            Log.debug("submit event results " + event.getResults());
            if (event.getResults().equals("OK")) {
                success();
            } else {
                Log.warn("Login Fail: " + event.getResults());
                failure();
            }

            // // TODO parse bad password etc. Super-Fragile string
            // comps
            // if (event.getResults() == null
            // || -1 != event.getResults().indexOf(
            // "not successful")
            // || -1 != event.getResults().indexOf(
            // "Bad credentials")
            // || -1 != event.getResults().indexOf("404")) {
            // Log.warn("Login Fail: " + event.getResults());
            // failure();
            // } else {
            // Log.info("Login Success");
            // Log.debug(event.getResults());
            // success();
            // }

        }

        public void onSubmit(FormSubmitEvent event) {
            Log.debug("submit to " + form.getAction());

            // This event is fired just before the form is submitted.
            // We can take
            // this opportunity to perform validation.
            // if (username.getText().length() == 0) {
            // AlertDialog.alert("Username cannot be empty");
            // event.setCancelled(true);
            // }
            // if (password.getText().length() == 0) {
            // AlertDialog.alert("Password cannot be empty");
            // event.setCancelled(true);
            // }
            lastNameEntered = username.getText();
        }
    });

    form.setWidget(panel);

}

From source file:com.dimdim.conference.ui.resources.client.DocUploadPanel.java

License:Open Source License

public void onSubmitComplete(FormSubmitCompleteEvent event) {
    //   File submition is complete. Start the conversion process.
    //      Window.alert("Upload form submit return: "+event);
    String s = "null event";
    if (event != null) {
        s = event.toString() + ", response text:" + event.getResults();
    }//from   ww  w. jav  a2 s.c o  m
    DebugPanel.getDebugPanel().addDebugMessage("Upload form post return: " + s);
    if (this.activityTimer != null) {
        this.activityTimer.cancel();
        this.activityTimer = null;
    }
    DebugPanel.getDebugPanel().addDebugMessage("Kicking off conversion");
    fileUploadCompleted(this.selectedFileName);
}

From source file:com.GTDF.client.GWT_Transxchange2GoogleTransit.java

License:Apache License

public void onModuleLoad() {

    String wikiUserName = readUsername();

    //Service Start
    final TextBox textBoxServiceStartGz = new TextBox();

    TabPanel tabs = new TabPanel();
    tabs.setStyleName(".gwt-TabBar");

    tabs.setWidth("100%");
    tabs.setHeight("100%");

    //-------------------------EDJ ----------------
    DockPanel dock = new DockPanel();
    dock.setSize("663px", "220px");
    dock.setStyleName("gwt-TabBar");
    VerticalPanel TransformWindow = new VerticalPanel();
    TransformWindow.setStyleName("weather-input-panel");

    //Agency URL//from   w  w  w .ja v a  2 s.  c  o m
    HorizontalPanel AgencyURL = new HorizontalPanel();
    Label url_lbl = new Label("Agency URL:");
    url_lbl.setWidth("90");
    final TextBox textBoxUrl = new TextBox();
    textBoxUrl.setText("http://www.agency.org");
    textBoxUrl.setVisibleLength(40);
    AgencyURL.add(url_lbl);
    AgencyURL.add(textBoxUrl);
    //-----------

    //Route Type
    HorizontalPanel RType = new HorizontalPanel();
    Label rt_lbl = new Label("Route Type:");
    rt_lbl.setWidth("90");
    final ListBox listBoxDefaultRouteType = new ListBox();
    listBoxDefaultRouteType.setVisibleItemCount(1);
    listBoxDefaultRouteType.addItem("Tram");
    listBoxDefaultRouteType.addItem("Subway");
    listBoxDefaultRouteType.addItem("Rail");
    listBoxDefaultRouteType.addItem("Bus");
    listBoxDefaultRouteType.addItem("Ferry");
    listBoxDefaultRouteType.addItem("Cable car");
    listBoxDefaultRouteType.addItem("Gondola");
    listBoxDefaultRouteType.addItem("Funicular");
    listBoxDefaultRouteType.setSelectedIndex(0);
    RType.add(rt_lbl);
    RType.add(listBoxDefaultRouteType);
    //-----------

    //Time Zone
    VerticalPanel TZ = new VerticalPanel();
    Label tz_lbl = new Label("Time Zone:");
    tz_lbl.setWidth("90");

    HorizontalPanel Continent = new HorizontalPanel();
    Label continent_lbl = new Label("Continent:");
    continent_lbl.setWidth("90");
    final ListBox listBoxTimezoneP = new ListBox();
    listBoxTimezoneP.addItem("Africa");
    listBoxTimezoneP.addItem("America");
    listBoxTimezoneP.addItem("Antarctica");
    listBoxTimezoneP.addItem("Artic");
    listBoxTimezoneP.addItem("Asia");
    listBoxTimezoneP.addItem("Atlantic");
    listBoxTimezoneP.addItem("Australia");
    listBoxTimezoneP.addItem("Europe");
    listBoxTimezoneP.addItem("Indian");
    listBoxTimezoneP.addItem("Pacific");
    listBoxTimezoneP.setVisibleItemCount(1);
    listBoxTimezoneP.setSelectedIndex(0);

    Continent.add(continent_lbl);
    Continent.add(listBoxTimezoneP);

    HorizontalPanel Region = new HorizontalPanel();
    Label region_lbl = new Label("Region:");
    region_lbl.setWidth("90");
    final ListBox listBoxTimezoneS = new ListBox();
    switchTimezone(listBoxTimezoneS, 0);
    Region.add(region_lbl);
    Region.add(listBoxTimezoneS);

    TZ.add(tz_lbl);
    TZ.add(Continent);
    TZ.add(Region);
    //-----------

    Button dialogButton = new Button("Show Dialog", new ClickListener() {
        public void onClick(Widget sender) {
            //EDJ
            DialogBox dlg = new MyDialog();
            int left = 120;
            int top = 300;
            dlg.setPopupPosition(left, top);
            dlg.show();
        }
    });

    final Label labelOutdir = new Label(); // Displays wikiuser
    final Label labelResultGz = new Label();
    final Label labelResult = new Label();
    final Label labelResultUser = new Label();

    final FormPanel uploadFormGz = new FormPanel();
    uploadFormGz.setAction(GWT.getModuleBaseURL() + "upload");
    uploadFormGz.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadFormGz.setMethod(FormPanel.METHOD_POST);
    //Upload
    final HorizontalPanel uploadPanelGz = new HorizontalPanel();
    Label upload_lbl = new Label("Upload File:");
    upload_lbl.setWidth("90");
    uploadPanelGz.add(upload_lbl);
    //uploadPanelGz.add(upload_tb);
    //uploadPanelGz.add(upload_btn);
    //--------------

    // Add hidden widget to pass user name to FileUploadServlet for verification against wiki user table
    final Hidden hwGz = new Hidden("username", wikiUserName);
    uploadPanelGz.add(hwGz);

    // Add hidden widget to pass service start to FileUploadServlet
    final Hidden ssGz = new Hidden("prefix");
    uploadPanelGz.add(ssGz);

    final FileUpload uploadGz = new FileUpload();
    uploadGz.setName("uploadFormElement");
    uploadPanelGz.add(uploadGz);

    //final VerticalPanel uploadPanelGz = new VerticalPanel();
    uploadFormGz.setWidget(uploadPanelGz);

    /*
     * Add Transxchange2GoogleTransit file upload
     */
    final FormPanel uploadForm = new FormPanel();
    uploadForm.setAction(GWT.getModuleBaseURL() + "upload");
    uploadForm.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadForm.setMethod(FormPanel.METHOD_POST);
    final VerticalPanel uploadPanel = new VerticalPanel();
    uploadForm.setWidget(uploadPanel);

    // Add hidden widget to pass user name to FileUploadServlet for verification against wiki user table
    final Hidden hw = new Hidden("username", wikiUserName);
    uploadPanel.add(hw);

    final FileUpload upload = new FileUpload();
    upload.setName("uploadFormElement");
    uploadPanel.add(upload);

    /*
    * Verify user and enable action buttons if user exists
    */
    WikiUserServiceAsync wikiUserService = (WikiUserServiceAsync) GWT.create(WikiUserService.class);

    ServiceDefTarget endpoint = (ServiceDefTarget) wikiUserService;
    String moduleRelativeURL = GWT.getModuleBaseURL() + "WikiUser";
    endpoint.setServiceEntryPoint(moduleRelativeURL);

    AsyncCallback callback = new AsyncCallback() {
        public void onSuccess(Object result) {
            Button buttonGz = new Button("Upload", new ClickListener() {
                public void onClick(Widget sender) {
                    // Extract service start and pass as prefix
                    String serviceStart = textBoxServiceStartGz.getText();
                    ssGz.setValue(serviceStart);
                    // Upload selected infile to server
                    uploadFormGz.submit();

                    //EDJ
                    DialogBox dlg = new MyDialog();
                    int left = 120;
                    int top = 300;
                    dlg.setPopupPosition(left, top);
                    dlg.show();
                }
            });
            Button button = new Button("Transform", new ClickListener() {
                public void onClick(Widget sender) {
                    // Upload selected infile to server
                    uploadForm.submit();
                }
            });

            if (result != "LOGGED") {
                button.setEnabled(false);
                buttonGz.setEnabled(false);
                labelResultUser.setText((String) result);
            }
            uploadPanel.add(button);
            uploadPanelGz.add(buttonGz);
        }

        public void onFailure(Throwable caught) {
            try {
                throw caught;
            } catch (InvocationException e) {
                labelResult.setText("InvocationException: " + e.getMessage());
            } catch (Throwable e) {
                labelResult.setText("callback failed: " + e.getMessage());
            }
        }
    };
    wikiUserService.wikiUserVerify(wikiUserName, callback);

    /*
     * Upload google_transit.zip file
     */
    uploadFormGz.addFormHandler(new FormHandler() {
        public void onSubmitComplete(FormSubmitCompleteEvent event) {

            labelResultGz.setText((String) event.getResults());

        }

        public void onSubmit(FormSubmitEvent event) {
            // Upload infile to server
            String inFilename = uploadGz.getFilename();
            if (inFilename.length() == 0) {
                Window.alert("Infile required");
                return;
            }
        }
    });

    /*
     * Upload TransXChange file and call Transxchange2GoogleTransit servlet when "transform" button is pushed
     */
    uploadForm.addFormHandler(new FormHandler() {
        public void onSubmitComplete(FormSubmitCompleteEvent event) {

            labelResult.setText((String) event.getResults());

            // Start transformation
            String parseArgs = upload.getFilename();
            parseArgs = parseArgs + " " + textBoxUrl.getText();
            parseArgs = parseArgs + " " + listBoxTimezoneP.getItemText(listBoxTimezoneP.getSelectedIndex());
            String helpString = listBoxTimezoneS.getItemText(listBoxTimezoneS.getSelectedIndex());
            parseArgs = parseArgs + "/" + helpString.substring(0, helpString.indexOf(' '));
            parseArgs = parseArgs + " " + listBoxDefaultRouteType.getSelectedIndex();
            parseArgs = parseArgs + " " + labelOutdir.getText();

            // call server through GWT asynchronous RPC
            Transxchange2GoogleTransitServiceAsync transxchange2GoogleTransitService = (Transxchange2GoogleTransitServiceAsync) GWT
                    .create(Transxchange2GoogleTransitService.class);

            ServiceDefTarget endpoint = (ServiceDefTarget) transxchange2GoogleTransitService;
            String moduleRelativeURL = GWT.getModuleBaseURL() + "GTDF";
            endpoint.setServiceEntryPoint(moduleRelativeURL);

            AsyncCallback callback = new AsyncCallback() {
                public void onSuccess(Object result) {
                    labelResult.setText((String) result);
                }

                public void onFailure(Throwable caught) {
                    try {
                        throw caught;
                    } catch (InvocationException e) {
                        labelResult.setText("InvocationException: " + e.getMessage());
                    } catch (Throwable e) {
                        labelResult.setText("callback failed: " + e.getMessage());
                    }
                }
            };
            transxchange2GoogleTransitService.transxchange2GoogleTransit_transform(parseArgs, callback);
        }

        public void onSubmit(FormSubmitEvent event) {
            // Upload infile to server
            String inFilename = upload.getFilename();
            if (inFilename.length() == 0) {
                Window.alert("Infile required");
                return;
            }
        }
    });

    /*
     * Add UI elements
     *       Better practice (for future reference): use CSS
     */
    TransformWindow.add(AgencyURL);
    TransformWindow.add(RType);
    TransformWindow.add(TZ);
    TransformWindow.add(uploadPanelGz);
    TransformWindow.add(uploadPanel);
    TransformWindow.add(dialogButton);
    tabs.add(TransformWindow, "TransXChange");
    //tabs.add(TZ, "Transformation2");
    tabs.selectTab(0);
    dock.add(tabs, DockPanel.CENTER);
    RootPanel.get("tab_area").add(dock);

    /*
    RootPanel.get("gz_servicestart").add(textBoxServiceStartGz);    
     RootPanel.get("gz_infile").add(uploadFormGz);    
    RootPanel.get("url").add(textBoxUrl);
    RootPanel.get("timezoneP").add(listBoxTimezoneP);
    RootPanel.get("timezoneS").add(listBoxTimezoneS);
    RootPanel.get("defaultroutetype").add(listBoxDefaultRouteType);
    RootPanel.get("outdir").add(labelOutdir);
    labelOutdir.setText(wikiUserName);
    RootPanel.get("user_result").add(labelResultUser);
    RootPanel.get("gz_result").add(labelResultGz);
    RootPanel.get("result").add(labelResult);
     RootPanel.get("infile").add(uploadForm);    */

    // Primary time zone (Africa, Europe, ...) selected
    listBoxTimezoneP.addChangeListener(new ChangeListener() {
        public void onChange(Widget sender) {
            switchTimezone(listBoxTimezoneS, listBoxTimezoneP.getSelectedIndex());
        }
    });

    //----------------------------------------------------------------------------------------------
    //----------------------------------------EDJ---------------------------------------------------

}

From source file:org.drools.brms.client.admin.BackupManager.java

License:Apache License

private Widget newImportWidget() {

    final FormPanel uploadFormPanel = new FormPanel();
    uploadFormPanel.setAction(GWT.getModuleBaseURL() + "backup");
    uploadFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadFormPanel.setMethod(FormPanel.METHOD_POST);

    HorizontalPanel panel = new HorizontalPanel();
    uploadFormPanel.setWidget(panel);/*w  ww .j ava2 s.com*/

    final FileUpload upload = new FileUpload();
    upload.setName(HTMLFileManagerFields.FILE_UPLOAD_FIELD_NAME_IMPORT);
    panel.add(upload);

    panel.add(new Label("import:"));
    ImageButton ok = new ImageButton("images/upload.gif");
    ok.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
            doImportFile(uploadFormPanel);
        }

        private void doImportFile(final FormPanel uploadFormPanel) {
            if (Window.confirm("Are you sure you want to import? this will erase any content in the "
                    + "repository currently?")) {
                LoadingPopup.showMessage("Importing repository, please wait, as this could take some time...");
                uploadFormPanel.submit();
            }
        }
    });

    panel.add(ok);

    uploadFormPanel.addFormHandler(new FormHandler() {
        public void onSubmitComplete(FormSubmitCompleteEvent event) {
            if (event.getResults().indexOf("OK") > -1) {
                Window.alert(
                        "Rules repository imported successfully. Please refresh your browser (F5) to show the new content. ");
            } else {
                ErrorPopup.showMessage(
                        "Unable to import into the repository. Consult the server logs for error messages.");
            }
            LoadingPopup.close();
        }

        public void onSubmit(FormSubmitEvent event) {
            if (upload.getFilename().length() == 0) {
                Window.alert("You did not specify an exported repository filename !");
                event.setCancelled(true);
            } else if (!upload.getFilename().endsWith(".xml")) {
                Window.alert("Please specify a valid repository xml file.");
                event.setCancelled(true);
            }

        }
    });

    return uploadFormPanel;
}

From source file:org.drools.brms.client.packages.NewPackageWizard.java

License:Apache License

public static Widget newImportWidget(final Command afterCreatedEvent, final FormStylePopup parent) {

    final FormPanel uploadFormPanel = new FormPanel();
    uploadFormPanel.setAction(GWT.getModuleBaseURL() + "package");
    uploadFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadFormPanel.setMethod(FormPanel.METHOD_POST);

    HorizontalPanel panel = new HorizontalPanel();
    uploadFormPanel.setWidget(panel);/*ww  w.ja  va2  s.  c o  m*/

    final FileUpload upload = new FileUpload();
    upload.setName(HTMLFileManagerFields.CLASSIC_DRL_IMPORT);
    panel.add(upload);

    panel.add(new Label("upload:"));
    ImageButton ok = new ImageButton("images/upload.gif", "Import");
    ok.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
            if (Window.confirm(
                    "Are you sure you want to import this package? If the package already exists in the BRMS it will be merged.")) {
                LoadingPopup.showMessage("Importing drl package, please wait, as this could take some time...");
                uploadFormPanel.submit();
            }
        }

    });

    panel.add(ok);

    uploadFormPanel.addFormHandler(new FormHandler() {
        public void onSubmitComplete(FormSubmitCompleteEvent event) {
            if (event.getResults().indexOf("OK") > -1) {
                Window.alert("Package was imported successfully. ");
                afterCreatedEvent.execute();
                parent.hide();
            } else {
                ErrorPopup.showMessage("Unable to import into the package. [" + event.getResults() + "]");
            }
            LoadingPopup.close();
        }

        public void onSubmit(FormSubmitEvent event) {
            if (upload.getFilename().length() == 0) {
                Window.alert("You did not choose a drl file to import !");
                event.setCancelled(true);
            } else if (!upload.getFilename().endsWith(".drl")) {
                Window.alert("You can only import '.drl' files.");
                event.setCancelled(true);
            }

        }
    });

    return uploadFormPanel;
}

From source file:org.drools.guvnor.client.admin.BackupManager.java

License:Apache License

private Widget newImportWidget() {

    final FormPanel uploadFormPanel = new FormPanel();
    uploadFormPanel.setAction(GWT.getModuleBaseURL() + "backup");
    uploadFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadFormPanel.setMethod(FormPanel.METHOD_POST);

    HorizontalPanel panel = new HorizontalPanel();
    uploadFormPanel.setWidget(panel);//from   w  w  w .  j a  v a  2s .  co m

    final FileUpload upload = new FileUpload();
    upload.setName(HTMLFileManagerFields.FILE_UPLOAD_FIELD_NAME_IMPORT);
    panel.add(upload);

    //panel.add( new Label( "import:" ) );
    Button ok = new Button("Import");
    ok.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
            doImportFile(uploadFormPanel);
        }

        private void doImportFile(final FormPanel uploadFormPanel) {
            if (Window.confirm("Are you sure you want to import? This will erase any content in the "
                    + "repository currently?")) {
                LoadingPopup.showMessage("Importing repository, please wait, as this could take some time...");
                uploadFormPanel.submit();
            }
        }
    });

    panel.add(ok);

    uploadFormPanel.addFormHandler(new FormHandler() {
        public void onSubmitComplete(FormSubmitCompleteEvent event) {
            if (event.getResults().indexOf("OK") > -1) {
                Window.alert(
                        "Rules repository imported successfully. Please refresh your browser (F5) to show the new content. ");
            } else {
                ErrorPopup.showMessage(
                        "Unable to import into the repository. Consult the server logs for error messages.");
            }
            LoadingPopup.close();
        }

        public void onSubmit(FormSubmitEvent event) {
            if (upload.getFilename().length() == 0) {
                Window.alert("You did not specify an exported repository filename !");
                event.setCancelled(true);
            } else if (!upload.getFilename().endsWith(".xml")) {
                Window.alert("Please specify a valid repository xml file.");
                event.setCancelled(true);
            }

        }
    });

    return uploadFormPanel;
}

From source file:org.drools.guvnor.client.admin.BackupManager.java

License:Apache License

private Widget newImportPackageWidget(final CheckBox overWriteCheckBox) {

    final FormPanel uploadFormPanel = new FormPanel();
    uploadFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadFormPanel.setMethod(FormPanel.METHOD_POST);

    HorizontalPanel panel = new HorizontalPanel();
    uploadFormPanel.setWidget(panel);//from   ww w  . java  2 s .  c om

    final FileUpload upload = new FileUpload();
    upload.setName(HTMLFileManagerFields.FILE_UPLOAD_FIELD_NAME_IMPORT);
    panel.add(upload);

    panel.add(new Label("import:"));
    ImageButton ok = new ImageButton("images/upload.gif");
    ok.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
            uploadFormPanel.setAction(GWT.getModuleBaseURL() + "backup?packageImport=true&importAsNew="
                    + !overWriteCheckBox.isChecked());
            doImportFile(uploadFormPanel);
        }

        private void doImportFile(final FormPanel uploadFormPanel) {
            if ((overWriteCheckBox.isChecked() && Window.confirm(
                    "Are you sure you want to import? This will erase any content in the package currently?"))
                    || !overWriteCheckBox.isChecked()) {
                LoadingPopup.showMessage(
                        "Importing package to repository, please wait, as this could take some time...");
                uploadFormPanel.submit();
            }
        }
    });

    panel.add(ok);

    uploadFormPanel.addFormHandler(new FormHandler() {
        public void onSubmitComplete(FormSubmitCompleteEvent event) {
            if (event.getResults().indexOf("OK") > -1) {
                Window.alert(
                        "Rules package imported successfully. Please refresh your browser (F5) to show the new content. ");
            } else {
                ErrorPopup.showMessage(
                        "Unable to import into the repository. Consult the server logs for error messages.");
            }
            LoadingPopup.close();
        }

        public void onSubmit(FormSubmitEvent event) {
            if (upload.getFilename().length() == 0) {
                Window.alert("You did not specify an exported repository package filename !");
                event.setCancelled(true);
            } else if (!upload.getFilename().endsWith(".xml")) {
                Window.alert("Please specify a valid repository package xml file.");
                event.setCancelled(true);
            }

        }
    });

    return uploadFormPanel;
}

From source file:org.mobicents.slee.container.management.console.client.deployableunits.DeployableUnitInstallPanel.java

License:Open Source License

public DeployableUnitInstallPanel(BrowseContainer browseContainer) {
    super();/*  ww  w  .  j a  v  a 2  s .  c o m*/

    setAction("DeployableUnitsInstallService");
    setEncoding(FormPanel.ENCODING_MULTIPART);
    setMethod(FormPanel.METHOD_POST);

    ControlContainer panel = new ControlContainer();
    panel.setWidth("");

    setWidget(panel);

    Label label = new Label("Package file:");

    final FileUpload fileUpload = new FileUpload();
    fileUpload.setName("uploadFormElement");

    final Button submit = new Button("Install", new ClickListener() {
        public void onClick(Widget sender) {
            submit();
        }
    });

    addFormHandler(new FormHandler() {
        public void onSubmitComplete(final FormSubmitCompleteEvent event) {
            String result = event.getResults();

            if (result == null || result.length() == 0) {
                return;
            }

            result = extractMessage(result);

            if (result.indexOf(DeployableUnitsService.SUCCESS_CODE) != -1) {
                Logger.info("Deployable unit installed");
            } else {
                Logger.error(result);
            }
        }

        public void onSubmit(FormSubmitEvent event) {
            if (fileUpload.getFilename().trim().length() == 0) {
                Logger.error("Please specify a package file");
                event.setCancelled(true);
            }
        }
    });

    panel.setWidget(0, 0, label);
    panel.setWidget(0, 1, fileUpload);
    panel.setWidget(0, 2, submit);

    browseContainer.add("Install a deployable unit", this);
}