diff --git a/domino-ui/src/main/java/org/dominokit/domino/ui/cards/Card.java b/domino-ui/src/main/java/org/dominokit/domino/ui/cards/Card.java index c344ef989..065ec7827 100644 --- a/domino-ui/src/main/java/org/dominokit/domino/ui/cards/Card.java +++ b/domino-ui/src/main/java/org/dominokit/domino/ui/cards/Card.java @@ -519,12 +519,12 @@ public Card appendChild(PrefixAddOn prefix) { @Override public PostfixElement getPostfixElement() { - return PostfixElement.of(header.get().getMainHeader().element()); + return header.get().getPostfixElement(); } @Override public PrefixElement getPrefixElement() { - return PrefixElement.of(header.get().getMainHeader().element()); + return header.get().getPrefixElement(); } /** diff --git a/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeItem.java b/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeItem.java index 9c9277e1c..dc64fe7ad 100644 --- a/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeItem.java +++ b/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeItem.java @@ -199,8 +199,12 @@ public void setActiveNode(TreeItem activeItem, boolean silent) { this.activeNode.deactivate(); } this.activeNode = activeItem; - this.activeNode.activate(); - getParent().ifPresent(itemParent -> itemParent.setActiveNode(this, true)); + this.activeNode.doActivate(); + if (getParent().isPresent()) { + getParent().get().setActiveNode(this, true); + } else { + getRootNode().setActiveNode(this, true); + } if (!silent) { triggerSelectionListeners(activeItem, getSelection()); getRootNode().onActiveNodeChanged(activeItem, getSelection(), silent); diff --git a/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeNode.java b/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeNode.java index 0f06ed48d..e2ca966e4 100644 --- a/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeNode.java +++ b/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeNode.java @@ -88,21 +88,22 @@ public abstract class TreeNode, S> evt -> { if (ToggleTarget.ANY.equals(this.toggleTarget)) { evt.stopPropagation(); - if (isParent()) { - toggle(); - } - activateNode(); + onActivation(); } }; + private void onActivation() { + if (isParent()) { + toggle(); + } + activateNode(); + } + private final EventListener iconListener = evt -> { if (ToggleTarget.ICON.equals(this.toggleTarget)) { evt.stopPropagation(); - if (isParent()) { - toggle(); - } - activateNode(); + onActivation(); } }; @@ -433,19 +434,12 @@ public List getSubNodes() { return subNodes; } - /** - * Expands (shows and activates) this tree item. This method expands the item and activates it. - */ - public void expandAndActivate() { - this.show(true).activate(true); - } - /** * Activates (selects) this tree item without activating its parent items. This method returns * void. */ - public void activate() { - activate(false); + public void doActivate() { + doActivate(false); } /** @@ -454,7 +448,7 @@ public void activate() { * * @param activateParent True to activate parent items, false to activate only this item. */ - public void activate(boolean activateParent) { + protected void doActivate(boolean activateParent) { addCss(dui_active); if (activateParent) { getParent().ifPresent(parent -> parent.setActiveNode((N) this)); @@ -462,6 +456,22 @@ public void activate(boolean activateParent) { updateIcon(isCollapsed()); } + public N activate() { + this.show(true); + onActivation(); + return (N) this; + } + + /** + * @return same instance + * @deprecated use {@link #activate()} + */ + @Deprecated + public N select() { + activate(); + return (N) this; + } + /** * Returns the currently active (selected) tree item within the tree structure. * @@ -638,12 +648,13 @@ public N expandNode(boolean expandParent) { * @return This tree item with the node shown. */ public N show(boolean expandParent) { - if (isParent()) { - super.expand(); - } if (expandParent) { getParent().ifPresent(itemParent -> itemParent.expandNode(true)); } + + if (isParent()) { + super.expand(); + } return (N) this; } diff --git a/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeRoot.java b/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeRoot.java index 51c352d5f..964f0b11f 100644 --- a/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeRoot.java +++ b/domino-ui/src/main/java/org/dominokit/domino/ui/tree/TreeRoot.java @@ -264,7 +264,7 @@ public void setActiveNode(N node, boolean silent) { } this.activeNode = node; - this.activeNode.activate(); + this.activeNode.doActivate(); if (!silent) { triggerSelectionListeners(node, getSelection()); this.activeNode.triggerSelectionListeners(node, getSelection());