/*******************************************************************************
* Copyright (c) 2006-2012
* Software Technology Group, Dresden University of Technology
* DevBoost GmbH, Berlin, Amtsgericht Charlottenburg, HRB 140026
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Software Technology Group - TU Dresden, Germany;
* DevBoost GmbH - Berlin, Germany
* - initial API and implementation
******************************************************************************/
package org.reuseware.coconut.description.browse.views;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
import org.reuseware.coconut.description.browse.MainBrowserManager;
import org.reuseware.coconut.description.browse.views.additionalfacets.AdditionalFacetsView;
import org.reuseware.coconut.description.browse.views.content.ContentView;
import org.reuseware.coconut.description.browse.views.groupsort.GroupSortView;
import org.reuseware.coconut.description.browse.views.search.SearchView;
import org.reuseware.coconut.description.browse.views.selectedfacets.SelectedFacetsView;
public class BrowserPerspectiveFactory implements IPerspectiveFactory {
public static final String PERSPECTIVE_ID = "org.reuseware.coconut.description.browse.perspective";
private static final String VIEW_FACET = "org.reuseware.coconut.description.facetview.*";
private static final String VIEW_CONTENT = ContentView.VIEW_ID;
private static final String VIEW_ADDITIONAL_FACETS = AdditionalFacetsView.VIEW_ID;
private static final String VIEW_SELECTED_FACETS = SelectedFacetsView.VIEW_ID;
private static final String VIEW_SEARCH = SearchView.VIEW_ID;
private static final String VIEW_GROUP_SORT = GroupSortView.VIEW_ID;
private static final String LEFT_TOP = "leftTop";
private static final String LEFT_MIDDLE = "leftMiddle";
private static final String LEFT_BOTTOM = "leftBottom";
private static final String CENTER_TOP = "centerTop";
private static final String CENTER_BOTTOM = "centerBottom";
private static final String RIGHT_TOP = "rightTop";
private static final String RIGHT_MIDDLE = "rightMiddle";
private static final String RIGHT_BOTTOM = "rightBottom";
public void createInitialLayout(IPageLayout myLayout) {
defineActions(myLayout);
defineLayout(myLayout);
start();
}
private void defineActions(IPageLayout myLayout) {
// Add "show views".
myLayout.addShowViewShortcut(VIEW_CONTENT);
myLayout.addShowViewShortcut(VIEW_ADDITIONAL_FACETS);
myLayout.addShowViewShortcut(VIEW_SELECTED_FACETS);
myLayout.addShowViewShortcut(VIEW_SEARCH);
myLayout.addShowViewShortcut(VIEW_GROUP_SORT);
}
private void defineLayout(IPageLayout myLayout) {
String editArea = myLayout.getEditorArea();
myLayout.setEditorAreaVisible(false);
// left side
IFolderLayout leftTop = myLayout.createFolder(LEFT_TOP, IPageLayout.LEFT, 0.25f, editArea);
leftTop.addPlaceholder(VIEW_FACET + ":0");
IFolderLayout leftMiddle = myLayout.createFolder(LEFT_MIDDLE, IPageLayout.BOTTOM,
0.333333f, LEFT_TOP);
leftMiddle.addPlaceholder(VIEW_FACET + ":1");
IFolderLayout leftBottwom = myLayout.createFolder(LEFT_BOTTOM, IPageLayout.BOTTOM, 0.5f,
LEFT_MIDDLE);
leftBottwom.addPlaceholder(VIEW_FACET + ":2");
// right side
IFolderLayout topRight = myLayout.createFolder(RIGHT_TOP, IPageLayout.RIGHT, 0.66f,
editArea);
topRight.addPlaceholder(VIEW_FACET + ":3");
IFolderLayout rightMiddle = myLayout.createFolder(RIGHT_MIDDLE, IPageLayout.BOTTOM,
0.333333f, RIGHT_TOP);
rightMiddle.addPlaceholder(VIEW_FACET + ":4");
IFolderLayout bottomRight = myLayout.createFolder(RIGHT_BOTTOM, IPageLayout.BOTTOM, 0.5f,
RIGHT_MIDDLE);
bottomRight.addPlaceholder(VIEW_FACET + ":5");
// bottomRight.addView(FragmentBrowserView.VIEW_ID);
// center
IFolderLayout centerTop = myLayout.createFolder(CENTER_TOP, IPageLayout.TOP, 0.85f,
editArea);
centerTop.addView(VIEW_CONTENT);
IFolderLayout centerBottom = myLayout.createFolder(CENTER_BOTTOM, IPageLayout.BOTTOM,
0.666667f, CENTER_TOP);
centerBottom.addView(VIEW_ADDITIONAL_FACETS);
centerBottom.addView(VIEW_SELECTED_FACETS);
centerBottom.addView(VIEW_SEARCH);
centerBottom.addView(VIEW_GROUP_SORT);
}
private void start() {
// start browser's main controller
MainBrowserManager mbm = MainBrowserManager.getInstance();
mbm.isNewPerspective(true);
}
}