@Override public short handle(UAElement element, String id) { if (deprecatedElements != null) { String suggestion = deprecatedElements.get(element.getElementName()); if (suggestion != null) { String msg = "The \"" + element.getElementName() + "\" element is deprecated in \"" + id + "\"; use \"" + suggestion + "\" instead."; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ HelpPlugin.logWarning(msg); String[] attributes = requiredAttributes.get(element.getElementName()); if (attributes != null) { for (int i=0;i<attributes.length;++i) { if (element.getAttribute(attributes[i]) == null) { String msg = "Required attribute \"" + attributes[i] + "\" missing from \"" + element.getElementName() + "\" element"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ if (id != null) { msg += " in \"" + id + '"'; //$NON-NLS-1$ UAElement parent = element.getParentElement(); if (parent != null && !(parent instanceof ITocContribution)) { msg += " (skipping element)"; //$NON-NLS-1$ parent.removeChild(element); HelpPlugin.logError(msg); return HANDLED_SKIP;
@Override public short handle(UAElement element, String id) { if (id != null && ELEMENT_PARAM.equals(element.getElementName())) { String name = element.getAttribute(ATTRIBUTE_NAME); if (NAME_PATH.equals(name)) { String value = element.getAttribute(ATTRIBUTE_VALUE); if (value != null) { int index = id.lastIndexOf('/'); element.setAttribute(ATTRIBUTE_VALUE, id.substring(0, index + 1) + value); } } return HANDLED_CONTINUE; } return UNHANDLED; } }
private boolean sortAndPrune(UAElement element, IndexComparator comparator) { // sort children IUAElement[] children = element.getChildren(); if (children.length > 1) { for (int i=0;i<children.length;++i) { element.removeChild((UAElement)children[i]); } Arrays.sort(children, comparator); for (int i=0;i<children.length;++i) { element.appendChild((UAElement)children[i]); } } // sort children's children boolean hasChildren = false; for (int i=0;i<children.length;++i) { hasChildren = hasChildren | sortAndPrune((UAElement)children[i], comparator); } if (element instanceof IIndexEntry && !hasChildren) { element.getParentElement().removeChild(element); return false; } if (element instanceof IndexSee && !isValidSeeReference((IndexSee) element)) { element.getParentElement().removeChild(element); return false; } return true; }
private void copyFilters(IUAElement src) { UAElement sourceElement = (UAElement)src; String filter = sourceElement.getAttribute(ATTRIBUTE_FILTER); if (filter != null && filter.length() > 0) { this.setAttribute(ATTRIBUTE_FILTER, filter); } filters = sourceElement.getFilterElements(); this.enablementExpression = sourceElement.enablementExpression; this.src = sourceElement.src; }
private void sort(UAElement element, ITopic[] children) { // sort children if (children.length > 1) { for (int i=0;i<children.length;++i) { element.removeChild((UAElement)children[i]); } Arrays.sort(children, comparator); for (int i=0;i<children.length;++i) { element.appendChild((UAElement)children[i]); } } } }
@Override public short handle(UAElement element, String id) { if (UAContentFilter.isFiltered(element, context)) { UAElement parent = element.getParentElement(); if (parent != null) { parent.removeChild(element); } return HANDLED_SKIP; } return UNHANDLED; } }
private short handleExtension(UAElement uaElement, String path, int type) { String id = uaElement.getAttribute(ATTRIBUTE_ID); if (id != null && id.length() > 0) { if (resolver == null) { Element domElement = uaElement.getElement(); UAElement parent = uaElement.getParentElement(); for (int i=0;i<nodes.length;++i) { if (nodes[i].getNodeType() == Node.ELEMENT_NODE) { parent.insertBefore(UAElementFactory.newElement((Element)nodes[i]), uaElement); parent.getElement().insertBefore(node, domElement); parent.removeChild(uaElement); return HANDLED_SKIP; uaElement.getParentElement().removeChild(uaElement); return HANDLED_SKIP;
@Override public boolean isEnabled(IEvaluationContext context) { if (!ProductPreferences.useEnablementFilters()) { return true; } if (src != null) { return src.isEnabled(context); } String filter = getAttribute(ATTRIBUTE_FILTER); if (filter != null) { return isEnabledByFilterAttribute(filter); } Filter[] filterElements = getFilterElements(); for (int i = 0; i < filterElements.length; i++) { if (!isFilterEnabled(filterElements[i])) { return false; } } if (enablementExpression != null) { try { return enablementExpression.evaluate(context) == EvaluationResult.TRUE; } catch (CoreException e) { return false; } } return true; }
IUAElement[] childrenA = a.getChildren(); for(int i = 0; i < childrenA.length; ++i){ UAElement childA = (UAElement)childrenA[i]; if(childA instanceof CriterionDefinition) { String id = childA.getAttribute(CriterionDefinition.ATTRIBUTE_ID); if(null != id && id.trim().length() > 0) { criterionById.put(childA.getAttribute(CriterionDefinition.ATTRIBUTE_ID), childA); String valueId = childA.getAttribute(CriterionValueDefinition.ATTRIBUTE_ID); String valueName = childA.getAttribute(CriterionValueDefinition.ATTRIBUTE_NAME); if(null != valueId && valueId.trim().length() > 0 && null != valueName && valueName.trim().length() > 0){ criterionValueIds.add(childA.getAttribute(CriterionValueDefinition.ATTRIBUTE_ID)); IUAElement[] childrenB = b.getChildren(); for(int i = 0; i < childrenB.length; ++i){ UAElement childB = (UAElement) childrenB[i]; if(childB instanceof CriterionDefinition) { String idB = childB.getAttribute(CriterionDefinition.ATTRIBUTE_ID); if(null != idB && idB.trim().length() > 0){ if (criterionById.containsKey(idB)) { a.appendChild(childB); criterionById.put(idB, childB); String valueIdB = childB.getAttribute(CriterionValueDefinition.ATTRIBUTE_ID); String valueNameB = childB.getAttribute(CriterionValueDefinition.ATTRIBUTE_NAME); if(null != valueIdB && valueIdB.trim().length() > 0 && null != valueNameB && valueNameB.trim().length() > 0){ if (!criterionValueIds.contains(valueIdB)) {
private void resolveInclude(String bundleId, String relativePath, String elementId, UAElement element, String locale) { if (resolver == null) { resolver = new IncludeResolver(getProcessor(), reader, locale); } UAElement parent = element.getParentElement(); if (parent != null) { try { UAElement nodeToInclude = resolver.resolve(bundleId, relativePath, elementId); parent.insertBefore(nodeToInclude, element); parent.removeChild(element); } catch (Throwable t) { // remove invalid includes parent.removeChild(element); } } }
private UAElement findElement(UAElement element, String elementId) { String id = element.getAttribute(ATTRIBUTE_ID); if (id != null && id.equals(elementId)) { return element; } IUAElement[] children = element.getChildren(); for (int i=0;i<children.length;++i) { UAElement result = findElement((UAElement)children[i], elementId); if (result != null) { return result; } } return null; } }
public Object getParent(Object element) { if (element instanceof IToc) { return AllTopicsPart.this; } else if (element instanceof UAElement) { return ((UAElement)element).getParentElement(); } return null; }
Context context = (Context)element; IUAElement[] children = context.getChildren(); if (children.length > 0 && Context.ELEMENT_DESCRIPTION.equals(((UAElement)children[0]).getElementName())) { StringBuilder buf = new StringBuilder(); Element description = ((UAElement)children[0]).getElement(); Node node = description.getFirstChild(); while (node != null) {
if ("contexts".equals(root.getElementName())) { //$NON-NLS-1$ IUAElement[] children = root.getChildren(); Map<String, Context> contexts = new HashMap<>(); for (int i=0;i<children.length;++i) {
@Override public short handle(UAElement element, String path) { if (element instanceof Anchor) { return handleExtension(element, path, IContentExtension.CONTRIBUTION); } if (element.getAttribute(ATTRIBUTE_ID) != null) { return handleExtension(element, path, IContentExtension.REPLACEMENT); } return UNHANDLED; }
public void insertBefore(UAElement newChild, UAElement refChild) { importElement(newChild); element.insertBefore(newChild.element, refChild.element); newChild.parent = this; getChildren(); if (children != null) { int index = children.indexOf(refChild); if (index < 0) { // cache is now invalid children = null; } else { children.add(index, newChild); } } }
@Override public boolean isSeeAlso() { UAElement parentElement = getParentElement(); return ! (parentElement.getChildren()[0] instanceof IIndexSee); }
public String writeString(UAElement element, boolean xmlDecl) throws TransformerException, TransformerConfigurationException { return writeString(element.getElement(), xmlDecl); }
public static UAElement newElement(Element element) { String name = element.getNodeName(); Class<?> clazz = classByElementName.get(name); if (clazz != null) { try { Constructor<?> constructor = clazz.getConstructor(Element.class); return (UAElement) constructor.newInstance(element); } catch (Exception e) { String msg = "Error creating document model element"; //$NON-NLS-1$ HelpPlugin.logError(msg, e); } } return new UAElement(element); }
public UAElement(String name, IUAElement src) { this(name); if (src instanceof UAElement) { copyFilters(src); } else { this.src = src; } }