its happening because you are using input type="submit" for the cancel
button, which of course submits the form. you should instead use a
link for cancel buttons.  you can attach a link to a input
type="button" if you want cancel to still be a button btw...

-igor

On Thu, Feb 21, 2008 at 5:56 PM, Dan Kaplan <[EMAIL PROTECTED]> wrote:
> Hello,
>
>
>
>  I've made an upload form and wanted to add a cancel button to it.  The
>  cancel button is clicked if the user decides he doesn't want to upload
>  (before he uploads) and should redirect back to another page.  This works
>  pretty well except I noticed that if the user chooses a file then clicks the
>  cancel button, the file starts uploading anyway!  Here's the code that does
>  this.  I can't see why it's happening:
>
>
>
>
>
>  import org.apache.wicket.authorization.strategies.role.Roles;
>
>  import
>  org.apache.wicket.authorization.strategies.role.annotations.AuthorizeInstant
>  iation;
>
>  import
>  org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
>
>  import org.apache.wicket.extensions.wizard.CancelButton;
>
>  import org.apache.wicket.markup.html.WebPage;
>
>  import org.apache.wicket.markup.html.form.Form;
>
>  import org.apache.wicket.markup.html.form.TextField;
>
>  import org.apache.wicket.markup.html.form.Button;
>
>  import org.apache.wicket.markup.html.form.upload.FileUpload;
>
>  import org.apache.wicket.markup.html.form.upload.FileUploadField;
>
>  import org.apache.wicket.markup.html.panel.FeedbackPanel;
>
>  import org.apache.wicket.model.PropertyModel;
>
>  import org.apache.wicket.util.file.Files;
>
>  import org.apache.wicket.util.file.Folder;
>
>
>
>  import java.io.File;
>
>
>
>  @AuthorizeInstantiation(Roles.USER)
>
>  public class CreateAReport extends WebPage {
>
>
>
>     private String reportName;
>
>
>
>     public CreateAReport() {
>
>         final FileUploadForm form = new FileUploadForm("form");
>
>         final UploadProgressBar progressBar = new
>  UploadProgressBar("progress", form);
>
>
>
>         form.add(progressBar);
>
>         form.add(new TextField("name", new PropertyModel(this,
>  "reportName")).setRequired(true));
>
>
>
>         Button submit = new Button("submitbutton") {
>
>             public void onSubmit() {
>
>                 form.upload();
>
>                 setResponsePage(CustomReport.class);
>
>             }
>
>         };
>
>         form.add(submit);
>
>
>
>         Button cancel = new Button("cancelbutton") {
>
>             public void onSubmit() {
>
>                 setResponsePage(ReportList.class);
>
>             }
>
>         };
>
>         cancel.setDefaultFormProcessing(false);
>
>         form.add(cancel);
>
>
>
>         add(form);
>
>
>
>         add(new FeedbackPanel("feedback"));
>
>     }
>
>
>
>     public String getReportName() {
>
>         return reportName;
>
>     }
>
>
>
>     public void setReportName(String reportName) {
>
>         this.reportName = reportName;
>
>     }
>
>
>
>     private class FileUploadForm extends Form {
>
>         protected FileUploadField fileUploadField;
>
>         protected File newFile;
>
>
>
>         /**
>
>          * Construct.
>
>          *
>
>          * @param name Component name
>
>          */
>
>         public FileUploadForm(String name) {
>
>             super(name);
>
>
>
>             // set this form to multipart mode (allways needed for uploads!)
>
>             setMultiPart(true);
>
>
>
>             // Add one file input field
>
>             add(fileUploadField = new FileUploadField("fileInput"));
>
>             fileUploadField.setRequired(true);
>
>
>
>             // Set maximum size to 100K for demo purposes
>
>  //            setMaxSize(Bytes.kilobytes(100));
>
>         }
>
>
>
>         public void upload() {
>
>             final FileUpload upload = fileUploadField.getFileUpload();
>
>             if (upload != null) {
>
>                 // Create a new file
>
>                 newFile = new File(getUploadFolder(),
>  upload.getClientFileName());
>
>
>
>                 // Check new file, delete if it allready existed
>
>                 checkFileExists(newFile);
>
>                 try {
>
>                     // Save to new file
>
>                     newFile.createNewFile();
>
>                     upload.writeTo(newFile);
>
>                 } catch (Exception e) {
>
>                     throw new IllegalStateException("Unable to write file: "
>  + newFile.getAbsolutePath());
>
>                 }
>
>             }
>
>         }
>
>
>
>         public File getFile() {
>
>             return newFile;
>
>         }
>
>     }
>
>
>
>     private void checkFileExists(File newFile) {
>
>         if (newFile.exists()) {
>
>             // Try to delete the file
>
>             if (!Files.remove(newFile)) {
>
>                 throw new IllegalStateException("Unable to overwrite " +
>  newFile.getAbsolutePath());
>
>             }
>
>         }
>
>     }
>
>
>
>     private Folder getUploadFolder() {
>
>         Folder uploadFolder = new
>  Folder(System.getProperty("java.io.tmpdir"), "wicket-uploads");
>
>         // Ensure folder exists
>
>         uploadFolder.mkdirs();
>
>         return uploadFolder;
>
>     }
>
>
>
>  }
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to