| /******************************************************************************* |
| * 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(); |
| } |
| } |
| |
| } |