unc.lib.cdr.workbench.arrange.ArrangementTreeViewPart.java Source code

Java tutorial

Introduction

Here is the source code for unc.lib.cdr.workbench.arrange.ArrangementTreeViewPart.java

Source

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

}