Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClaudio Guglielmo2021-06-07 14:38:49 +0000
committerClaudio Guglielmo2021-06-07 14:38:49 +0000
commitc475ff14b9f40cb8b4ac0b3b4703bd8bebe23b68 (patch)
tree8085f93bd83b7de671e04bfff7bfac8449566741
parent57a9c6235be25183d320246173bd816c81b02d99 (diff)
downloadorg.eclipse.scout.rt-features/cgu/poc_lazy_outline.tar.gz
org.eclipse.scout.rt-features/cgu/poc_lazy_outline.tar.xz
org.eclipse.scout.rt-features/cgu/poc_lazy_outline.zip
-rw-r--r--org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/basic/tree/AbstractTree.java4
-rw-r--r--org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/AbstractDesktop.java5
-rw-r--r--org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/outline/AbstractOutline.java20
-rw-r--r--org.eclipse.scout.rt.ui.html/src/main/java/org/eclipse/scout/rt/ui/html/json/tree/JsonTree.java3
4 files changed, 25 insertions, 7 deletions
diff --git a/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/basic/tree/AbstractTree.java b/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/basic/tree/AbstractTree.java
index 122eb3822a..e33f60fa5b 100644
--- a/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/basic/tree/AbstractTree.java
+++ b/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/basic/tree/AbstractTree.java
@@ -707,7 +707,7 @@ public abstract class AbstractTree extends AbstractWidget implements ITree, ICon
* Runtime
*/
@Override
- protected final void initInternal() {
+ protected void initInternal() {
super.initInternal();
initTreeInternal();
interceptInitTree();
@@ -1097,7 +1097,7 @@ public abstract class AbstractTree extends AbstractWidget implements ITree, ICon
if (m_rootNode != null) {
m_rootNode.setTreeInternal(null, true);
// inform root of remove
- root.nodeRemovedNotify();
+ m_rootNode.nodeRemovedNotify();
}
m_rootNode = root;
if (m_rootNode != null) {
diff --git a/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/AbstractDesktop.java b/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/AbstractDesktop.java
index e0ca703d37..f035d00333 100644
--- a/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/AbstractDesktop.java
+++ b/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/AbstractDesktop.java
@@ -1208,7 +1208,10 @@ public abstract class AbstractDesktop extends AbstractWidget implements IDesktop
BEANS.get(ExceptionHandler.class).handle(e);
}
}
- m_outline.setNodeExpanded(m_outline.getRootNode(), true);
+ if (m_outline.getRootNode() != null) {
+ // XXX CGU Wieso macht man das hier und nicht in activate?
+ m_outline.setNodeExpanded(m_outline.getRootNode(), true);
+ }
setPageDetailForm(m_outline.getDetailForm());
setPageDetailTable(m_outline.getDetailTable());
setPageSearchForm(m_outline.getSearchForm(), true);
diff --git a/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/outline/AbstractOutline.java b/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/outline/AbstractOutline.java
index 23d9384415..7878cab91b 100644
--- a/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/outline/AbstractOutline.java
+++ b/org.eclipse.scout.rt.client/src/main/java/org/eclipse/scout/rt/client/ui/desktop/outline/AbstractOutline.java
@@ -112,6 +112,14 @@ public abstract class AbstractOutline extends AbstractTree implements IOutline {
}
@Override
+ protected void initInternal() {
+ if (getRootNode() == null) {
+ return;
+ }
+ super.initInternal();
+ }
+
+ @Override
public ClientRunContext createDisplayParentRunContext() {
return ClientRunContexts
.copyCurrent()
@@ -301,14 +309,11 @@ public abstract class AbstractOutline extends AbstractTree implements IOutline {
TreeEvent.TYPE_NODES_CHECKED);
addNodeFilter(new P_TableFilterBasedTreeNodeFilter());
super.initConfig();
- IPage<?> rootPage = interceptCreateRootPage();
- setRootNode(rootPage);
+ setRootNode(null);
setVisible(getConfiguredVisible());
setOrder(calculateViewOrder());
setNavigateButtonsVisible(getConfiguredNavigateButtonsVisible());
setOutlineOverviewVisible(getConfiguredOutlineOverviewVisible());
- ensureDefaultDetailFormCreated();
- ensureDefaultDetailFormStarted();
}
@Override
@@ -814,6 +819,13 @@ public abstract class AbstractOutline extends AbstractTree implements IOutline {
@Override
public void activate() {
+ if (getRootNode() == null) {
+ IPage<?> rootPage = interceptCreateRootPage();
+ setRootNode(rootPage);
+ ensureDefaultDetailFormCreated();
+ ensureDefaultDetailFormStarted();
+ initInternal();
+ }
interceptActivated();
}
diff --git a/org.eclipse.scout.rt.ui.html/src/main/java/org/eclipse/scout/rt/ui/html/json/tree/JsonTree.java b/org.eclipse.scout.rt.ui.html/src/main/java/org/eclipse/scout/rt/ui/html/json/tree/JsonTree.java
index 21c245cca8..6a15ca2ba2 100644
--- a/org.eclipse.scout.rt.ui.html/src/main/java/org/eclipse/scout/rt/ui/html/json/tree/JsonTree.java
+++ b/org.eclipse.scout.rt.ui.html/src/main/java/org/eclipse/scout/rt/ui/html/json/tree/JsonTree.java
@@ -894,6 +894,9 @@ public class JsonTree<TREE extends ITree> extends AbstractJsonWidget<TREE> imple
protected List<ITreeNode> getTopLevelNodes() {
ITreeNode rootNode = getModel().getRootNode();
+ if (rootNode == null) {
+ return new ArrayList<>();
+ }
if (getModel().isRootNodeVisible()) {
return CollectionUtility.arrayList(rootNode);
}

Back to the top