/*******************************************************************************
- * Copyright (c) 2012, 2015 Ericsson, others
+ * Copyright (c) 2012, 2016 Ericsson, others
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* finished updating the item heights.
*/
getDisplay().asyncExec(() -> {
+ if (isDisposed()) {
+ return;
+ }
super.setElementPosition(entry, y);
alignTreeItems(false);
});
// prevent mouse button from selecting a filler tree item
tree.addListener(SWT.MouseDown, event -> {
- TreeItem treeItem = tree.getItem(new Point(event.x, event.y));
- if (treeItem == null || treeItem.getData() == FILLER) {
+ List<TreeItem> treeItems = getVisibleExpandedItems(tree, false);
+ if (treeItems.isEmpty()) {
+ event.doit = false;
+ fTreeViewer.setSelection(new StructuredSelection());
+ fTimeGraphViewer.setSelection(null);
+ return;
+ }
+ TreeItem lastTreeItem = treeItems.get(treeItems.size() - 1);
+ if (event.y >= lastTreeItem.getBounds().y + lastTreeItem.getBounds().height) {
event.doit = false;
- List<TreeItem> treeItems = getVisibleExpandedItems(tree, false);
- if (treeItems.size() == 0) {
- fTreeViewer.setSelection(new StructuredSelection());
- fTimeGraphViewer.setSelection(null);
- return;
- }
// this prevents from scrolling up when selecting
// the partially visible tree item at the bottom
tree.select(treeItems.get(treeItems.size() - 1));
* Get the show filter dialog action.
*
* @return The Action object
- * @since 2.0
+ * @since 1.2
*/
public ShowFilterDialogAction getShowFilterDialogAction() {
if (fShowFilterDialogAction == null) {
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
+ if (isDisposed()) {
+ return;
+ }
alignTreeItems(true);
}
});
* Returns this viewer's filters.
*
* @return an array of viewer filters
- * @since 2.0
+ * @since 1.2
*/
public @NonNull ViewerFilter[] getFilters() {
return fTimeGraphViewer.getFilters();
*
* @param filters
* an array of viewer filters, or null
- * @since 2.0
+ * @since 1.2
*/
public void setFilters(@NonNull ViewerFilter[] filters) {
fInhibitTreeSelection = true;