List of usage examples for org.apache.wicket.util.lang Bytes kilobytes
public static Bytes kilobytes(final double kilobytes)
From source file:au.org.theark.study.web.component.correspondence.form.DetailForm.java
License:Open Source License
public void initialiseDetailForm() { initialiseOperatorDropDown();//w ww . j a va 2 s .c o m // create new DateTextField and assign date format dateFld = new DateTextField("correspondence.date", au.org.theark.core.Constants.DD_MM_YYYY); ArkDatePicker datePicker = new ArkDatePicker(); datePicker.bind(dateFld); dateFld.add(datePicker); timeTxtFld = new TextField<String>("correspondence.time"); initialiseModeTypeDropDown(); initialiseDirectionTypeDropDown(); initialiseOutcomeTypeDropDown(); reasonTxtArea = new TextArea<String>("correspondence.reason"); detailsTxtArea = new TextArea<String>("correspondence.details"); commentsTxtArea = new TextArea<String>("correspondence.comments"); billableItemLbl = new Label("billableItemDescription"); billableItemLbl.setOutputMarkupId(true); billableItemLbl.setVisible(true); studyNameLbl = new Label("studyName"); studyNameLbl.setOutputMarkupId(true); studyNameLbl.setVisible(true); // fileUploadField = new FileUploadField("correspondence.attachmentFilename", new Model<List<FileUpload>>()); fileUploadField = new FileUploadField("file"); setMaxSize(Bytes.kilobytes(2048)); fileNameLbl = new Label("correspondence.attachmentFilename"); fileNameLbl.setOutputMarkupId(true); clearButton = new AjaxButton("clearButton") { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { fileUploadField.clearInput(); target.add(fileUploadField); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { fileUploadField.clearInput(); target.add(fileUploadField); } }; clearButton.add(new AttributeModifier("title", new Model<String>("Clear Attachment"))); deleteButton = new AjaxButton("deleteButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { containerForm.getModelObject().getCorrespondence().setAttachmentPayload(null); containerForm.getModelObject().getCorrespondence().setAttachmentFilename(null); this.setVisible(false); target.add(fileNameLbl); target.add(this); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { containerForm.getModelObject().getCorrespondence().setAttachmentPayload(null); containerForm.getModelObject().getCorrespondence().setAttachmentFilename(null); this.setVisible(false); target.add(fileNameLbl); target.add(this); } @Override public boolean isVisible() { return (containerForm.getModelObject().getCorrespondence().getAttachmentFilename() != null) && !containerForm.getModelObject().getCorrespondence().getAttachmentFilename().isEmpty(); } }; deleteButton.add(new AttributeModifier("title", new Model<String>("Delete Attachment"))); deleteButton.setOutputMarkupId(true); workTrackingContainer = new WebMarkupContainer("worktrackingcontainer"); workTrackingContainer.setVisible(false); initBillableItemTypeDropDown(); initWorkRequestDropDown(); addDetailFormComponents(); attachValidators(); historyButtonPanel = new HistoryButtonPanel(containerForm, arkCrudContainerVO.getEditButtonContainer(), arkCrudContainerVO.getDetailPanelFormContainer()); }
From source file:au.org.theark.study.web.component.managestudy.form.DetailForm.java
License:Open Source License
private void initStudyLogo() { // Set maximum logo image size to 100K setMaxSize(Bytes.kilobytes(Constants.STUDY_LOGO_FILESIZE_KB)); if (containerForm.getModelObject().getStudy() != null && containerForm.getModelObject().getStudy().getStudyLogoBlob() != null) { final java.sql.Blob studyLogoBlob = containerForm.getModelObject().getStudy().getStudyLogoBlob(); if (studyLogoBlob != null) { BlobImageResource blobImageResource = new BlobImageResource() { private static final long serialVersionUID = 1L; @Override/*from w w w .j a v a 2 s . c om*/ protected Blob getBlob() { return studyLogoBlob; } }; studyLogoImage = new NonCachingImage("study.studyLogoImage", blobImageResource); } } else { studyLogoImage = new NonCachingImage("study.studyLogoImage", NO_STUDY_LOGO); } studyLogoImage.setVisible(true); studyLogoImage.setOutputMarkupPlaceholderTag(true); studyCrudVO.getDetailPanelFormContainer().addOrReplace(studyLogoImage); }
From source file:biz.turnonline.ecosystem.origin.frontend.FrontendApplication.java
License:Apache License
@Override public IDataStoreEvictionStrategy getEvictionStrategy() { return new MemorySizeEvictionStrategy(Bytes.kilobytes(200L)); }
From source file:ca.travelagency.config.CompanyPage.java
License:Apache License
private Form<Void> uploadForm() { Form<Void> form = new Form<Void>(UPLOAD_FORM) { private static final long serialVersionUID = 1L; @Override//from ww w . ja v a 2 s.c om protected void onSubmit() { FileUpload fileUpload = fileUploadField.getFileUpload(); if (fileUpload == null) { return; } String code = ApplicationProperties.make().getCode(); File companyLogoFile = UploadUtils.getCompanyLogoFile(code); try { companyLogoFile.createNewFile(); fileUpload.writeTo(companyLogoFile); } catch (Exception e) { throw new RuntimeException("Unable to write logo image", e); } } }; form.setMultiPart(true); form.setMaxSize(Bytes.kilobytes(100)); form.add(new ComponentFeedbackPanel(FEEDBACK, form)); fileUploadField = new FileUploadField(UPLOAD_FIELD, new ListModel<FileUpload>()); form.add(fileUploadField); return form; }
From source file:com.evolveum.midpoint.web.page.PageTest.java
License:Apache License
private void initLayout() { Form form = new Form("form"); form.setMaxSize(Bytes.kilobytes(192)); // form.setMultiPart(true); add(form);// w ww . ja va 2s . c o m FileUploadField fileUpload = new FileUploadField("fileInput"); form.add(fileUpload); AjaxSubmitButton save = new AjaxSubmitButton("save", createStringResource("pageUser.button.save")) { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { setResponsePage(PageUsers.class); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(getFeedbackPanel()); } }; form.add(save); }
From source file:com.locke.tricks.a.A.java
License:Apache License
public A() { add(new AttachmentPanel("attachmentPanel", getCss(), Bytes.kilobytes(256), new AbstractReadOnlyModel<List<IAttachment>>() { @Override//from www .ja v a2 s.c o m public List<IAttachment> getObject() { return attachments; } }, Feature.POPUP_EDITOR_LINK, Feature.DOWNLOAD_LINK, Feature.REMOVE_LINK)); }
From source file:com.locke.tricks.d.D.java
License:Apache License
public D() { add(new AttachmentPanel("attachmentPanel", getCss(), Bytes.kilobytes(256), new AbstractReadOnlyModel<List<IAttachment>>() { @Override//from ww w. j av a 2s . c om public List<IAttachment> getObject() { return attachments; } }, Feature.POPUP_EDITOR_LINK, Feature.DOWNLOAD_LINK, Feature.REMOVE_LINK)); }
From source file:com.servoy.j2db.server.headlessclient.WebClientsApplication.java
License:Open Source License
/** * @see wicket.protocol.http.WebApplication#init() *///from www .j a v a 2 s . c o m @Override protected void init() { if (ApplicationServerRegistry.get() == null) return; // TODO this is a workaround to allow mobile test client that only starts Tomcat not to give exceptions (please remove if mobile test client initialises a full app. server in the future) getResourceSettings().setResourceWatcher(new ServoyModificationWatcher(Duration.seconds(5))); // getResourceSettings().setResourcePollFrequency(Duration.seconds(5)); getResourceSettings().setAddLastModifiedTimeToResourceReferenceUrl(true); getResourceSettings().setDefaultCacheDuration((int) Duration.days(365).seconds()); getMarkupSettings().setCompressWhitespace(true); getMarkupSettings().setMarkupCache(new ServoyMarkupCache(this)); // getMarkupSettings().setStripWicketTags(true); getResourceSettings().setResourceStreamLocator(new ServoyResourceStreamLocator(this)); getResourceSettings().setPackageResourceGuard(new ServoyPackageResourceGuard()); // getResourceSettings().setResourceFinder(createResourceFinder()); getResourceSettings().setThrowExceptionOnMissingResource(false); getApplicationSettings().setPageExpiredErrorPage(ServoyExpiredPage.class); getApplicationSettings().setClassResolver(new ServoyClassResolver()); getSessionSettings().setMaxPageMaps(15); // getRequestCycleSettings().setGatherExtendedBrowserInfo(true); getSecuritySettings().setCryptFactory(new CachingKeyInSessionSunJceCryptFactory()); Settings settings = Settings.getInstance(); getDebugSettings().setOutputComponentPath( Utils.getAsBoolean(settings.getProperty("servoy.webclient.debug.wicketpath", "false"))); //$NON-NLS-1$ //$NON-NLS-2$ if (Utils.getAsBoolean(settings.getProperty("servoy.webclient.nice.urls", "false"))) //$NON-NLS-1$ //$NON-NLS-2$ { mount(new HybridUrlCodingStrategy("/solutions", SolutionLoader.class)); //$NON-NLS-1$ mount(new HybridUrlCodingStrategy("/application", MainPage.class)); //$NON-NLS-1$ mount(new HybridUrlCodingStrategy("/ss", SolutionLoader.class) //$NON-NLS-1$ { /** * @see wicket.request.target.coding.BookmarkablePageRequestTargetUrlCodingStrategy#matches(wicket.IRequestTarget) */ @Override public boolean matches(IRequestTarget requestTarget) { return false; } }); } else { mountBookmarkablePage("/solutions", SolutionLoader.class); //$NON-NLS-1$ mount(new BookmarkablePageRequestTargetUrlCodingStrategy("/ss", SolutionLoader.class, null) //$NON-NLS-1$ { /** * @see wicket.request.target.coding.BookmarkablePageRequestTargetUrlCodingStrategy#matches(wicket.IRequestTarget) */ @Override public boolean matches(IRequestTarget requestTarget) { return false; } }); } long maxSize = Utils.getAsLong(settings.getProperty("servoy.webclient.maxuploadsize", "0"), false); //$NON-NLS-1$ //$NON-NLS-2$ if (maxSize > 0) { getApplicationSettings().setDefaultMaximumUploadSize(Bytes.kilobytes(maxSize)); } getSharedResources().putClassAlias(IApplication.class, "application"); //$NON-NLS-1$ getSharedResources().putClassAlias(PageContributor.class, "pc"); //$NON-NLS-1$ getSharedResources().putClassAlias(MaskBehavior.class, "mask"); //$NON-NLS-1$ getSharedResources().putClassAlias(Application.class, "servoy"); //$NON-NLS-1$ getSharedResources().putClassAlias(org.wicketstuff.calendar.markup.html.form.DatePicker.class, "datepicker"); //$NON-NLS-1$ getSharedResources().putClassAlias(YUILoader.class, "yui"); //$NON-NLS-1$ getSharedResources().putClassAlias(JQueryLoader.class, "jquery"); //$NON-NLS-1$ getSharedResources().putClassAlias(TinyMCELoader.class, "tinymce"); //$NON-NLS-1$ getSharedResources().putClassAlias(org.apache.wicket.markup.html.WicketEventReference.class, "wicketevent"); //$NON-NLS-1$ getSharedResources().putClassAlias(org.apache.wicket.ajax.WicketAjaxReference.class, "wicketajax"); //$NON-NLS-1$ getSharedResources().putClassAlias(MainPage.class, "servoyjs"); //$NON-NLS-1$ getSharedResources().putClassAlias(org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.class, "modalwindow"); //$NON-NLS-1$ PackageResource.bind(this, IApplication.class, "images/open_project.gif"); //$NON-NLS-1$ PackageResource.bind(this, IApplication.class, "images/save.gif"); //$NON-NLS-1$ mountSharedResource("/formcss", "servoy/formcss"); //$NON-NLS-1$//$NON-NLS-2$ sharedMediaResource = new SharedMediaResource(); getSharedResources().add("media", sharedMediaResource); //$NON-NLS-1$ mount(new SharedResourceRequestTargetUrlCodingStrategy("mediafolder", "servoy/media") //$NON-NLS-1$ //$NON-NLS-2$ { @Override protected void appendParameters(AppendingStringBuffer url, Map<String, ?> parameters) { if (parameters != null && parameters.size() > 0) { Object solutionName = parameters.get("s"); //$NON-NLS-1$ if (solutionName != null) appendPathParameter(url, null, solutionName.toString()); Object resourceId = parameters.get("id"); //$NON-NLS-1$ if (resourceId != null) appendPathParameter(url, null, resourceId.toString()); StringBuilder queryParams = new StringBuilder(); for (Entry<?, ?> entry1 : parameters.entrySet()) { Object value = ((Entry<?, ?>) entry1).getValue(); if (value != null) { Object key = ((Entry<?, ?>) entry1).getKey(); if (!"s".equals(key) && !"id".equals(key)) //$NON-NLS-1$ //$NON-NLS-2$ { if (value instanceof String[]) { String[] values = (String[]) value; for (String value1 : values) { if (queryParams.length() > 0) queryParams.append("&"); //$NON-NLS-1$ queryParams.append(key).append("=").append(value1);//$NON-NLS-1$ } } else { if (queryParams.length() > 0) queryParams.append("&"); //$NON-NLS-1$ queryParams.append(key).append("=").append(value);//$NON-NLS-1$ } } } } if (queryParams.length() > 0) { url.append("?").append(queryParams);//$NON-NLS-1$ } } } @Override protected void appendPathParameter(AppendingStringBuffer url, String key, String value) { String escapedValue = value; String[] values = escapedValue.split("/");//$NON-NLS-1$ if (values.length > 1) { StringBuilder sb = new StringBuilder(escapedValue.length()); for (String str : values) { sb.append(urlEncodePathComponent(str)); sb.append('/'); } sb.setLength(sb.length() - 1); escapedValue = sb.toString(); } else { escapedValue = urlEncodePathComponent(escapedValue); } if (!Strings.isEmpty(escapedValue)) { if (!url.endsWith("/"))//$NON-NLS-1$ { url.append("/");//$NON-NLS-1$ } if (key != null) url.append(urlEncodePathComponent(key)).append("/");//$NON-NLS-1$ url.append(escapedValue); } } /* * (non-Javadoc) * * @see org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map) */ @Override protected ValueMap decodeParameters(String urlFragment, Map<String, ?> urlParameters) { ValueMap map = new ValueMap(); final String[] pairs = urlFragment.split("/"); //$NON-NLS-1$ if (pairs.length > 1) { map.add("s", pairs[1]); //$NON-NLS-1$ StringBuffer sb = new StringBuffer(); for (int i = 2; i < pairs.length; i++) { sb.append(pairs[i]); sb.append("/"); //$NON-NLS-1$ } sb.setLength(sb.length() - 1); map.add("id", sb.toString()); //$NON-NLS-1$ } if (urlParameters != null) { map.putAll(urlParameters); } return map; } }); getSharedResources().add("resources", new ServeResources()); //$NON-NLS-1$ getSharedResources().add("formcss", new FormCssResource(this)); //$NON-NLS-1$ if (settings.getProperty("servoy.webclient.error.page", null) != null) //$NON-NLS-1$ { getApplicationSettings().setInternalErrorPage(ServoyErrorPage.class); } if (settings.getProperty("servoy.webclient.pageexpired.page", null) != null) //$NON-NLS-1$ { getApplicationSettings().setPageExpiredErrorPage(ServoyPageExpiredPage.class); } addPreComponentOnBeforeRenderListener(new IComponentOnBeforeRenderListener() { public void onBeforeRender(Component component) { if (component instanceof IServoyAwareBean) { IModel model = component.getInnermostModel(); WebForm webForm = component.findParent(WebForm.class); if (model instanceof RecordItemModel && webForm != null) { IRecord record = (IRecord) ((RecordItemModel) model).getObject(); FormScope fs = webForm.getController().getFormScope(); if (record != null && fs != null) { ((IServoyAwareBean) component).setSelectedRecord(new ServoyBeanState(record, fs)); } } } else { if (!component.isEnabled()) { boolean hasOnRender = (component instanceof IFieldComponent && ((IFieldComponent) component) .getScriptObject() instanceof ISupportOnRenderCallback && ((ISupportOnRenderCallback) ((IFieldComponent) component).getScriptObject()) .getRenderEventExecutor().hasRenderCallback()); if (!hasOnRender) { // onrender may change the enable state return; } } Component targetComponent = null; boolean hasFocus = false, hasBlur = false; if (component instanceof IFieldComponent && ((IFieldComponent) component).getEventExecutor() != null) { targetComponent = component; if (component instanceof WebBaseSelectBox) { Component[] cs = ((WebBaseSelectBox) component).getFocusChildren(); if (cs != null && cs.length == 1) targetComponent = cs[0]; } if (component instanceof WebDataHtmlArea) hasFocus = true; // always install a focus handler when in a table view to detect change of selectedIndex and test for record validation if (((IFieldComponent) component).getEventExecutor().hasEnterCmds() || component.findParent(WebCellBasedView.class) != null || (((IFieldComponent) component) .getScriptObject() instanceof ISupportOnRenderCallback && ((ISupportOnRenderCallback) ((IFieldComponent) component) .getScriptObject()).getRenderEventExecutor().hasRenderCallback())) { hasFocus = true; } // Always trigger event on focus lost: // 1) check for new selected index, record validation may have failed preventing a index changed // 2) prevent focus gained to be called when field validation failed // 3) general ondata change hasBlur = true; } else if (component instanceof WebBaseLabel) { targetComponent = component; hasFocus = true; } if (targetComponent != null) { MainPage mainPage = targetComponent.findParent(MainPage.class); if (mainPage.isUsingAjax()) { AbstractAjaxBehavior eventCallback = mainPage.getPageContributor().getEventCallback(); if (eventCallback != null) { String callback = eventCallback.getCallbackUrl().toString(); if (component instanceof WebDataRadioChoice || component instanceof WebDataCheckBoxChoice || component instanceof WebDataLookupField || component instanceof WebDataComboBox || component instanceof WebDataListBox || component instanceof WebDataHtmlArea) { // is updated via ServoyChoiceComponentUpdatingBehavior or ServoyFormComponentUpdatingBehavior, this is just for events callback += "&nopostdata=true"; } for (IBehavior behavior : targetComponent.getBehaviors()) { if (behavior instanceof EventCallbackModifier) { targetComponent.remove(behavior); } } if (hasFocus) { StringBuilder js = new StringBuilder(); js.append("eventCallback(this,'focus','").append(callback).append("',event)"); //$NON-NLS-1$ //$NON-NLS-2$ targetComponent.add(new EventCallbackModifier("onfocus", true, //$NON-NLS-1$ new Model<String>(js.toString()))); targetComponent.add(new EventCallbackModifier("onmousedown", true, //$NON-NLS-1$ new Model<String>("focusMousedownCallback(event)"))); //$NON-NLS-1$ } if (hasBlur) { boolean blockRequest = false; // if component has ondatachange, check for blockrequest if (component instanceof ISupportEventExecutor && ((ISupportEventExecutor) component).getEventExecutor() .hasChangeCmd()) { WebClientSession webClientSession = WebClientSession.get(); blockRequest = webClientSession != null && webClientSession.blockRequest(); } StringBuilder js = new StringBuilder(); js.append("postEventCallback(this,'blur','").append(callback) //$NON-NLS-1$ .append("',event," + blockRequest + ")"); //$NON-NLS-1$ targetComponent.add(new EventCallbackModifier("onblur", true, //$NON-NLS-1$ new Model<String>(js.toString()))); } } } } } } }); }
From source file:eu.uqasar.web.pages.qmodel.QModelImportPage.java
License:Apache License
public QModelImportPage(PageParameters parameters) { super(parameters); logger.info("QModelImportPage::QModelImportPage start"); final Form<?> form = new Form<Void>("form") { /**/*from ww w. j a v a 2s .c om*/ * */ private static final long serialVersionUID = 4949407424211758709L; @Override protected void onSubmit() { logger.info("QModelImportPage::onSubmit starts"); errorMessage = ""; try { FileUpload upload = file.getFileUpload(); if (upload == null) { errorMessage = "qmodel.empty.file.error"; logger.info("QModelImportPage::onSubmit no file uploaded"); } else { logger.info("QModelImportPage::onSubmit some file uploaded"); if (upload.getSize() > Bytes.kilobytes(MAX_SIZE).bytes()) { errorMessage = "qmodel.max.file.error"; logger.info("QModelImportPage::onSubmit MAX_SIZE size" + upload.getSize()); } else { logger.info("QModelImportPage::onSubmit file name " + upload.getClientFileName() + " File-Size: " + Bytes.bytes(upload.getSize()).toString() + "content-type " + upload.getContentType()); user = UQasar.getSession().getLoggedInUser(); if (user.getCompany() != null) { company = companyService.getById(user.getCompany().getId()); } if (upload.getContentType() != null && upload.getContentType().equals(XML_CONTENT)) { //parsing qm = parse(upload, true); } else if (upload.getContentType() != null && (upload.getContentType().equals(JSON_CONTENT) || upload.getContentType().equals(OCT_CONTENT))) { //json candidate qm = parse(upload, false); } else { //file not valid errorMessage = "qmodel.type.file.error"; } } } if (qm != null) { qm.setUpdateDate(DateTime.now().toDate()); if (qm.getCompanyId() != 0) { qm.setCompany(companyService.getById(qm.getCompanyId())); } else { if (company != null) { qm.setCompany(company); qm.setCompanyId(company.getId()); } } qm = (QModel) qmodelService.create(qm); } } catch (uQasarException ex) { if (ex.getMessage().contains("nodeKey")) { errorMessage = "qmodel.key.unique"; } } catch (JsonProcessingException ex) { logger.info("JsonProcessingException----------------------------------------"); if (ex.getMessage().contains("expecting comma to separate ARRAY entries")) { errorMessage = "qmodel.json.parse.error"; } else if (ex.getMessage().contains("Unexpected character")) { errorMessage = "qmodel.json.char.error"; } else if (ex.getMessage().contains("Can not construct instance")) { errorMessage = "qmodel.json.enum.error"; } else { logger.info("JsonProcessingException----------------------------"); errorMessage = "qmodel.xml.parse.error"; } } catch (JAXBException ex) { logger.info("JAXBException----------------------------"); errorMessage = "qmodel.xml.parse.error"; } catch (Exception ex) { logger.info("IOException----------------------------"); errorMessage = "qmodel.import.importError"; } finally { PageParameters parameters = new PageParameters(); if (null != errorMessage && !errorMessage.equals("")) { logger.info("Attaching error message"); parameters.add(QModelImportPage.LEVEL_PARAM, FeedbackMessage.ERROR); parameters.add(QModelImportPage.MESSAGE_PARAM, getLocalizer().getString(errorMessage, this)); setResponsePage(QModelImportPage.class, parameters); } else { logger.info("qmodel successfully created: redirection"); //qmodel successfully created: redirection parameters.add(BasePage.LEVEL_PARAM, FeedbackMessage.SUCCESS); parameters.add(BasePage.MESSAGE_PARAM, getLocalizer().getString("treenode.imported.message", this)); parameters.add("qmodel-key", qm.getNodeKey()); parameters.add("name", qm.getName()); setResponsePage(QModelViewPage.class, parameters); } } } }; // create the file upload field file = new FileUploadField("file"); form.addOrReplace(file); form.add(new Label("max", new AbstractReadOnlyModel<String>() { /** * */ private static final long serialVersionUID = 3532428309651830468L; @Override public String getObject() { return (Bytes.kilobytes(MAX_SIZE)).toString(); } })); // add progress bar form.add(new UploadProgressBar("progress", form, file)); ServletContext context = ((WebApplication) getApplication()).getServletContext(); // Download xml example File filexml = new File(context.getRealPath("/assets/files/qmodel.xml")); DownloadLink xmlLink = new DownloadLink("xmlLink", filexml); form.add(xmlLink); // Download json example File filejson = new File(context.getRealPath("/assets/files/qmodel.json")); DownloadLink jsonLink = new DownloadLink("jsonLink", filejson); form.add(jsonLink); add(form); logger.info("QModelImportPage::QModelImportPage ends"); }
From source file:eu.uqasar.web.pages.tree.projects.ProjectImportPage.java
License:Apache License
public ProjectImportPage(PageParameters parameters) { super(parameters); upload = new FileUploadField("file"); final Form<?> form = new Form<Void>("form") { private static final long serialVersionUID = -8541751079487127243L; @Override/*from ww w. j av a 2 s. c o m*/ protected void onSubmit() { Project p = null; try { FileUpload file = upload.getFileUpload(); if (file == null) { logger.info("File upload failed"); error = true; } else { if (file.getSize() > Bytes.kilobytes(MAX_SIZE).bytes()) { logger.info("File is too big"); error = true; } else { String content = file.getContentType(); if (content != null) { logger.info("Parser called"); p = parseProject(file, content); p = (Project) treeNodeService.create(p); // set company to qmodel user = UQasar.getSession().getLoggedInUser(); if (user != null && user.getCompany() != null) { p.setCompany(user.getCompany()); } } else { logger.info("Upload file is invalid"); error = true; } } } } catch (uQasarException ex) { if (ex.getMessage().contains("nodeKey")) { error = true; logger.info("duplicated nodeKey"); errorMessage = "import.key.unique"; } } catch (Exception ex) { error = true; logger.error(ex.getMessage(), ex); } finally { PageParameters parameters = new PageParameters(); if (error) { parameters.add(BasePage.LEVEL_PARAM, FeedbackMessage.ERROR); if (errorMessage != null && errorMessage.contains("key")) { parameters.add(QModelImportPage.MESSAGE_PARAM, getLocalizer().getString(errorMessage, this)); } else { parameters.add(BasePage.MESSAGE_PARAM, getLocalizer().getString("import.importError", this)); } setResponsePage(ProjectImportPage.class, parameters); } else { parameters.add(BasePage.LEVEL_PARAM, FeedbackMessage.SUCCESS); parameters.add(BasePage.MESSAGE_PARAM, getLocalizer().getString("import.importMessage", this)); // TODO what if p == null? parameters.add("project-key", p != null ? p.getNodeKey() : "?"); setResponsePage(ProjectViewPage.class, parameters); } } } }; form.add(upload); form.setMaxSize(Bytes.kilobytes(MAX_SIZE)); form.add(new Label("max", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 3532428309651830468L; @Override public String getObject() { return form.getMaxSize().toString(); } })); form.add(new UploadProgressBar("progress", form, upload)); form.add(new Button("uploadButton", new StringResourceModel("upload.button", this, null))); add(form); }