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; }
private void refreshBreadCrumb() { String linkText = ""; TagTreeItem current = (TagTreeItem) viewer.getInput(); int parentNum = 0; while (current != null) { String text = current.getName(); int dot = text.lastIndexOf('.'); if (dot > 0 && dot < text.length() - 1) { text = text.substring(dot + 1); } linkText = "<a href=\"" + parentNum + "\">" + text + "</a>" + linkText; if (current.getParent() != null && current.getParent() != input.getRoot()) { linkText = "." + linkText; } else { linkText = " " + linkText; } current = current.getParent(); parentNum++; } formText.setText("<form><p>" + linkText + "</p></form>", true, false); }
public void linkActivated(HyperlinkEvent e) { String ref = (String) e.getHref(); int number = Integer.parseInt(ref); if (number == 0) { // Clear the selection if root is selected if (viewer.getInput() == input.getRoot()) viewer.setSelection(new StructuredSelection(new Object[0]), true); return; } // get the parent numbered "number" TagTreeItem current = (TagTreeItem) viewer.getInput(); while (current != null && number > 0) { current = current.getParent(); number--; } if (current == null) { viewer.setInput(input.getRoot()); } else { viewer.setInput(current); } refresh(); }