public UploadableProfileImagePanel(String id, final long userId) { super(id, userId); final Form<Void> form = new Form<Void>("form"); form.setMultiPart(true); form.setMaxSize(Bytes.bytes(getBean(ConfigurationDao.class).getMaxUploadSize())); // Model is necessary here to avoid writing image to the User object form.add( fileUploadField = new FileUploadField( "image", new IModel<List<FileUpload>>() { private static final long serialVersionUID = 1L; // FIXME this need to be eliminated public void detach() {} public void setObject(List<FileUpload> object) {} public List<FileUpload> getObject() { return null; } })); form.add(new UploadProgressBar("progress", form, fileUploadField)); fileUploadField.add( new AjaxFormSubmitBehavior(form, "onchange") { private static final long serialVersionUID = 2160216679027859231L; @Override protected void onSubmit(AjaxRequestTarget target) { FileUpload fu = fileUploadField.getFileUpload(); if (fu != null) { StoredFile sf = new StoredFile(fu.getClientFileName()); if (sf.isImage()) { boolean asIs = sf.isAsIs(); try { // FIXME need to work with InputStream !!! getBean(GenerateImage.class) .convertImageUserProfile(fu.writeToTempFile(), userId, asIs); } catch (Exception e) { // TODO display error e.printStackTrace(); } } else { // TODO display error } } target.add(profile, form); } }); add(form.setOutputMarkupId(true)); add(BootstrapFileUploadBehavior.INSTANCE); }
public UserPicturePanel(final String id, final User usr) { super(id); this.user = usr; // Form for uploading profile images fileUploadForm = new Form<>("fileUploadForm"); fileUploadForm.setOutputMarkupId(true); // User image userPhoto = new NonCachingImage("userImage", user.getProfilePicture(User.PictureDimensions.Large)); userPhoto.setOutputMarkupId(true); fileUploadForm.add(userPhoto); uploadField = new FileUploadField("fileUploadField"); fileUploadForm.add(uploadField.setOutputMarkupId(true)); fileUploadForm.setMaxSize(Bytes.kilobytes(MAX_SIZE)); fileUploadForm.add(new Label("max", Model.of(Bytes.kilobytes(MAX_SIZE)))); fileUploadForm.add( new AjaxSubmitLink("submit") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // Check whether an image has been provided to be uploaded FileUpload fileUpload = uploadField.getFileUpload(); if (fileUpload != null) { try { uploadHelper.processUserFileUpload(fileUpload, user); userPhoto.setImageResource(user.getProfilePicture(User.PictureDimensions.Large)); uploadField.clearInput(); target.add(uploadField); target.add(userPhoto); } catch (IOException e) { getPage().error(e.getLocalizedMessage()); target.add(((BasePage) getPage()).getFeedbackPanel()); } } } }); fileUploadForm.add( new AjaxSubmitLink("clear") { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { uploadHelper.removeUserPictures(user); target.add(userPhoto); } }); fileUploadForm.add(new UploadProgressBar("progress", fileUploadForm, uploadField)); add(fileUploadForm); fileUploadForm.add( new AjaxSubmitLink("uploadGravatar") { /** */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // Attempt to download image from gravatar try { byte[] rawImage = gv.download(user.getMail()); if (rawImage != null) { uploadHelper.processUserFileUpload(rawImage, user); userPhoto.setImageResource(user.getProfilePicture(User.PictureDimensions.Large)); uploadField.clearInput(); target.add(uploadField); target.add(userPhoto); } } catch (IOException e) { uploadHelper.removeUserPictures(user); target.add(userPhoto); } } }); }
protected void initUI(StyleInfo style) { IModel<StyleInfo> styleModel = new CompoundPropertyModel( style != null ? new StyleDetachableModel(style) : getCatalog().getFactory().createStyle()); styleForm = new Form("form", styleModel) { @Override protected void onSubmit() { super.onSubmit(); onStyleFormSubmit(); } }; styleForm.setMarkupId("mainForm"); add(styleForm); styleForm.add(nameTextField = new TextField("name")); nameTextField.setRequired(true); DropDownChoice<WorkspaceInfo> wsChoice = new DropDownChoice("workspace", new WorkspacesModel(), new WorkspaceChoiceRenderer()); wsChoice.setNullValid(true); if (!isAuthenticatedAsAdmin()) { wsChoice.setNullValid(false); wsChoice.setRequired(true); } styleForm.add(wsChoice); styleForm.add(editor = new CodeMirrorEditor("SLD", new PropertyModel(this, "rawSLD"))); // force the id otherwise this blasted thing won't be usable from other forms editor.setTextAreaMarkupId("editor"); editor.setOutputMarkupId(true); editor.setRequired(true); styleForm.add(editor); if (style != null) { try { setRawSLD(readFile(style)); } catch (IOException e) { // ouch, the style file is gone! Register a generic error message Session.get() .error(new ParamResourceModel("sldNotFound", this, style.getFilename()).getString()); } } // style copy functionality styles = new DropDownChoice( "existingStyles", new Model(), new StylesModel(), new StyleChoiceRenderer()); styles.setOutputMarkupId(true); styles.add( new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { styles.validate(); copyLink.setEnabled(styles.getConvertedInput() != null); target.addComponent(copyLink); } }); styleForm.add(styles); copyLink = copyLink(); copyLink.setEnabled(false); styleForm.add(copyLink); uploadForm = uploadForm(styleForm); uploadForm.setMultiPart(true); uploadForm.setMaxSize(Bytes.megabytes(1)); uploadForm.setMarkupId("uploadForm"); add(uploadForm); uploadForm.add(fileUploadField = new FileUploadField("filename")); add(validateLink()); Link cancelLink = new Link("cancel") { @Override public void onClick() { setResponsePage(StylePage.class); } }; add(cancelLink); }