/** * Inserts the specified element into the parent element if not already present. If parent already * contains child, this method does nothing. */ public static void lazyInsertAfter(Element parent, Element newElement, Element after) { if (!parent.contains(newElement)) { parent.insertBefore(newElement, after.nextSibling); } }
/** * Inserts the specified element into the parent element if not already present. If parent already contains child, * this method does nothing. */ public static void lazyInsertBefore(Element parent, Element child, Element before) { if (!parent.contains(child)) { parent.insertBefore(child, before); } }
@Override public void addItem(final DecisionNavigatorItem item, final DecisionNavigatorItem nextItem) { final String uuid = item.getParentUUID(); final Element parentElement = findTreeItemElement(uuid); final Element parentChildrenElement = findTreeItemChildrenElement(uuid); final Element newChild = makeTreeItemElement(item); final Element refChild = findItem(nextItem); parentElement.classList.add("parent-node"); parentChildrenElement.insertBefore(newChild, refChild); }
@Override public void update(final DecisionNavigatorItem item, final DecisionNavigatorItem nextItem) { final Element parentElement = findTreeItemChildrenElement(item.getParentUUID()); final Element oldChild = findItem(item); final Element newChild = makeTreeItemElement(item); final Element refChild = findItem(nextItem); if (oldChild != null) { parentElement.removeChild(oldChild); } parentElement.insertBefore(newChild, refChild); }