public void keyPressed(KeyEvent e) { IStructuredSelection s = (IStructuredSelection) getSelection(); switch (e.keyCode) { case SWT.CR: if (isHierarchical()) { if (s.size() == 1) { TagTreeItem selected = (TagTreeItem) s.getFirstElement(); if (selected.hasChildren()) { viewer.setInput(selected); refresh(); } } } break; case SWT.BS: if (isHierarchical()) { TagTreeItem current = (TagTreeItem) viewer.getInput(); if (current.getParent() != null) { viewer.setInput(current.getParent()); refresh(); } } break; } }
public Color getForeground(Object element) { if (element instanceof TagTreeItem) { TagTreeItem tti = (TagTreeItem) element; if (tti.hasChildren()) { return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_CYAN); } } return null; }
public void mouseDoubleClick(MouseEvent e) { if (e.button == 1) { CloudItem item = viewer.getCloud().findItemAt(e.x, e.y); TagTreeItem treeItem = (TagTreeItem) item.getData(); if (treeItem.hasChildren()) { viewer.setInput(treeItem); refresh(); } } }
public String getText(Object element) { String text = ""; if (element instanceof TagTreeItem) { TagTreeItem tti = (TagTreeItem) element; text = tti.getName(); if (isHierarchical()) { int dot = text.lastIndexOf('.'); if (dot > 0 && dot < text.length() - 1) { text = text.substring(dot + 1); } } text += "(" + tti.getWaypointCount() + ")"; if (tti.hasChildren()) { text += "+"; } } return text; }