Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Vogel2014-08-21 15:50:39 +0000
committerLars Vogel2014-08-22 08:30:23 +0000
commit8b1838d738f22dc4cf70c0e6173314f4249839f6 (patch)
tree60addd1cb13ee877c8a39741aae2ab530dd10a50
parent9b4722b71f6463402aa8d0cd490370682952288a (diff)
downloadeclipse.platform.ui-8b1838d738f22dc4cf70c0e6173314f4249839f6.tar.gz
eclipse.platform.ui-8b1838d738f22dc4cf70c0e6173314f4249839f6.tar.xz
eclipse.platform.ui-8b1838d738f22dc4cf70c0e6173314f4249839f6.zip
Bug 441120 - Update EventBroker usage in SashRenderer
Change-Id: Ia99bfe64dffe07cfb4ae340cdd5b5c0cbae1ef67 Signed-off-by: Lars Vogel <Lars.Vogel@gmail.com>
-rw-r--r--bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java78
1 files changed, 29 insertions, 49 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
index ee9ca4a1181..cc027ef85af 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
@@ -7,14 +7,13 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
- * Lars Vogel <Lars.Vogel@gmail.com> - Bug 441150
+ * Lars Vogel <Lars.Vogel@gmail.com> - Bug 441150, 441120
*******************************************************************************/
package org.eclipse.e4.ui.workbench.renderers.swt;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
import javax.inject.Inject;
-import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.e4.ui.model.application.ui.MElementContainer;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainer;
@@ -27,7 +26,6 @@ import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Layout;
import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
/**
* Default SWT renderer responsible for a MPartSashContainer. See
@@ -35,50 +33,38 @@ import org.osgi.service.event.EventHandler;
*/
public class SashRenderer extends SWTPartRenderer {
- @Inject
- private IEventBroker eventBroker;
-
private static final int UNDEFINED_WEIGHT = -1;
private static final int DEFAULT_WEIGHT = 5000;
- private EventHandler sashOrientationHandler;
- private EventHandler sashWeightHandler;
private int processedContent = 0;
- @PostConstruct
- void postConstruct() {
- sashOrientationHandler = new EventHandler() {
- @Override
- public void handleEvent(Event event) {
- // Ensure that this event is for a MPartSashContainer
- MUIElement element = (MUIElement) event
- .getProperty(UIEvents.EventTags.ELEMENT);
- if (element.getRenderer() != SashRenderer.this) {
- return;
- }
- forceLayout((MElementContainer<MUIElement>) element);
- }
- };
-
- eventBroker.subscribe(UIEvents.GenericTile.TOPIC_HORIZONTAL,
- sashOrientationHandler);
-
- sashWeightHandler = new EventHandler() {
- @Override
- public void handleEvent(Event event) {
- // Ensure that this event is for a MPartSashContainer
- MUIElement element = (MUIElement) event
- .getProperty(UIEvents.EventTags.ELEMENT);
- MElementContainer<MUIElement> parent = element.getParent();
- if (parent.getRenderer() != SashRenderer.this)
- return;
-
- forceLayout(parent);
- }
- };
- eventBroker.subscribe(UIEvents.UIElement.TOPIC_CONTAINERDATA,
- sashWeightHandler);
+ @SuppressWarnings("unchecked")
+ @Inject
+ @Optional
+ private void subscribeTopicOrientationChanged(
+ @UIEventTopic(UIEvents.GenericTile.TOPIC_HORIZONTAL) Event event) {
+ // Ensure that this event is for a MPartSashContainer
+ MUIElement element = (MUIElement) event
+ .getProperty(UIEvents.EventTags.ELEMENT);
+ if (element.getRenderer() != SashRenderer.this) {
+ return;
+ }
+ forceLayout((MElementContainer<MUIElement>) element);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Inject
+ @Optional
+ private void subscribeTopicSashWeightChanged(
+ @UIEventTopic(UIEvents.UIElement.TOPIC_CONTAINERDATA) Event event) {
+ // Ensure that this event is for a MPartSashContainer
+ MUIElement element = (MUIElement) event
+ .getProperty(UIEvents.EventTags.ELEMENT);
+ if (element.getRenderer() != SashRenderer.this) {
+ return;
+ }
+ forceLayout((MElementContainer<MUIElement>) element);
}
/**
@@ -102,12 +88,6 @@ public class SashRenderer extends SWTPartRenderer {
s.layout(true, true);
}
- @PreDestroy
- void preDestroy() {
- eventBroker.unsubscribe(sashOrientationHandler);
- eventBroker.unsubscribe(sashWeightHandler);
- }
-
@Override
public Object createWidget(final MUIElement element, Object parent) {
MUIElement elementParent = element.getParent();

Back to the top