blob: e0257475173b5d6e733dce45f9f4803cddbbca44 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 - 2006 University Of British Columbia 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:
* University Of British Columbia - initial API and implementation
*******************************************************************************/
/*
* Created on Feb 8, 2005
*/
package org.eclipse.mylar.internal.sandbox.viz;
import org.eclipse.mylar.internal.core.MylarContextManager;
import org.eclipse.mylar.provisional.core.IMylarContextListener;
import org.eclipse.mylar.provisional.core.MylarPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.part.ViewPart;
/**
* @author Mik Kersten
*/
public class MylarControlPanel extends Composite {
private Scale dosScale;
// private TableViewer tableViewer;
private Scale doiScale;
public MylarControlPanel(ViewPart part, Composite parent, int style) {
super(parent, style);
final GridLayout gridLayout_3 = new GridLayout();
gridLayout_3.verticalSpacing = 2;
gridLayout_3.marginWidth = 0;
gridLayout_3.marginHeight = 0;
gridLayout_3.horizontalSpacing = 1;
setLayout(gridLayout_3);
final Label activeLabel = new Label(this, SWT.NONE);
activeLabel.setText("Active tasks ");
activeLabel
.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
// tableViewer = new TableViewer(this, SWT.BORDER);
// final GridData gridData = new GridData();
// gridData.widthHint = 141;
// tableViewer.getTable().setLayoutData(new
// GridData(GridData.FILL_BOTH));
// tableViewer.setContentProvider(new ItemContentProvider());
// tableViewer.setInput(part.getViewSite());
// tableViewer.setLabelProvider(new TasklistLabelProvider());
final Composite group = new Composite(this, SWT.NONE);
final GridLayout gridLayout_2 = new GridLayout();
gridLayout_2.verticalSpacing = 0;
gridLayout_2.horizontalSpacing = 0;
gridLayout_2.marginWidth = 0;
gridLayout_2.marginHeight = 0;
group.setLayout(gridLayout_2);
final GridData gridData_1 = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
gridData_1.heightHint = 45;
group.setLayoutData(gridData_1);
final Composite doiComposite = new Composite(group, SWT.NONE);
final GridData gridData_2 = new GridData(GridData.FILL_BOTH);
gridData_2.heightHint = 20;
gridData_2.widthHint = 191;
doiComposite.setLayoutData(gridData_2);
final GridLayout gridLayout = new GridLayout();
gridLayout.horizontalSpacing = 1;
gridLayout.verticalSpacing = 1;
gridLayout.marginWidth = 1;
gridLayout.marginHeight = 1;
gridLayout.numColumns = 2;
doiComposite.setLayout(gridLayout);
final Label doiLabel = new Label(doiComposite, SWT.NONE);
final GridData gridData_4 = new GridData();
gridData_4.widthHint = 105;
doiLabel.setLayoutData(gridData_4);
doiLabel.setText(" Degree of interest");
doiScale = new Scale(doiComposite, SWT.NONE);
final GridData gridData_3 = new GridData(GridData.FILL_HORIZONTAL);
gridData_3.heightHint = 17;
doiScale.setLayoutData(gridData_3);
doiScale.setPageIncrement(1);
doiScale.setSelection(6);
doiScale.setMinimum(0);
doiScale.setMaximum(12);
doiScale.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
MylarContextManager.getScalingFactors().setInteresting(scaleDoiSelection(doiScale.getSelection()));
MylarPlugin.getContextManager().notifyActivePresentationSettingsChange(
IMylarContextListener.UpdateKind.SCALING);
}
public void widgetDefaultSelected(SelectionEvent e) {
// don't care about default selection
}
});
doiScale.addMouseListener(new MouseListener() {
public void mouseDoubleClick(MouseEvent e) {
// don't care about double click
}
public void mouseDown(MouseEvent e) {
// don't care about mouse down
}
public void mouseUp(MouseEvent e) {
MylarContextManager.getScalingFactors().setInteresting(scaleDoiSelection(doiScale.getSelection()));
MylarPlugin.getContextManager().notifyPostPresentationSettingsChange(
IMylarContextListener.UpdateKind.SCALING);
}
});
final Composite dosComposite = new Composite(group, SWT.NONE);
final GridData gridData_2_1 = new GridData(GridData.FILL_BOTH);
gridData_2_1.heightHint = 20;
gridData_2_1.widthHint = 191;
dosComposite.setLayoutData(gridData_2_1);
final GridLayout gridLayout_1 = new GridLayout();
gridLayout_1.verticalSpacing = 1;
gridLayout_1.horizontalSpacing = 1;
gridLayout_1.marginWidth = 1;
gridLayout_1.marginHeight = 1;
gridLayout_1.numColumns = 2;
dosComposite.setLayout(gridLayout_1);
final Label dosLabel = new Label(dosComposite, SWT.NONE);
final GridData gridData_5 = new GridData();
gridData_5.widthHint = 105;
dosLabel.setLayoutData(gridData_5);
dosLabel.setBounds(0, 0, 120, 30);
dosLabel.setText(" Degree of separation");
dosScale = new Scale(dosComposite, SWT.NONE);
final GridData gridData_3_1 = new GridData(GridData.FILL_HORIZONTAL);
gridData_3_1.heightHint = 17;
dosScale.setIncrement(1);
dosScale.setLayoutData(gridData_3_1);
dosScale.setMinimum(1);
dosScale.setMaximum(5);
dosScale.setSelection(2);
dosScale.setPageIncrement(1);
dosScale.setBounds(0, 0, 120, 30);
dosScale.setToolTipText("landmarks | interesting | projects | dependent projects | workspace");
dosScale.addMouseListener(new MouseListener() {
public void mouseDoubleClick(MouseEvent e) {
// don't care about double click
}
public void mouseDown(MouseEvent e) {
// don't care about mouse down
}
public void mouseUp(MouseEvent e) {
MylarContextManager.getScalingFactors().setDegreeOfSeparation(dosScale.getSelection());
MylarPlugin.getContextManager().refreshRelatedElements();
}
});
// initDragAndDrop(tableViewer);
// tableViewer.refresh();
}
private float scaleDoiSelection(int selection) {
int value = selection;
int scaledValue = (-1) * (value - 6);
if (scaledValue < 0)
scaledValue = 0;
return scaledValue;
}
// private static final class ItemContentProvider implements
// IStructuredContentProvider {
//
// public Object[] getElements(Object inputElement) {
// return
// TaskListPlugin.getTaskListManager().getTaskList().getActiveTasks().toArray();
// }
//
// public void dispose() {
// }
//
// public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
// {
// }
// }
// private void initDragAndDrop(final TableViewer tableViewer) {
// TextTransfer textTransfer = TextTransfer.getInstance();
// DropTarget target = new DropTarget(tableViewer.getTable(), DND.DROP_COPY
// | DND.DROP_MOVE);
// target.setTransfer(new Transfer[] { textTransfer });
// target.addDropListener(new TaskListDropTargetListener(this, tableViewer,
// textTransfer, true));
//
// DragSource source = new DragSource(tableViewer.getTable(), DND.DROP_COPY
// | DND.DROP_MOVE);
// Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
// source.setTransfer(types);
// source.addDragListener(new DragSourceListener() {
//
// public void dragStart(DragSourceEvent event) {
// if (((StructuredSelection)tableViewer.getSelection()).getFirstElement()
// == null) {
// event.doit = false;
// }
// }
//
// public void dragSetData(DragSourceEvent event) {
// StructuredSelection selection =
// (StructuredSelection)tableViewer.getSelection();
// ITask task = (ITask)selection.getFirstElement();
// if (task != null) {
// event.data = "" + task.getId();
// } else {
// event.data = " ";
// }
// }
//
// public void dragFinished(DragSourceEvent event) {
// StructuredSelection selection =
// (StructuredSelection)tableViewer.getSelection();
// if (selection.isEmpty()) {
// return;
// } else {
// ITask task = (ITask) selection.getFirstElement();
// tableViewer.remove(task);
// tableViewer.refresh();
// }
// }
//
// });
// }
// class ViewLabelProvider extends LabelProvider implements IColorProvider {
//
// public String getText(Object obj) {
// if (obj instanceof BugzillaTask) {
// String desc =
// TaskListPlugin.getDefault().getBugzillaProvider().getBugzillaDescription(
// ((BugzillaTask)obj));
// return desc;
// } else if (obj instanceof Task) {
// Task task = (Task)obj;
// return task.toString();// + " [" + task.getId() + "]";
// } else {
// return obj.toString();
// }
// }
//
// public Image getImage(Object obj) {
// String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
// if (obj instanceof Category) {
// return MylarImages.getImage(MylarImages.TASK_CATEGORY);
// } else if (obj instanceof BugzillaTask) {
// return MylarImages.getImage(MylarImages.TASK_BUGZILLA);
// } else if (obj instanceof Task) {
// return MylarImages.getImage(MylarImages.TASK);
// } else {
// return null;
// }
// }
// public Color getForeground(Object element) {
// return null;
// }
//
// public Color getBackground(Object element) {
// if (element instanceof ITask) {
// ITask task = (ITask)element;
// if (task.isActive()) {
// Highlighter highlighter =
// MylarUiPlugin.getDefault().getHighlighterForTaskId(((Task)task).getId());
// if (highlighter != null) {
// return highlighter.getHighlightColor();
// } else {
// return null;
// }
// }
// }
// return null;
// }
// }
@Override
public void dispose() {
super.dispose();
}
// protected void checkSubclass() {
//
// }
// public TableViewer getTableViewer() {
// return tableViewer;
// }
}