/* * Currently not used anymore.... */ package at.bestsolution.efxclipse.runtime.workbench.renderers; import javax.annotation.PostConstruct; import javax.inject.Inject; import javafx.scene.layout.BorderPane; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.core.services.contributions.IContributionFactory; import org.eclipse.e4.core.services.events.IEventBroker; import org.eclipse.e4.ui.model.application.ui.MUIElement; import org.eclipse.e4.ui.model.application.ui.basic.MPart; @SuppressWarnings("restriction") public class PartRenderer extends JFXRenderer { private org.osgi.service.event.EventHandler focusPartHandler = new org.osgi.service.event.EventHandler() { @Override public void handleEvent(org.osgi.service.event.Event event) { Object element = event.getProperty(IEventBroker.DATA); if( !(element instanceof MPart) ) { return; } activate((MPart) element); } }; @Inject IEventBroker eventBroker; @PostConstruct void init() { eventBroker.subscribe(FX_FOCUS_TOPIC, focusPartHandler); } @Override public Object createWidget(final MUIElement element, Object parent) { BorderPane pane = new BorderPane(); pane.getStyleClass().add("MPart"); final MPart part = (MPart) element; // Create a context for this part IEclipseContext localContext = part.getContext(); localContext.set(BorderPane.class, pane); IContributionFactory contributionFactory = (IContributionFactory) localContext.get(IContributionFactory.class .getName()); Object newPart = contributionFactory.create(part.getContributionURI(), localContext); part.setObject(newPart); return pane; } }