Ejemplo n.º 1
0
 static TreeItem NextItem(Tree tree, TreeItem item) {
   if (item == null) return null;
   if (item.getExpanded()) {
     return item.getItem(0);
   } else {
     TreeItem childItem = item;
     TreeItem parentItem = childItem.getParentItem();
     int index = parentItem == null ? tree.indexOf(childItem) : parentItem.indexOf(childItem);
     int count = parentItem == null ? tree.getItemCount() : parentItem.getItemCount();
     while (true) {
       if (index + 1 < count) {
         return parentItem == null ? tree.getItem(index + 1) : parentItem.getItem(index + 1);
       } else {
         if (parentItem == null) {
           return null;
         } else {
           childItem = parentItem;
           parentItem = childItem.getParentItem();
           index = parentItem == null ? tree.indexOf(childItem) : parentItem.indexOf(childItem);
           count = parentItem == null ? tree.getItemCount() : parentItem.getItemCount();
         }
       }
     }
   }
 }
Ejemplo n.º 2
0
 public FileInfo findFileInfo(TreeItem item) {
   assert Thread.currentThread() == fDisplay.getThread();
   if (item == null) return fRootInfo;
   TreeItem parent = item.getParentItem();
   FileInfo info = findFileInfo(parent);
   if (info == null) return null;
   if (info.children == null) return null;
   if (info.children_error != null) return null;
   int i = parent == null ? fileTree.indexOf(item) : parent.indexOf(item);
   if (i < 0 || i >= info.children.length) return null;
   assert info.children[i].index == i;
   return info.children[i];
 }
Ejemplo n.º 3
0
 static TreeItem PreviousItem(Tree tree, TreeItem item) {
   if (item == null) return null;
   TreeItem childItem = item;
   TreeItem parentItem = childItem.getParentItem();
   int index = parentItem == null ? tree.indexOf(childItem) : parentItem.indexOf(childItem);
   if (index == 0) {
     return parentItem;
   } else {
     TreeItem nextItem =
         parentItem == null ? tree.getItem(index - 1) : parentItem.getItem(index - 1);
     int count = nextItem.getItemCount();
     while (count > 0 && nextItem.getExpanded()) {
       nextItem = nextItem.getItem(count - 1);
       count = nextItem.getItemCount();
     }
     return nextItem;
   }
 }