import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseTrackAdapter;
import org.eclipse.swt.events.MouseWheelListener;
public void resetVerticalZoom() {
TimeGraphCombo.this.resetVerticalZoom();
}
+
+ @Override
+ public void setElementPosition(ITimeGraphEntry entry, int y) {
+ /*
+ * Queue the update to make sure the time graph combo has finished
+ * updating the item heights.
+ */
+ getDisplay().asyncExec(() -> {
+ super.setElementPosition(entry, y);
+ alignTreeItems(false);
+ });
+ }
};
}
}
* The TreeLabelProviderWrapper is used to intercept the filler items
* from the calls to the tree's real label provider.
*/
- private class TreeLabelProviderWrapper implements ITableLabelProvider {
+ private static class TreeLabelProviderWrapper implements ITableLabelProvider {
private final ITableLabelProvider labelProvider;
public TreeLabelProviderWrapper(ITableLabelProvider labelProvider) {
* the time graph combo's real ViewerFilters. These filler items should
* always be visible.
*/
- private class ViewerFilterWrapper extends ViewerFilter {
+ private static class ViewerFilterWrapper extends ViewerFilter {
private ViewerFilter fWrappedFilter;
fTimeGraphViewer.setSelection((ITimeGraphEntry) treeItems.get(treeItems.size() - 1).getData());
event.doit = false;
} else if ((event.character == '+' || event.character == '=') && ((event.stateMask & SWT.CTRL) != 0)) {
- verticalZoom(true);
+ fTimeGraphViewer.getTimeGraphControl().keyPressed(new KeyEvent(event));
+ return;
} else if (event.character == '-' && ((event.stateMask & SWT.CTRL) != 0)) {
- verticalZoom(false);
+ fTimeGraphViewer.getTimeGraphControl().keyPressed(new KeyEvent(event));
+ return;
} else if (event.character == '0' && ((event.stateMask & SWT.CTRL) != 0)) {
- resetVerticalZoom();
+ fTimeGraphViewer.getTimeGraphControl().keyPressed(new KeyEvent(event));
+ return;
} else {
return;
}
final Tree tree = fTreeViewer.getTree();
for (String columnName : columnNames) {
TreeColumn column = new TreeColumn(tree, SWT.LEFT);
+ column.setMoveable(true);
column.setText(columnName);
column.pack();
}
if (SWT.getPlatform().equals("gtk")) { //$NON-NLS-1$
TreeItem topItem = tree.getTopItem();
tree.getDisplay().asyncExec(() -> {
- tree.setTopItem(topItem);
+ if (!tree.isDisposed() && !topItem.isDisposed()) {
+ tree.setTopItem(topItem);
+ }
});
}
}