package org.linkality.xacmlanalysr.ui.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormHandler;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormSubmitEvent;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
public class UploadDialogBox extends DialogBox {
public UploadDialogBox() {
//Add an upload field
final FileUpload fileUpload = new FileUpload();
fileUpload.ensureDebugId("cwFileUpload");
fileUpload.setName("file");
// Create the dialog box
this.setText("Welcome to the Semantic Policy Analyser!");
this.setAnimationEnabled(true);
final FormPanel form = new FormPanel();
form.setAction(GWT.getModuleBaseURL() + "upload");
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
form.addFormHandler(new FormHandler() {
public void onSubmit(FormSubmitEvent event) {
if (fileUpload.getFilename().length() == 0) {
Window.alert("You must select a file.");
event.setCancelled(true);
}
}
public void onSubmitComplete(FormSubmitCompleteEvent event) {
Window.alert("Upload succeeded. " + event.getResults());
}});
Hidden hiddenParam = new Hidden("action", "uploadXacml");
// Add a button to upload the file
Button uploadButton = new Button("Upload file!");
VerticalPanel dialogVPanel = new VerticalPanel();
dialogVPanel.setWidth("100%");
dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
dialogVPanel.add(new HTML("<p/>At first, you need to upload a XACML file to work with:"));
dialogVPanel.add(hiddenParam);
dialogVPanel.add(fileUpload);
dialogVPanel.add(new HTML("<br>"));
dialogVPanel.add(uploadButton);
uploadButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
try {
form.submit();
((DialogBox) sender.getParent().getParent().getParent().getParent()).hide();
} catch (Exception e) {
e.printStackTrace();
}
}
});
// Set the contents of the Widget
form.add(dialogVPanel);
this.setWidget(form);
}
}