private Template indentTemplatePattern(final Template template, final boolean indentFrom0) { String pattern = template.getPattern(); final String whiteSpacePrefix = indentFrom0 ? "" : getWhiteSpacePrefix(); try { pattern = IndentAction.indentLines(0, 0, pattern, true, whiteSpacePrefix); } catch (final RpcException e) { ErlLogger.error(e); } return new Template( template.getName(), template.getDescription(), template.getContextTypeId(), pattern, template.isAutoInsertable()); }
/** * Saves the templates as XML. * * @param templates the templates to save * @param result the stream result to write to * @throws IOException if writing the templates fails */ private void save(TemplatePersistenceData[] templates, StreamResult result) throws IOException { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Node root = document.createElement(TEMPLATE_ROOT); document.appendChild(root); for (int i = 0; i < templates.length; i++) { TemplatePersistenceData data = templates[i]; Template template = data.getTemplate(); Node node = document.createElement(TEMPLATE_ELEMENT); root.appendChild(node); NamedNodeMap attributes = node.getAttributes(); String id = data.getId(); if (id != null) { Attr idAttr = document.createAttribute(ID_ATTRIBUTE); idAttr.setValue(id); attributes.setNamedItem(idAttr); } if (template != null) { Attr name = document.createAttribute(NAME_ATTRIBUTE); name.setValue(template.getName()); attributes.setNamedItem(name); } if (template != null) { Attr proposalDesc = document.createAttribute(PROPOSAL_POPUP_DESCRIPTION); if (template instanceof SQLTemplate) { proposalDesc.setValue(((SQLTemplate) template).getProposalPopupDescription()); } attributes.setNamedItem(proposalDesc); } if (template != null) { Attr description = document.createAttribute(DESCRIPTION_ATTRIBUTE); description.setValue(template.getDescription()); attributes.setNamedItem(description); } if (template != null) { Attr context = document.createAttribute(CONTEXT_ATTRIBUTE); context.setValue(template.getContextTypeId()); attributes.setNamedItem(context); } Attr enabled = document.createAttribute(ENABLED_ATTRIBUTE); enabled.setValue(data.isEnabled() ? Boolean.toString(true) : Boolean.toString(false)); attributes.setNamedItem(enabled); Attr deleted = document.createAttribute(DELETED_ATTRIBUTE); deleted.setValue(data.isDeleted() ? Boolean.toString(true) : Boolean.toString(false)); attributes.setNamedItem(deleted); if (template != null) { Attr autoInsertable = document.createAttribute(AUTO_INSERTABLE_ATTRIBUTE); autoInsertable.setValue( template.isAutoInsertable() ? Boolean.toString(true) : Boolean.toString(false)); attributes.setNamedItem(autoInsertable); } if (template != null) { Text pattern = document.createTextNode(template.getPattern()); node.appendChild(pattern); } } Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); // $NON-NLS-1$ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // $NON-NLS-1$ DOMSource source = new DOMSource(document); transformer.transform(source, result); } catch (ParserConfigurationException e) { Assert.isTrue(false); } catch (TransformerException e) { if (e.getException() instanceof IOException) throw (IOException) e.getException(); Assert.isTrue(false); } }
/* * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension4#isAutoInsertable() */ @Override public boolean isAutoInsertable() { if (isSelectionTemplate()) return false; return fTemplate.isAutoInsertable(); }