Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2015-02-23 18:48:57 +0000
committerTom Schindl2015-02-23 18:48:57 +0000
commitcc9a6cd3513e2b5c36c9b3d7374dceb5136187cb (patch)
tree2eb0576bce964e35eb5fbea60fbda95cd702eeb6
parent0ec845f9ef3e4165f456257d399596fa3a0a3f65 (diff)
downloadorg.eclipse.efxclipse-cc9a6cd3513e2b5c36c9b3d7374dceb5136187cb.tar.gz
org.eclipse.efxclipse-cc9a6cd3513e2b5c36c9b3d7374dceb5136187cb.tar.xz
org.eclipse.efxclipse-cc9a6cd3513e2b5c36c9b3d7374dceb5136187cb.zip
[Bug 460620] MUIElement#isVisible() should not be used to check for
visibility of a child node
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseAreaRenderer.java6
-rw-r--r--bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseCompositePartRenderer.java8
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuBarRenderer.java4
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuRenderer.java8
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartMenuRenderer.java13
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java2
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveRenderer.java4
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveStackRenderer.java22
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePopupMenuRenderer.java21
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java9
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseSashRenderer.java8
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseStackRenderer.java8
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseToolBarRenderer.java8
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseTrimBarRenderer.java10
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java14
15 files changed, 86 insertions, 59 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseAreaRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseAreaRenderer.java
index 8eddeccb0..96e2cda4b 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseAreaRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseAreaRenderer.java
@@ -130,7 +130,7 @@ public abstract class BaseAreaRenderer<N> extends BaseRenderer<MArea, WArea<N>>
@SuppressWarnings("null")
@Override
public void childRendered(MArea parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement) || ! isChildRenderedAndVisible(element)) {
return;
}
@@ -167,7 +167,7 @@ public abstract class BaseAreaRenderer<N> extends BaseRenderer<MArea, WArea<N>>
MUIElement element;
while (i.hasNext()) {
element = i.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered()) {
if (element.getWidget() == null) {
engineCreateWidget(element);
} else {
@@ -183,7 +183,7 @@ public abstract class BaseAreaRenderer<N> extends BaseRenderer<MArea, WArea<N>>
MUIElement element;
while (i.hasNext()) {
element = i.next();
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(parent, element);
}
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseCompositePartRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseCompositePartRenderer.java
index 2ae39af9d..8f6271357 100644
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseCompositePartRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseCompositePartRenderer.java
@@ -147,7 +147,7 @@ public abstract class BaseCompositePartRenderer<N> extends BaseRenderer<MComposi
for (MPartSashContainerElement e : element.getChildren()) {
if (e.isToBeRendered()) {
WLayoutedWidget<MPartSashContainerElement> widget = engineCreateWidget(e);
- if (widget != null && isChildAndRenderedVisible(e)) {
+ if (widget != null && isChildRenderedAndVisible(e)) {
list.add(widget);
}
}
@@ -183,7 +183,7 @@ public abstract class BaseCompositePartRenderer<N> extends BaseRenderer<MComposi
@SuppressWarnings("null")
@Override
public void childRendered(MCompositePart parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement) || ! isChildRenderedAndVisible(element)) {
return;
}
@@ -224,7 +224,7 @@ public abstract class BaseCompositePartRenderer<N> extends BaseRenderer<MComposi
while (iterator.hasNext()) {
MUIElement element = iterator.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered()) {
if (element.getWidget() == null) {
engineCreateWidget(element);
} else {
@@ -239,7 +239,7 @@ public abstract class BaseCompositePartRenderer<N> extends BaseRenderer<MComposi
Iterator<MPartSashContainerElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MPartSashContainerElement element = iterator.next();
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(parent, element);
}
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuBarRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuBarRenderer.java
index 2bf8edd42..f71574f3f 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuBarRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuBarRenderer.java
@@ -49,7 +49,7 @@ public abstract class BaseMenuBarRenderer<N> extends BaseRenderer<MMenu, WMenuBa
for (MMenuElement e : element.getChildren()) {
if (e.isToBeRendered()) {
Object widget = engineCreateWidget(e);
- if (widget instanceof WMenu && isChildAndRenderedVisible(e)) {
+ if (widget instanceof WMenu && isChildRenderedAndVisible(e)) {
menuBar.addElement((WMenu<MMenuElement>) widget);
}
}
@@ -59,7 +59,7 @@ public abstract class BaseMenuBarRenderer<N> extends BaseRenderer<MMenu, WMenuBa
@SuppressWarnings("unchecked")
@Override
public void childRendered(MMenu parentElement, MUIElement element) {
- if (inContentProcessing(parentElement) || ! isChildAndRenderedVisible(element)) {
+ if (inContentProcessing(parentElement) || ! isChildRenderedAndVisible(element)) {
return;
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuRenderer.java
index c4031597a..11b4bdf6e 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseMenuRenderer.java
@@ -196,7 +196,7 @@ public abstract class BaseMenuRenderer<N> extends BaseItemContainerRenderer<MMen
for (MMenuElement e : element.getChildren()) {
if (e.isToBeRendered()) {
WMenuElement<MMenuElement> widget = engineCreateWidget(e);
- if (widget != null && isChildAndRenderedVisible(e)) {
+ if (widget != null && isChildRenderedAndVisible(e)) {
menu.addElement(widget);
}
}
@@ -238,7 +238,7 @@ public abstract class BaseMenuRenderer<N> extends BaseItemContainerRenderer<MMen
@Override
public void do_childRendered(@NonNull MMenu parentElement, @NonNull MUIElement element) {
- if (inContentProcessing(parentElement) || ! isChildAndRenderedVisible(element)) {
+ if (inContentProcessing(parentElement) || ! isChildRenderedAndVisible(element)) {
return;
}
@@ -260,8 +260,8 @@ public abstract class BaseMenuRenderer<N> extends BaseItemContainerRenderer<MMen
}
@Override
- protected boolean isChildAndRenderedVisible(MUIElement u) {
- return super.isChildAndRenderedVisible(u) && !(u instanceof MDynamicMenuContribution);
+ public boolean isChildRenderedAndVisible(MUIElement u) {
+ return super.isChildRenderedAndVisible(u) && !(u instanceof MDynamicMenuContribution);
}
@Override
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartMenuRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartMenuRenderer.java
index 78b7bfa5a..df77b3e76 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartMenuRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartMenuRenderer.java
@@ -68,17 +68,20 @@ public abstract class BasePartMenuRenderer<N> extends BaseRenderer<MMenu, WMenu<
return;
}
for (MMenuElement e : element.getChildren()) {
- @SuppressWarnings("null")
+ if( e == null ) {
+ getLogger().error("Found a null menu element in " + element); //$NON-NLS-1$
+ continue;
+ }
WMenuElement<MMenuElement> widget = engineCreateWidget(e);
- if (widget != null && isChildAndRenderedVisible(e)) {
+ if (widget != null && isChildRenderedAndVisible(e)) {
menu.addElement(widget);
}
}
}
@Override
- protected boolean isChildAndRenderedVisible(MUIElement u) {
- return !(u instanceof MDynamicMenuContribution) && super.isChildAndRenderedVisible(u);
+ public boolean isChildRenderedAndVisible(MUIElement u) {
+ return !(u instanceof MDynamicMenuContribution) && super.isChildRenderedAndVisible(u);
}
@Override
@@ -109,7 +112,7 @@ public abstract class BasePartMenuRenderer<N> extends BaseRenderer<MMenu, WMenu<
@Override
public void childRendered(MMenu parentElement, MUIElement element) {
- if (inContentProcessing(parentElement) || ! isChildAndRenderedVisible(element)) {
+ if (inContentProcessing(parentElement) || ! isChildRenderedAndVisible(element)) {
return;
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java
index b36b1b342..90c8e0dd2 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java
@@ -257,7 +257,7 @@ public abstract class BasePartRenderer<N, T, M> extends BaseRenderer<MPart, WPar
@Override
public void childRendered(MPart parentElement, MUIElement element) {
- if (inContentProcessing(parentElement) || !isChildAndRenderedVisible(element)) {
+ if (inContentProcessing(parentElement) || !isChildRenderedAndVisible(element)) {
return;
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveRenderer.java
index 980faf595..42e7708d6 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveRenderer.java
@@ -102,7 +102,7 @@ public abstract class BasePerspectiveRenderer<N> extends BaseRenderer<MPerspecti
for (MPartSashContainerElement e : element.getChildren()) {
if (e.isToBeRendered()) {
WLayoutedWidget<MPartSashContainerElement> w = engineCreateWidget(e);
- if (w != null && isChildAndRenderedVisible(e)) {
+ if (w != null && isChildRenderedAndVisible(e)) {
list.add(w);
}
}
@@ -151,7 +151,7 @@ public abstract class BasePerspectiveRenderer<N> extends BaseRenderer<MPerspecti
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void childRendered(MPerspective parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement)|| ! isChildRenderedAndVisible(element)) {
return;
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveStackRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveStackRenderer.java
index bd76f3a6e..95d1c818d 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveStackRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePerspectiveStackRenderer.java
@@ -182,7 +182,7 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
for (MPerspective e : element.getChildren()) {
// Precreate the rendering context for the subitem
ElementRenderer<MPerspective, ?> renderer = this.factory.getRenderer(e);
- if (renderer != null && isChildAndRenderedVisible(e)) {
+ if (renderer != null && isChildRenderedAndVisible(e)) {
WStackItem<I, IC> item = createStackItem(stack, e, renderer);
items.add(item);
@@ -260,7 +260,7 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
while (i.hasNext()) {
MPerspective element = i.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered()) {
int idx = getRenderedIndex(parent, element);
ElementRenderer<MPerspective, ?> renderer = this.factory.getRenderer(element);
@@ -274,7 +274,7 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
Iterator<MPerspective> iterator = elements.iterator();
while (iterator.hasNext()) {
MPerspective element = iterator.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered()) {
hideChild(parent, element);
}
@@ -316,7 +316,7 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
@SuppressWarnings("null")
@Override
public void childRendered(MPerspectiveStack parentElement, MUIElement element) {
- if (this.inLazyInit || inContentProcessing(parentElement) || !element.isVisible()) {
+ if (this.inLazyInit || inContentProcessing(parentElement) || !isChildRenderedAndVisible(element)) {
return;
}
@@ -400,6 +400,7 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
}
}
+ @SuppressWarnings("null")
private void showElementRecursive(MUIElement pElement) {
MUIElement element = pElement;
if (!element.isToBeRendered()) {
@@ -434,8 +435,10 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
if (element instanceof MWindow && element.getWidget() != null) {
int visCount = 0;
for (MUIElement kid : ((MWindow) element).getChildren()) {
- if (kid.isToBeRendered() && kid.isVisible())
+ if (isWindowChildRendered(kid)) {
visCount++;
+ }
+
}
if (visCount > 0)
element.setVisible(true);
@@ -468,4 +471,13 @@ public abstract class BasePerspectiveStackRenderer<N, I, IC> extends BaseRendere
}
}
}
+
+ private boolean isWindowChildRendered(@NonNull MUIElement kid) {
+ ElementRenderer<?, ?> renderer = this.factory.getRenderer(kid);
+ if( renderer == null ) {
+ return false;
+ }
+
+ return renderer.isChildRenderedAndVisible(kid);
+ }
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePopupMenuRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePopupMenuRenderer.java
index 3a623b93d..c466e0892 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePopupMenuRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePopupMenuRenderer.java
@@ -189,7 +189,7 @@ public abstract class BasePopupMenuRenderer<N> extends BaseItemContainerRenderer
for (MMenuElement e : element.getChildren()) {
if (e.isToBeRendered()) {
WMenuElement<MMenuElement> widget = engineCreateWidget(e);
- if (widget != null && isChildAndRenderedVisible(e)) {
+ if (widget != null && isChildRenderedAndVisible(e)) {
menu.addElement(widget);
}
}
@@ -201,8 +201,11 @@ public abstract class BasePopupMenuRenderer<N> extends BaseItemContainerRenderer
Iterator<MMenuElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MMenuElement element = iterator.next();
-
- if (isChildAndRenderedVisible(element) && element.getWidget() != null) {
+ if( element == null ) {
+ getLogger().error("Found a null element in " + elements); //$NON-NLS-1$
+ continue;
+ }
+ if (isChildRenderedAndVisible(element) && element.getWidget() != null) {
hideChild(parent, element);
}
}
@@ -219,7 +222,11 @@ public abstract class BasePopupMenuRenderer<N> extends BaseItemContainerRenderer
// c.getContributionURI());
// continue;
// }
- if (isChildAndRenderedVisible(element)) {
+ if( element == null ) {
+ getLogger().error("Found a null element in " + elements); //$NON-NLS-1$
+ continue;
+ }
+ if (isChildRenderedAndVisible(element)) {
if (element.getWidget() == null) {
engineCreateWidget(element);
} else {
@@ -231,7 +238,7 @@ public abstract class BasePopupMenuRenderer<N> extends BaseItemContainerRenderer
@Override
public void do_childRendered(@NonNull MPopupMenu parentElement, @NonNull MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement)|| ! isChildRenderedAndVisible(element)) {
return;
}
@@ -253,8 +260,8 @@ public abstract class BasePopupMenuRenderer<N> extends BaseItemContainerRenderer
}
@Override
- protected boolean isChildAndRenderedVisible(MUIElement u) {
- return super.isChildAndRenderedVisible(u) && !(u instanceof MDynamicMenuContribution);
+ public boolean isChildRenderedAndVisible(MUIElement u) {
+ return super.isChildRenderedAndVisible(u) && !(u instanceof MDynamicMenuContribution);
}
@Override
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java
index 1ba715a50..13f04846d 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java
@@ -731,7 +731,11 @@ public abstract class BaseRenderer<M extends MUIElement, W extends WWidget<M>> i
List<MUIElement> list = (List<MUIElement>) container.eGet(eElement.eContainmentFeature());
int idx = 0;
for (MUIElement u : list) {
- if (isChildAndRenderedVisible(u)) {
+ if( u == null ) {
+ getLogger().error("Found a null element in " + list); //$NON-NLS-1$
+ continue;
+ }
+ if (isChildRenderedAndVisible(u)) {
if (u == element) {
return idx;
}
@@ -748,7 +752,8 @@ public abstract class BaseRenderer<M extends MUIElement, W extends WWidget<M>> i
* the element
* @return <code>true</code> if item is to be shown
*/
- protected boolean isChildAndRenderedVisible(MUIElement u) {
+ @Override
+ public boolean isChildRenderedAndVisible(@NonNull MUIElement u) {
return u.isToBeRendered() && u.isVisible() && getVisibleWhen(u, getModelContext(u));
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseSashRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseSashRenderer.java
index a302444f4..8d87c3ab3 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseSashRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseSashRenderer.java
@@ -141,7 +141,7 @@ public abstract class BaseSashRenderer<N> extends BaseRenderer<MPartSashContaine
for (MPartSashContainerElement e : element.getChildren()) {
if (e.isToBeRendered()) {
WLayoutedWidget<MPartSashContainerElement> widget = engineCreateWidget(e);
- if (widget != null && isChildAndRenderedVisible(e)) {
+ if (widget != null && isChildRenderedAndVisible(e)) {
list.add(widget);
}
}
@@ -153,7 +153,7 @@ public abstract class BaseSashRenderer<N> extends BaseRenderer<MPartSashContaine
@SuppressWarnings("null")
@Override
public void childRendered(MPartSashContainer parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement) || ! isChildRenderedAndVisible(element)) {
return;
}
@@ -194,7 +194,7 @@ public abstract class BaseSashRenderer<N> extends BaseRenderer<MPartSashContaine
while (iterator.hasNext()) {
MPartSashContainerElement element = (MPartSashContainerElement) iterator.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered()) {
if (element.getWidget() == null) {
engineCreateWidget(element);
} else {
@@ -209,7 +209,7 @@ public abstract class BaseSashRenderer<N> extends BaseRenderer<MPartSashContaine
Iterator<MPartSashContainerElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MPartSashContainerElement element = (MPartSashContainerElement) iterator.next();
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(parent, element);
}
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseStackRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseStackRenderer.java
index 403076ff3..e2b72f134 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseStackRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseStackRenderer.java
@@ -229,7 +229,7 @@ public abstract class BaseStackRenderer<N, I, IC> extends BaseRenderer<MPartStac
for (MStackElement e : element.getChildren()) {
// Precreate the rendering context for the subitem
ElementRenderer<MStackElement, ?> renderer = this.factory.getRenderer(e);
- if (renderer != null && isChildAndRenderedVisible(e)) {
+ if (renderer != null && isChildRenderedAndVisible(e)) {
WStackItem<I, IC> item = createStackItem(stack, e, renderer);
items.add(item);
@@ -313,7 +313,7 @@ public abstract class BaseStackRenderer<N, I, IC> extends BaseRenderer<MPartStac
Iterator<MStackElement> i = elements.iterator();
while (i.hasNext()) {
MStackElement element = (MStackElement) i.next();
- if (isChildAndRenderedVisible(element)) {
+ if (isChildRenderedAndVisible(element)) {
int idx = getRenderedIndex(parent, element);
ElementRenderer<MStackElement, ?> renderer = this.factory.getRenderer(element);
@@ -381,7 +381,7 @@ public abstract class BaseStackRenderer<N, I, IC> extends BaseRenderer<MPartStac
ArrayList<@NonNull WStackItem<I, IC>> resultList = new ArrayList<>();
for (WStackItem<I, IC> item : parentWidget.getItems()) {
MStackElement domElement = item.getDomElement();
- if (domElement != null && list.contains(domElement) && (domElement.isToBeRendered()) && (isChildAndRenderedVisible(domElement))) {
+ if (domElement != null && list.contains(domElement) && (domElement.isToBeRendered()) && (isChildRenderedAndVisible(domElement))) {
resultList.add(item);
}
}
@@ -462,7 +462,7 @@ public abstract class BaseStackRenderer<N, I, IC> extends BaseRenderer<MPartStac
@SuppressWarnings("null")
@Override
public void childRendered(MPartStack parentElement, MUIElement element) {
- if (element == null || this.inLazyInit || inContentProcessing(parentElement) || !isChildAndRenderedVisible(element)) {
+ if (element == null || this.inLazyInit || inContentProcessing(parentElement) || !isChildRenderedAndVisible(element)) {
return;
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseToolBarRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseToolBarRenderer.java
index 22e7149eb..1ddc706ee 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseToolBarRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseToolBarRenderer.java
@@ -62,7 +62,7 @@ public abstract class BaseToolBarRenderer<N> extends BaseItemContainerRenderer<M
for (MToolBarElement item : element.getChildren()) {
if (item.isToBeRendered()) {
WWidget<MToolBarElement> itemWidget = engineCreateWidget(item);
- if (itemWidget != null && isChildAndRenderedVisible(item)) {
+ if (itemWidget != null && isChildRenderedAndVisible(item)) {
toolbar.addChild(itemWidget);
}
}
@@ -71,7 +71,7 @@ public abstract class BaseToolBarRenderer<N> extends BaseItemContainerRenderer<M
@Override
public void do_childRendered(MToolBar parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement)|| ! isChildRenderedAndVisible(element)) {
return;
}
@@ -111,7 +111,7 @@ public abstract class BaseToolBarRenderer<N> extends BaseItemContainerRenderer<M
Iterator<MToolBarElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MToolBarElement element = iterator.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered() ) {
if (element.getWidget() == null) {
engineCreateWidget(element);
} else {
@@ -126,7 +126,7 @@ public abstract class BaseToolBarRenderer<N> extends BaseItemContainerRenderer<M
Iterator<MToolBarElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MToolBarElement element = iterator.next();
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(parent, element);
}
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseTrimBarRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseTrimBarRenderer.java
index 17317504f..e8a69fa0a 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseTrimBarRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseTrimBarRenderer.java
@@ -54,7 +54,7 @@ public abstract class BaseTrimBarRenderer<N> extends BaseRenderer<MTrimBar, WTri
for (MTrimElement e : element.getChildren()) {
if (e.isToBeRendered()) {
WLayoutedWidget<MTrimElement> trimElementWidget = engineCreateWidget(e);
- if (trimElementWidget != null && isChildAndRenderedVisible(e)) {
+ if (trimElementWidget != null && isChildRenderedAndVisible(e)) {
trimBar.addChild(trimElementWidget);
}
}
@@ -63,11 +63,11 @@ public abstract class BaseTrimBarRenderer<N> extends BaseRenderer<MTrimBar, WTri
@Override
public void childRendered(MTrimBar parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement)|| ! isChildRenderedAndVisible(element)) {
return;
}
- if (!element.isVisible() || !element.isToBeRendered()) {
+ if (!isChildRenderedAndVisible(element)) {
return;
}
@@ -110,7 +110,7 @@ public abstract class BaseTrimBarRenderer<N> extends BaseRenderer<MTrimBar, WTri
Iterator<MTrimElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MTrimElement element = iterator.next();
- if (element.isToBeRendered() && element.isVisible()) {
+ if (element.isToBeRendered()) {
if (element.getWidget() == null) {
engineCreateWidget(element);
} else {
@@ -125,7 +125,7 @@ public abstract class BaseTrimBarRenderer<N> extends BaseRenderer<MTrimBar, WTri
Iterator<MTrimElement> iterator = elements.iterator();
while (iterator.hasNext()) {
MTrimElement element = iterator.next();
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(parent, element);
}
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java
index 62539c052..5c5cca164 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java
@@ -193,7 +193,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
}
void handleWindowRemove(@NonNull MWindow parent, @NonNull MWindow element) {
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(parent, element);
}
}
@@ -208,7 +208,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
}
void handleChildRemove(@NonNull MWindow window, MWindowElement element) {
- if (element.isToBeRendered() && element.isVisible() && element.getWidget() != null) {
+ if (element.isToBeRendered() && element.getWidget() != null) {
hideChild(window, element);
}
}
@@ -308,7 +308,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
if (element instanceof MTrimmedWindow) {
for (MTrimBar tm : ((MTrimmedWindow) element).getTrimBars()) {
- if (tm.isToBeRendered() && isChildAndRenderedVisible(tm)) {
+ if (tm.isToBeRendered() && isChildRenderedAndVisible(tm)) {
WLayoutedWidget<MTrimBar> trimWidget = engineCreateWidget(tm);
if (trimWidget != null) {
trimWidget.addStyleClasses(tm.getSide().name());
@@ -334,7 +334,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
}
for (MWindowElement e : element.getChildren()) {
- if (isChildAndRenderedVisible(e)) {
+ if (isChildRenderedAndVisible(e)) {
WLayoutedWidget<MWindowElement> widget = engineCreateWidget(e);
if (widget != null) {
windowWidget.addChild(widget);
@@ -345,7 +345,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
}
for (MWindow w : element.getWindows()) {
- if (isChildAndRenderedVisible(w)) {
+ if (isChildRenderedAndVisible(w)) {
WWidget<MWindow> widget = engineCreateWidget(w);
if (widget != null) {
@SuppressWarnings("unchecked")
@@ -365,7 +365,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
super.postProcess(element);
// Only top level windows are shown explicitly
if (((EObject) element).eContainer() instanceof MApplication) {
- if (isChildAndRenderedVisible(element)) {
+ if (isChildRenderedAndVisible(element)) {
WWindow<N> window = getWidget(element);
if (window != null) {
window.show();
@@ -376,7 +376,7 @@ public abstract class BaseWindowRenderer<N> extends BaseRenderer<MWindow, WWindo
@Override
public void childRendered(MWindow parentElement, MUIElement element) {
- if (inContentProcessing(parentElement)) {
+ if (inContentProcessing(parentElement)|| ! isChildRenderedAndVisible(element)) {
return;
}

Back to the top