List<Exception> validateSLD() { try { final String sld = editor.getInput(); ByteArrayInputStream input = new ByteArrayInputStream(sld.getBytes()); List<Exception> validationErrors = Styles.validate(input); return validationErrors; } catch (Exception e) { return Arrays.asList(e); } }
public void setRawSLD(Reader in) throws IOException { BufferedReader bin = null; if (in instanceof BufferedReader) { bin = (BufferedReader) in; } else { bin = new BufferedReader(in); } StringBuilder builder = new StringBuilder(); String line = null; while ((line = bin.readLine()) != null) { builder.append(line).append("\n"); } this.rawSLD = builder.toString(); editor.setModelObject(rawSLD); in.close(); }
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); }