/**
* Copyright 2010 The University of North Carolina at Chapel Hill
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package unc.lib.cdr.workbench.arrange;
import static unc.lib.cdr.workbench.arrange.ArrangementTableLabelProvider.bounds;
import static unc.lib.cdr.workbench.arrange.ArrangementTableLabelProvider.headers;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.part.ViewPart;
public class ArrangementTreeViewPart extends ViewPart {
TreeViewer viewer = null;
Clipboard clipboard = null;
@Override
public void createPartControl(Composite parent) {
createViewer(parent);
viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
}
/**
* @param parent
*/
private void createViewer(Composite parent) {
viewer = new TreeViewer(parent, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
createColumns(viewer);
viewer.setContentProvider(new ArrangementContentProvider());
viewer.setLabelProvider(new ArrangementTableLabelProvider());
Transfer[] ttypes = new Transfer[] { LocalSelectionTransfer.getTransfer() };
viewer.addDragSupport(DND.DROP_MOVE, ttypes, new ArrangementDragSourceListener(viewer));
this.getSite().setSelectionProvider(viewer);
MenuManager menuMgr = new MenuManager();
// menuMgr.setRemoveAllWhenShown(true);
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
this.getSite().registerContextMenu(menuMgr, viewer);
}
/**
* @param viewer2
*/
private void createColumns(TreeViewer viewer2) {
for (int i = 0; i < headers.length; i++) {
TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
column.getColumn().setText(headers[i]);
column.getColumn().setWidth(bounds[i]);
column.getColumn().setResizable(true);
column.getColumn().setMoveable(true);
}
viewer.getTree().setHeaderVisible(true);
viewer.getTree().setLinesVisible(true);
}
@Override
public void setFocus() {
viewer.getControl().setFocus();
}
}