package com.example.e4.rcp.todo.handlers;
import java.util.List;
import javax.inject.Named;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
// switcher perspectives based on a command parameter
public class PerspectiveSwitchHandler {
@Execute
public void switchPerspective(
MWindow window,
EPartService partService,
EModelService modelService,
@Named("perspective_parameter") String perspectiveId) {
// use parameter to find perspectives
List<MPerspective> perspectives = modelService.findElements(window,
perspectiveId, MPerspective.class, null);
// switch to perspective with the ID if found
if (!perspectives.isEmpty()) {
partService.switchPerspective(perspectives.get(0));
}
}
}