blob: 81c19b698865ab8fe5f95d0be43c7c1ed970c9be [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 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:
* Daisuke SATO - initial API and implementation
*******************************************************************************/
package org.eclipse.actf.ai.audio.description.views;
import org.eclipse.actf.ai.audio.description.impl.MetadataContentProvider;
import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
import org.eclipse.actf.ai.internal.audio.description.Messages;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
public class DescriptionView extends ViewPart {
public static final String ID = "org.eclipse.actf.ai.audio.description.views.DescriptionView";
private VideoStatusViewer status;
private TableViewer tableViewer;
@Override
public void createPartControl(Composite parent) {
initView(parent);
DescriptionPlugin.getDefault().setDescriptionView(this);
}
private void initView(Composite parent) {
GridLayout gLayout = new GridLayout(1, true);
gLayout.marginWidth = 0;
gLayout.marginHeight = 0;
parent.setLayout(gLayout);
status = new VideoStatusViewer(parent);
tableViewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.BORDER);
MetadataContentProvider provider = new MetadataContentProvider();
tableViewer.setContentProvider(provider);
tableViewer.setLabelProvider(provider);
Table table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn tableColumnProperty = new TableColumn(table, SWT.LEFT);
tableColumnProperty.setText(Messages.AudioDescription_view_time);
tableColumnProperty.setWidth(70);
TableColumn tableColumnValue = new TableColumn(table, SWT.LEFT);
tableColumnValue.setText(Messages.AudioDescription_view_desc);
tableColumnValue.setWidth(130);
GridData data = new GridData(GridData.FILL_BOTH);
table.setLayoutData(data);
}
@Override
public void setFocus() {
}
public void setTime(double time) {
status.setTime(time);
}
public void setInput(Object input) {
if (tableViewer.getTable().isDisposed())
return;
tableViewer.setInput(input);
}
public void setIndex(int index) {
if (tableViewer.getTable().isDisposed())
return;
tableViewer.getTable().select(index);
}
public void setEnable(boolean b) {
status.setEnable(b);
}
public boolean toggleViewShowing() {
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IViewPart part = page.findView(ID);
if (part != null) {
page.hideView(part);
return false;
} else {
try {
page.showView(ID);
return true;
} catch (PartInitException e) {
e.printStackTrace();
}
}
return false;
}
}