package com.vogella.e4.selectionservice.handlers;
import java.util.List;
import org.eclipse.e4.core.di.annotations.Execute;
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;
public class SwitchPerspectiveHandler {
@Execute
public void execute(MWindow window, EPartService partService,
EModelService modelService) {
// assumes you have only two perspectives
List<MPerspective> perspectives = modelService.findElements(window,
null, MPerspective.class, null);
if (perspectives.size() != 2) {
System.out.println("works only for exactly two perspectives");
}
MPerspective activePerspective = modelService
.getActivePerspective(window);
if (activePerspective.equals(perspectives.get(0))) {
partService.switchPerspective(perspectives.get(1));
} else {
partService.switchPerspective(perspectives.get(0));
}
}
}