org.eclipse.mylyn.internal.tasks.activity.ui.ActivityPart.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.mylyn.internal.tasks.activity.ui.ActivityPart.java

Source

/*******************************************************************************
 * Copyright (c) 2012 Timur Achmetow 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:
 *     Timur Achmetow - initial API and implementation
 *     Tasktop Technologies - improvements
 *******************************************************************************/

package org.eclipse.mylyn.internal.tasks.activity.ui;

import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.mylyn.internal.tasks.activity.core.ActivityManager;
import org.eclipse.mylyn.internal.tasks.activity.ui.provider.ActivityRecordContentProvider;
import org.eclipse.mylyn.internal.tasks.activity.ui.provider.ActivityRecordLabelProvider;
import org.eclipse.mylyn.internal.tasks.ui.editors.AbstractTaskEditorSection;
import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil;
import org.eclipse.mylyn.tasks.activity.core.IActivityStream;
import org.eclipse.mylyn.tasks.activity.core.TaskActivityScope;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.forms.widgets.FormToolkit;

/**
 * @author Timur Achmetow
 * @author Steffen Pingel
 */
@SuppressWarnings("restriction")
public class ActivityPart extends AbstractTaskEditorSection {

    public ActivityPart() {
        setPartName("Activity"); //$NON-NLS-1$
        setExpandVertically(true);
    }

    @Override
    public void createControl(Composite parent, FormToolkit toolkit) {
        // do not show the part for unsubmitted tasks
        if (getTaskData().isNew()) {
            return;
        }
        super.createControl(parent, toolkit);
    }

    @Override
    protected Control createContent(FormToolkit toolkit, Composite parent) {
        Composite activityComposite = toolkit.createComposite(parent);
        activityComposite.setLayout(EditorUtil.createSectionClientLayout());

        TreeViewer viewer = new TreeViewer(toolkit.createTree(activityComposite,
                SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION));
        GridDataFactory.fillDefaults().hint(500, 100).grab(true, true).applyTo(viewer.getControl());
        viewer.setContentProvider(new ActivityRecordContentProvider());
        viewer.setLabelProvider(
                new DecoratingStyledCellLabelProvider(new ActivityRecordLabelProvider(), null, null));
        IActivityStream stream = new ActivityManager().getStream(new TaskActivityScope(getModel().getTask()));
        viewer.setInput(stream);

        EditorUtil.addScrollListener(viewer.getTree());
        toolkit.paintBordersFor(activityComposite);

        return activityComposite;
    }

    @Override
    protected boolean shouldExpandOnCreate() {
        return false;
    }

}