@Override protected void onDetach() { if (forceCloseStreamsOnDetach()) { // cleanup any opened filestreams Collection<FileUpload> uploads = getConvertedInput(); if (uploads != null) { for (FileUpload upload : uploads) { upload.closeStreams(); } } // cleanup any caches inputArrayCache = null; // clean up the model because we don't want FileUpload objects in session Collection<FileUpload> modelObject = getModelObject(); if (modelObject != null) { modelObject.clear(); } } super.onDetach(); }
public FileUploadForm(String id) { super(id); // set this form to multipart mode (always needed for uploads!) setMultiPart(true); uploads = new ArrayList<FileUpload>(); // Add one multi-file upload field IModel<ArrayList<FileUpload>> model = new Model<ArrayList<FileUpload>>(uploads); add(new MultiFileUploadField("tmx-upload",model)); // Set maximum size to 100K for demo purposes // setMaxSize(Bytes.kilobytes(100)); }
/** * @see org.apache.wicket.Component#onBeforeRender() */ @Override protected void onBeforeRender() { super.onBeforeRender(); Form<?> form = findParent(Form.class); if (form == null) { // woops throw new IllegalStateException("Component " + getClass().getName() + " must have a " + Form.class.getName() + " component above in the hierarchy"); } }
/** * @see org.apache.wicket.markup.html.form.FormComponent#updateModel() */ @Override public void updateModel() { final Collection<FileUpload> collection = getModelObject(); // figure out if there is an existing model object collection for us to // reuse if (collection == null) { // no existing collection, push the one we created setDefaultModelObject(getConvertedInput()); } else { // refresh the existing collection collection.clear(); if (getConvertedInput() != null) { collection.addAll(getConvertedInput()); } // push the collection in case the model is listening to // setobject calls setDefaultModelObject(collection); } }
final Object object = getModelObject(); setModelObject(getConvertedInput()); if (getConvertedInput() != null) collection.addAll((Collection)getConvertedInput()); setModelObject(collection);
/** * @see org.apache.wicket.markup.html.IHeaderContributor#renderHead(org.apache.wicket.markup.html.IHeaderResponse) */ public void renderHead(IHeaderResponse response) { // initialize the javascript library response.renderJavascriptReference(JS); response.renderOnDomReadyJavascript("new MultiSelector('" + getInputName() + "', document.getElementById('" + container.getMarkupId() + "'), " + max + ",'" + getString("org.apache.wicket.mfu.delete") + "').addElement(document.getElementById('" + upload.getMarkupId() + "'));"); }
/** * @see org.apache.wicket.markup.html.form.FormComponent#convertValue(java.lang.String[]) */ protected Object convertValue(String[] value) throws ConversionException { // convert the array of filenames into a collection of FileItems Collection uploads = null; final String[] filenames = getInputAsArray(); if (filenames != null) { final IMultipartWebRequest request = (IMultipartWebRequest)getRequest(); uploads = new ArrayList(filenames.length); for (int i = 0; i < filenames.length; i++) { uploads.add(new FileUpload(request.getFile(filenames[i]))); } } return uploads; }
final Request request = getRequest(); if (request instanceof IMultipartWebRequest) name.startsWith(getInputName() + MAGIC_SEPARATOR) && !fileItems.isEmpty() && !Strings.isEmpty(fileItems.get(0).getName()))
/** * @see org.apache.wicket.Component#onDetach() */ protected void onDetach() { // cleanup any opened filestreams Collection uploads = (Collection)getConvertedInput(); if (uploads != null) { Iterator it = uploads.iterator(); while (it.hasNext()) { final FileUpload upload = (FileUpload)it.next(); upload.closeStreams(); } } // cleanup any caches inputArrayCache = null; // clean up the model because we don't want FileUpload objects in session Object modelObject = getModelObject(); if (modelObject != null && (modelObject instanceof Collection)) { ((Collection)modelObject).clear(); } super.onDetach(); }
public Collection<FileUpload> getUploads() { return uploadField.getConvertedInput(); } }
/** * Constructor * * @param id * @param model * @param max * max number of files a user can upload * */ public MultiFileUploadField(String id, IModel model, int max) { super(id, model); this.max = max; upload = new WebComponent("upload"); upload.setOutputMarkupId(true); add(upload); container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); add(container); container.add(new Label("caption", new CaptionModel())); }
@Override public void renderHead(IHeaderResponse response) { super.renderHead(response); response.renderJavascriptReference(new ResourceReference(MultiFileUploadComponent.class, MULTI_FILE_UPLOAD_CUSTOM_JS)); }
/** * @see org.apache.wicket.markup.html.IHeaderContributor#renderHead(org.apache.wicket.markup.html.IHeaderResponse) */ public void renderHead(IHeaderResponse response) { // initialize the javascript library response.renderJavascriptReference(JS); response.renderOnDomReadyJavascript("new MultiSelector('" + getInputName() + "', document.getElementById('" + container.getMarkupId() + "'), " + max + ",'" + getString("org.apache.wicket.mfu.delete") + "').addElement(document.getElementById('" + upload.getMarkupId() + "'));"); }
@Override protected Collection<FileUpload> convertValue(String[] value) throws ConversionException { // convert the array of filenames into a collection of FileItems Collection<FileUpload> uploads = null; final String[] filenames = getInputAsArray(); if (filenames != null) { final IMultipartWebRequest request = (IMultipartWebRequest)getRequest(); uploads = new ArrayList<>(filenames.length); for (String filename : filenames) { List<FileItem> fileItems = request.getFile(filename); for (FileItem fileItem : fileItems) { uploads.add(new FileUpload(fileItem)); } } } return uploads; }
final Request request = getRequest(); if (request instanceof IMultipartWebRequest) name.startsWith(getInputName() + MAGIC_SEPARATOR) && !fileItems.isEmpty() && !Strings.isEmpty(fileItems.get(0).getName()))
/** * @see org.apache.wicket.Component#onDetach() */ @Override protected void onDetach() { // cleanup any opened filestreams Collection<FileUpload> uploads = getConvertedInput(); if (uploads != null) { Iterator<FileUpload> it = uploads.iterator(); while (it.hasNext()) { final FileUpload upload = it.next(); upload.closeStreams(); } } // cleanup any caches inputArrayCache = null; // clean up the model because we don't want FileUpload objects in session Collection<FileUpload> modelObject = getModelObject(); if (modelObject != null) { modelObject.clear(); } super.onDetach(); }
public Collection<FileUpload> getUploads() { return uploadField.getConvertedInput(); } }