blob: 17aeb57ff175a9498120e2f6563db50fc4b3674a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 IBM Corporation and Others
* 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:
* Norimasa HAYASHIDA - initial API and implementation
*******************************************************************************/
package org.eclipse.actf.visualization.blind.ui.views;
import org.eclipse.actf.util.ui.AbstractPartListener;
import org.eclipse.actf.visualization.IVisualizationView;
import org.eclipse.actf.visualization.VisualizationStatusLineContributionItem;
import org.eclipse.actf.visualization.blind.ui.internal.PartControlBlind;
import org.eclipse.actf.visualization.blind.ui.internal.SelectionListenerBlind;
import org.eclipse.actf.visualization.engines.blind.html.ui.elementViewer.ElementViewerManager;
import org.eclipse.actf.visualization.ui.report.table.ResultTableLabelProvider;
import org.eclipse.actf.visualization.ui.report.table.ResultTableSorter;
import org.eclipse.actf.visualization.ui.report.views.DetailedReportView;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
public class BlindView extends ViewPart implements IVisualizationView {
public static final String ID = BlindView.class.getName();
private IBaseLabelProvider baseLabelProvider;
private ResultTableSorter viewerSorter;
private ElementViewerManager elementViewerManager;
private PartControlBlind partRightBlind;
public BlindView() {
super();
baseLabelProvider = new ResultTableLabelProvider();
viewerSorter = new ResultTableSorter();
elementViewerManager = ElementViewerManager.getInstance();
}
public void init(IViewSite site) throws PartInitException {
setSite(site);
setStatusLine();
}
public void createPartControl(Composite parent) {
partRightBlind = new PartControlBlind(this, parent);
// TODO use mediator
getSite().getPage().addSelectionListener(DetailedReportView.ID,
new SelectionListenerBlind(partRightBlind));
// for element viewer
elementViewerManager.setPartRightBlind(partRightBlind);
addPartListener();
}
public void setFocus() {
}
public void setStatusMessage(String statusMessage) {
IContributionItem[] items = getViewSite().getActionBars()
.getStatusLineManager().getItems();
for (int i = 0; i < items.length; i++) {
if (null != items[i]
&& items[i].getId().equals(
VisualizationStatusLineContributionItem.ID + ID)) {
((VisualizationStatusLineContributionItem) items[i])
.setStatusMessage(statusMessage);
}
}
}
public void setInfoMessage(String infoMessage) {
IContributionItem[] items = getViewSite().getActionBars()
.getStatusLineManager().getItems();
for (int i = 0; i < items.length; i++) {
if (null != items[i]
&& items[i].getId().equals(
VisualizationStatusLineContributionItem.ID + ID)) {
((VisualizationStatusLineContributionItem) items[i])
.setInfoMessage(infoMessage);
}
}
}
private void addPartListener() {
IWorkbenchPage activePage = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
activePage.addPartListener(new AbstractPartListener() {
public void partActivated(IWorkbenchPartReference partRef) {
IWorkbenchPart part = partRef.getPart(false);
if (part instanceof IVisualizationView) {
if (part.equals(BlindView.this)) {
elementViewerManager.activateElementViewer();
} else {
elementViewerManager.hideElementViewer();
}
}
}
});
}
private void setStatusLine() {
getViewSite().getActionBars().getStatusLineManager().add(
new VisualizationStatusLineContributionItem(ID));
}
public IBaseLabelProvider getLabelProvider() {
return baseLabelProvider;
}
public ViewerSorter getTableSorter() {
viewerSorter.reset();
return viewerSorter;
}
public int getResultTableMode() {
return MODE_DEFAULT;
}
public void doVisualize() {
if (partRightBlind != null) {
partRightBlind.doVisualize();
}
}
}