public Object getParent(Object element) { if (element instanceof IToc) { return AllTopicsPart.this; } else if (element instanceof UAElement) { return ((UAElement)element).getParentElement(); } return null; }
@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; } }
boolean isValidSeeReference(IndexSee see) { UAElement ancestor = see.getParentElement(); while (!(ancestor instanceof Index)) { if (ancestor == null) { return true; } ancestor = ancestor.getParentElement(); } return ((Index)ancestor).getSeeTarget(see) != null; }
public synchronized int[] getTopicPath(String href, String locale) { ITopic topic = getTopic(href, locale); try { if (topic != null && topic instanceof UAElement) { List<Integer> path = new ArrayList<>(); UAElement element = (UAElement) topic; while (!(element instanceof Toc)) { UAElement parent = element.getParentElement(); path.add(Integer.valueOf(indexOf(parent, (Topic)element))); element = parent; } Toc[] tocs = getTocs(locale); for (int i=0;i<tocs.length;++i) { if (tocs[i] == element) { path.add(Integer.valueOf(i)); int[] array = new int[path.size()]; for (int j=0;j<array.length;++j) { array[j] = path.get(array.length - 1 - j).intValue(); } return array; } } } } catch (Exception e) { return null; } // no path; not in toc return null; }
if (nodes != null && nodes.length > 0) { Element domElement = uaElement.getElement(); UAElement parent = uaElement.getParentElement(); for (int i=0;i<nodes.length;++i) { if (nodes[i].getNodeType() == Node.ELEMENT_NODE) { uaElement.getParentElement().removeChild(uaElement); return HANDLED_SKIP;
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; }
@Override public short handle(UAElement element, String id) { if (element instanceof Include) { String path = ((Include)element).getPath(); if (path != null && path.length() > 0) { String bundleId = getBundleId(path); String relativePath = getRelativePath(path); String elementId = getElementId(path); if (bundleId != null && relativePath != null && elementId != null) { resolveInclude(bundleId, relativePath, elementId, element, locale); } } else { // remove invalid includes element.getParentElement().removeChild(element); } return HANDLED_SKIP; } return UNHANDLED; }
msg += " in \"" + id + '"'; //$NON-NLS-1$ UAElement parent = element.getParentElement(); if (parent != null && !(parent instanceof ITocContribution)) { msg += " (skipping element)"; //$NON-NLS-1$
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); } } }