package org.erlide.tracing.core.perspectives;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
import org.eclipse.ui.console.IConsoleConstants;
import org.erlide.ui.ErlideUIConstants;
/**
* Perspective for tracing Erlang applications.
*
* @author Piotr Dorobisz
*
*/
public class ErlangTracingPerspective implements IPerspectiveFactory {
public static final String CONTROL_PANEL_VIEW_ID = "org.erlide.tracing.core.views.ControlPanelView";
public static final String TREE_VIEWER_VIEW_ID = "org.erlide.tracing.core.views.TreeViewerView";
public static final String BROWSER_VIEW_ID = "org.erlide.tracing.core.views.TraceBrowserView";
private static final String TOP_LEFT = "top left";
private static final String BOTTOM_LEFT = "bottom left";
private static final String CENTER_LEFT = "center left";
private static final String BOTTOM_CENTER = "bottom center";
private static final String RIGHT_CENTER = "right center";
private static final String RIGHT_BOTTOM = "right bottom";
@Override
public void createInitialLayout(final IPageLayout pageLayout) {
defineActions(pageLayout);
defineLayout(pageLayout);
}
private void defineActions(final IPageLayout pageLayout) {
pageLayout.addActionSet(IDebugUIConstants.LAUNCH_ACTION_SET);
pageLayout.addActionSet(IDebugUIConstants.DEBUG_ACTION_SET);
pageLayout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET);
}
private void defineLayout(final IPageLayout pageLayout) {
// top left
final IFolderLayout topLeft = pageLayout.createFolder(TOP_LEFT, IPageLayout.LEFT,
0.30f, pageLayout.getEditorArea());
topLeft.addView(ErlideUIConstants.NAVIGATOR_VIEW_ID);
// center left
final IFolderLayout centerLeft = pageLayout.createFolder(CENTER_LEFT,
IPageLayout.BOTTOM, 0.20f, TOP_LEFT);
centerLeft.addView(BROWSER_VIEW_ID);
// bottom left
final IFolderLayout bottomLeft = pageLayout.createFolder(BOTTOM_LEFT,
IPageLayout.BOTTOM, 0.30f, CENTER_LEFT);
bottomLeft.addView(TREE_VIEWER_VIEW_ID);
// bottom center
final IFolderLayout bottomCenter = pageLayout.createFolder(BOTTOM_CENTER,
IPageLayout.BOTTOM, 0.60f, pageLayout.getEditorArea());
bottomCenter.addView(IPageLayout.ID_PROBLEM_VIEW);
bottomCenter.addView(CONTROL_PANEL_VIEW_ID);
// right center
final IFolderLayout rightCenter = pageLayout.createFolder(RIGHT_CENTER,
IPageLayout.RIGHT, 0.75f, pageLayout.getEditorArea());
rightCenter.addView(IPageLayout.ID_OUTLINE);
// right bottom
final IFolderLayout rightBottom = pageLayout.createFolder(RIGHT_BOTTOM,
IPageLayout.RIGHT, 0.70f, BOTTOM_CENTER);
rightBottom.addView(IConsoleConstants.ID_CONSOLE_VIEW);
}
}