package name.abuchen.portfolio.ui.addons; import javax.inject.Inject; import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.ui.di.UIEventTopic; import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow; import org.eclipse.e4.ui.model.application.ui.menu.MMenu; import org.eclipse.e4.ui.workbench.UIEvents; import org.eclipse.e4.ui.workbench.UIEvents.EventTags; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; import org.osgi.service.event.Event; public class CopyMenuToNewWindowAddon { @Inject @Optional public void onEvent(@UIEventTopic(UIEvents.Window.TOPIC_ALL) Event event) { if (UIEvents.isADD(event)) { MTrimmedWindow origin = (MTrimmedWindow) event.getProperty(EventTags.ELEMENT); MTrimmedWindow window = (MTrimmedWindow) event.getProperty(EventTags.NEW_VALUE); MMenu mainMenu = (MMenu) EcoreUtil.copy((EObject) origin.getMainMenu()); mainMenu.setVisible(true); window.setMainMenu(mainMenu); } } }