import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
import org.eclipse.tracecompass.tmf.ui.editors.ITmfTraceEditor;
import org.eclipse.tracecompass.tmf.ui.views.TmfView;
-import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.ITimeGraphContentProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.ITimeGraphRangeListener;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.ITimeGraphTimeListener;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphCombo;
+import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphContentProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphRangeUpdateEvent;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphTimeEvent;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphViewer;
}
}
- private class TreeContentProvider implements ITreeContentProvider {
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-
- @Override
- public Object[] getElements(Object inputElement) {
- if (inputElement != null) {
- try {
- return ((List<?>) inputElement).toArray(new ITimeGraphEntry[0]);
- } catch (ClassCastException e) {
- }
- }
- return new ITimeGraphEntry[0];
- }
-
- @Override
- public Object[] getChildren(Object parentElement) {
- ITimeGraphEntry entry = (ITimeGraphEntry) parentElement;
- return entry.getChildren().toArray();
- }
-
- @Override
- public Object getParent(Object element) {
- ITimeGraphEntry entry = (ITimeGraphEntry) element;
- return entry.getParent();
- }
-
- @Override
- public boolean hasChildren(Object element) {
- ITimeGraphEntry entry = (ITimeGraphEntry) element;
- return entry.hasChildren();
- }
-
- }
-
private class TreeLabelProvider implements ITableLabelProvider {
@Override
}
- private class TimeGraphContentProvider implements ITimeGraphContentProvider {
-
- @Override
- public ITimeGraphEntry[] getElements(Object inputElement) {
- if (inputElement != null) {
- try {
- return ((List<?>) inputElement).toArray(new ITimeGraphEntry[0]);
- } catch (ClassCastException e) {
- }
- }
- return new ITimeGraphEntry[0];
- }
-
- }
-
private class BuildThread extends Thread {
private final @NonNull ITmfTrace fBuildTrace;
private final ITmfTrace fParentTrace;
public void createPartControl(Composite parent) {
fTimeGraphCombo = new TimeGraphCombo(parent, SWT.NONE);
- fTimeGraphCombo.setTreeContentProvider(new TreeContentProvider());
+ fTimeGraphCombo.setTreeContentProvider(new TimeGraphContentProvider());
fTimeGraphCombo.setTreeLabelProvider(new TreeLabelProvider());
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.ITimeGraphSelectionListener;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.ITimeGraphTimeListener;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphCombo;
+import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphContentProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphPresentationProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphRangeUpdateEvent;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphTimeEvent;
}
}
- private class TreeContentProvider implements ITreeContentProvider {
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-
- @Override
- public ITimeGraphEntry[] getElements(Object inputElement) {
- if (inputElement != null) {
- try {
- return ((List<?>) inputElement).toArray(new ITimeGraphEntry[0]);
- } catch (ClassCastException e) {
- }
- }
- return new ITimeGraphEntry[0];
- }
-
- @Override
- public Object[] getChildren(Object parentElement) {
- ITimeGraphEntry entry = (ITimeGraphEntry) parentElement;
- List<? extends ITimeGraphEntry> children = entry.getChildren();
- return children.toArray(new ITimeGraphEntry[children.size()]);
- }
-
- @Override
- public Object getParent(Object element) {
- ITimeGraphEntry entry = (ITimeGraphEntry) element;
- return entry.getParent();
- }
-
- @Override
- public boolean hasChildren(Object element) {
- ITimeGraphEntry entry = (ITimeGraphEntry) element;
- return entry.hasChildren();
- }
-
- }
-
- private class TimeGraphContentProvider implements ITimeGraphContentProvider {
-
- @Override
- public ITimeGraphEntry[] getElements(Object inputElement) {
- if (inputElement != null) {
- try {
- return ((List<?>) inputElement).toArray(new ITimeGraphEntry[0]);
- } catch (ClassCastException e) {
- }
- }
- return new ITimeGraphEntry[0];
- }
-
- }
-
/**
* Base class to provide the labels for the tree viewer. Views extending
* this class typically need to override the getColumnText method if they
@Override
public void createPartControl(Composite parent) {
+ ITimeGraphContentProvider contentProvider = new TimeGraphContentProvider();
if (fColumns == null || fLabelProvider == null) {
fTimeGraphWrapper = new TimeGraphViewerWrapper(parent, SWT.NONE);
TimeGraphViewer viewer = fTimeGraphWrapper.getTimeGraphViewer();
- viewer.setTimeGraphContentProvider(new TimeGraphContentProvider());
+ viewer.setTimeGraphContentProvider(contentProvider);
} else {
TimeGraphComboWrapper wrapper = new TimeGraphComboWrapper(parent, SWT.NONE);
fTimeGraphWrapper = wrapper;
TimeGraphCombo combo = wrapper.getTimeGraphCombo();
- combo.setTreeContentProvider(new TreeContentProvider());
+ combo.setTreeContentProvider(contentProvider);
combo.setTreeLabelProvider(fLabelProvider);
combo.setTreeColumns(fColumns);
- combo.setFilterContentProvider(new TreeContentProvider());
+ combo.setFilterContentProvider(contentProvider);
combo.setFilterLabelProvider(fFilterLabelProvider);
combo.setFilterColumns(fFilterColumns);
- combo.setTimeGraphContentProvider(new TimeGraphContentProvider());
+ combo.setTimeGraphContentProvider(contentProvider);
}
fTimeGraphWrapper.setTimeGraphProvider(fPresentation);
/*******************************************************************************
- * Copyright (c) 2014 Ericsson
+ * Copyright (c) 2014, 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
package org.eclipse.tracecompass.tmf.ui.widgets.timegraph;
+import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;
* A content provider mediates between the viewer's model
* and the viewer itself.
*/
-public interface ITimeGraphContentProvider {
+public interface ITimeGraphContentProvider extends ITreeContentProvider {
/**
* Returns the time graph entries to display in the viewer when its input is
* set to the given element.
* the input element
* @return the array of time graph entries to display in the viewer
*/
+ @Override
public ITimeGraphEntry[] getElements(Object inputElement);
+
+ /**
+ * @since 1.0
+ */
+ @Override
+ public ITimeGraphEntry[] getChildren(Object parentElement);
+
+ /**
+ * @since 1.0
+ */
+ @Override
+ public ITimeGraphEntry getParent(Object element);
}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2015 Ericsson
+ *
+ * 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:
+ * Patrick Tasse - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.tmf.ui.widgets.timegraph;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;
+
+/**
+ * Base provider class for the time graph content provider
+ * <p>
+ * The default implementation accepts an ITimeGraphEntry[] or a List of
+ * ITimeGraphEntry as input element.
+ *
+ * @author Patrick Tasse
+ * @since 1.0
+ */
+
+public class TimeGraphContentProvider implements ITimeGraphContentProvider {
+
+ @Override
+ public ITimeGraphEntry[] getElements(Object inputElement) {
+ if (inputElement instanceof ITimeGraphEntry[]) {
+ return (ITimeGraphEntry[]) inputElement;
+ } else if (inputElement instanceof List) {
+ try {
+ return ((List<?>) inputElement).toArray(new ITimeGraphEntry[0]);
+ } catch (ClassCastException e) {
+ }
+ }
+ return new ITimeGraphEntry[0];
+ }
+
+ @Override
+ public boolean hasChildren(Object element) {
+ ITimeGraphEntry entry = (ITimeGraphEntry) element;
+ return entry.hasChildren();
+ }
+
+ @Override
+ public ITimeGraphEntry[] getChildren(Object parentElement) {
+ ITimeGraphEntry entry = (ITimeGraphEntry) parentElement;
+ List<? extends ITimeGraphEntry> children = entry.getChildren();
+ return children.toArray(new ITimeGraphEntry[children.size()]);
+ }
+
+ @Override
+ public ITimeGraphEntry getParent(Object element) {
+ ITimeGraphEntry entry = (ITimeGraphEntry) element;
+ return entry.getParent();
+ }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+}
*/
public TimeGraphViewer(Composite parent, int style) {
createDataViewer(parent, style);
- fTimeGraphContentProvider = new ITimeGraphContentProvider() {
- @Override
- public ITimeGraphEntry[] getElements(Object inputElement) {
- if (inputElement instanceof ITimeGraphEntry[]) {
- return (ITimeGraphEntry[]) inputElement;
- }
- return new ITimeGraphEntry[0];
- }
- };
+ fTimeGraphContentProvider = new TimeGraphContentProvider();
}
/**