コード例 #1
0
 /**
  * Selects the saved item in the tree of preference pages. If it cannot do this it saves the first
  * one.
  */
 protected void selectSavedItem() {
   IPreferenceNode node = findNodeMatching(getSelectedNodePreference());
   if (node == null) {
     IPreferenceNode[] nodes = preferenceManager.getRootSubNodes();
     ViewerComparator comparator = getTreeViewer().getComparator();
     if (comparator != null) {
       comparator.sort(null, nodes);
     }
     ViewerFilter[] filters = getTreeViewer().getFilters();
     for (int i = 0; i < nodes.length; i++) {
       IPreferenceNode selectedNode = nodes[i];
       // See if it passes all filters
       for (int j = 0; j < filters.length; j++) {
         if (!filters[j].select(this.treeViewer, preferenceManager.getRoot(), selectedNode)) {
           selectedNode = null;
           break;
         }
       }
       // if it passes all filters select it
       if (selectedNode != null) {
         node = selectedNode;
         break;
       }
     }
   }
   if (node != null) {
     getTreeViewer().setSelection(new StructuredSelection(node), true);
     // Keep focus in tree. See bugs 2692, 2621, and 6775.
     getTreeViewer().getControl().setFocus();
   }
 }