org.eclipse.jface.viewers.TreeViewer#expandToLevel ( )源码实例Demo

下面列出了org.eclipse.jface.viewers.TreeViewer#expandToLevel ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

/**
 * Tree-viewer that shows the allowable types in a tree view.
 * @param parent the parent
 */
private void addTreeComponent(Composite parent) {
	fTreeViewer= new TreeViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
	
	GridData gd= new GridData(GridData.FILL_BOTH);
	gd.grabExcessHorizontalSpace= true;
	gd.grabExcessVerticalSpace= true;
	Tree tree= fTreeViewer.getTree();
	Dialog.applyDialogFont(tree);
	gd.heightHint= tree.getItemHeight() * 12;
	tree.setLayoutData(gd);

	fTreeViewer.setContentProvider(new ChangeTypeContentProvider(((ChangeTypeRefactoring)getRefactoring())));
	fLabelProvider= new ChangeTypeLabelProvider();
	fTreeViewer.setLabelProvider(fLabelProvider);
	ISelectionChangedListener listener= new ISelectionChangedListener(){
		public void selectionChanged(SelectionChangedEvent event) {
			IStructuredSelection selection= (IStructuredSelection)event.getSelection();
			typeSelected((ITypeBinding)selection.getFirstElement());
		}
	};
	fTreeViewer.addSelectionChangedListener(listener);
	fTreeViewer.setInput(new ChangeTypeContentProvider.RootType(getGeneralizeTypeRefactoring().getOriginalType()));
	fTreeViewer.expandToLevel(10);
}
 
源代码2 项目: tlaplus   文件: TLCErrorView.java
/**
    * Sets the input of the trace viewer to states
    * and sets the value viewer to "Select line in Error Trace to show its value here."
    * if the list of states is not empty.
    * 
    * @param states
    */
void setTraceInput(final TLCError error, final boolean isNew) {
	if (isNew) {
		unfilteredInput = error;
	}
	
	// If itemCount is large (>10.000 items), the underlying OS window
	// toolkit can be slow. As a possible fix, look into
	// http://www.eclipse.org/nattable/. For background, read
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129457#c27
   	error.restrictTraceTo(numberOfStatesToShow);
   	final TreeViewer treeViewer = errorTraceTreeViewer.getTreeViewer();
   	treeViewer.getTree().setItemCount(error.getTraceSize() + (error.isTraceRestricted() ? 1 : 0));
   	treeViewer.setInput(error);
	// If the number of states in the trace is sufficiently small, eagerly
	// expand all root level items (which translates to the states
	// variables). This causes the TreeViewer to correctly determine the
	// vertical scroll bar's height. For larger number of states, we accept
	// an incorrect scroll bar height in return for lazy and thus much
	// faster item handling. I pulled the limit out of thin air, but
       // tested it on three modern (2015) laptops with Win/Mac/Linux.
       //
	// There seems to be an implementation inside the Eclipse SDK that
	// correctly handles the expanded state of a virtual tree:
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=201135
       // https://bugs.eclipse.org/bugs/show_bug.cgi?id=266189
       final int level = 1;
       if (error.getTraceSize(level) < 1000) {
       	treeViewer.expandToLevel(level + 1); // viewer counts root node. 
       }
       if (!error.isTraceEmpty())
       {
           valueViewer.setDocument(NO_VALUE_DOCUMENT());
       } else
       {
           valueViewer.setDocument(EMPTY_DOCUMENT());
       }
   }
 
源代码3 项目: depan   文件: GraphEditorNodeViewProvider.java
@Override
public void updateExpandState(TreeViewer viewer) {
  TreePath[] expandState = graphData.getExpandState();
  if (expandState.length > 0) {
    viewer.setExpandedTreePaths(expandState);
    return;
  }
  if (graphData.countTreeNodes() < NodeViewerProvider.AUTO_EXPAND_LIMIT) {
    viewer.expandAll();
  }
  else {
    viewer.expandToLevel(1);
  }
  graphData.saveExpandState(viewer.getExpandedTreePaths());
}
 
源代码4 项目: depan   文件: ViewEditorNodeViewerProvider.java
@Override
public void updateExpandState(TreeViewer viewer) {
  int nodeCnt = editor.getViewGraph().getNodes().size();
  if (nodeCnt < NodeViewerProvider.AUTO_EXPAND_LIMIT) {
    viewer.expandAll();
  } else {
    viewer.expandToLevel(1);
  }
}
 
/**
 * {@inheritDoc}
 */
@Override
protected void configureTree(TreeViewer tree) {
	tree.setContentProvider(new JavaWorkingSetPageContentProvider());

	AppearanceAwareLabelProvider javaElementLabelProvider=
		new AppearanceAwareLabelProvider(
			AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS | JavaElementLabels.P_COMPRESSED,
			AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS | JavaElementImageProvider.SMALL_ICONS
		);

	tree.setLabelProvider(new DecoratingJavaLabelProvider(javaElementLabelProvider));
	tree.setComparator(new JavaElementComparator());
	tree.addFilter(new EmptyInnerPackageFilter());

	tree.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));

	if (getSelection() == null)
		return;

	Object[] selection= getInitialTreeSelection();
	if (selection.length > 0) {
		try {
			tree.getTree().setRedraw(false);

			for (int i= 0; i < selection.length; i++) {
				tree.expandToLevel(selection[i], 0);
			}
			tree.setSelection(new StructuredSelection(selection));
		} finally {
			tree.getTree().setRedraw(true);
		}
	}
}
 
源代码6 项目: birt   文件: LibraryExplorerTreeViewPage.java
private void handleTreeViewerRefresh( )
{
	TreeViewer treeViewer = getTreeViewer( );

	if ( libraryBackup != null )
	{
		libraryBackup.restoreBackup( treeViewer );
	}
	else
	{
		libraryBackup = new TreeViewerBackup( );
		treeViewer.expandToLevel( 2 );
		libraryBackup.updateStatus( treeViewer );
	}
}
 
源代码7 项目: birt   文件: TreeViewerBackup.java
public void restoreBackup( TreeViewer treeviewer )
{
	for ( int i = 0; i < leafList.size( ); i++ )
	{
		treeviewer.expandToLevel( leafList.get( i ), 1 );
	}
}
 
源代码8 项目: tlaplus   文件: RecordToSourceCoupler.java
private void performSourceCoupling(final ISelection selection, final boolean jumpToPCal, final boolean dueToArrowKeys) {
	if (selection != null && !selection.isEmpty()) {
		if (selection instanceof StructuredSelection) {
			final StructuredSelection structuredSelection = (StructuredSelection) selection;
			// on a double click there should not be multiple selections,
			// so taking the first element of the structured selection
			// should work
			final Object firstElement = structuredSelection.getFirstElement();
			if (firstElement instanceof LoaderTLCState) {
				final LoaderTLCState loader = (LoaderTLCState) firstElement;
				// Loading more states can potentially block for a couple
				// seconds. Thus, give feedback to user.
				BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {
					public void run() {
						loader.loadMore();
					}
				});
			} else if (firstElement instanceof IModuleLocatable) {
				final IModuleLocatable moduleLocatable = (IModuleLocatable) firstElement;
				Location location = moduleLocatable.getModuleLocation();
				if (moduleLocatable instanceof ActionInformationItem) {
					ActionInformationItem aii = (ActionInformationItem) moduleLocatable;
					if (aii.hasDefinition()) {
						// Do not jump to a sub-actions identifier but to its actual definition if a
						// sub-action has a definition. Consider this partial spec:
						// ...
						// Next == \/ /\ x = 42
						//            /\ x' = 23
						//         \/ /\ x = 23
						//            /\ x' = 4711
						// ...
					    // getModuleLocation called on the ActionInformationItem for sub-action
						// "x = 42 /\ x' = 23" returns the location of  "x = 42 /\ x' = 23" and not
						// that of "Next".
						// This relevant in the Sub-actions for next-state table of the Model Checking
						// Results page.
						location = aii.getDefinition();
					}
				}
				if (location != null) {
					/*
					 * jumpToNested will be true if the location could be
					 * shown in a nested saved module editor. If it is
					 * false, we jump to the regular TLA editor instead.
					 */
					Model model = ToolboxHandle.getCurrentSpec().getAdapter(TLCSpec.class).getModel(moduleLocatable
							.getModelName());
					if (!TLCUIHelper.jumpToSavedLocation(location, model, blacklist)) {
						final IWorkbenchPart iwp;
						if (dueToArrowKeys || FocusRetentionPolicy.ALWAYS.equals(focusRetentionPolicy)) {
							iwp = partToRefocus;
						} else {
							iwp = null;
						}
						UIHelper.jumpToLocation(location, jumpToPCal, iwp);
						
						if (iwp != null) {
							viewer.getControl().getDisplay().asyncExec(() -> {
								viewer.getControl().forceFocus();
							});
						}
					}
				}
			} else if (!Platform.getWS().equals(Platform.WS_WIN32) && viewer instanceof TreeViewer) {
				// Windows has built-in expand/collapse on double click
				TreeViewer treeViewer = (TreeViewer) viewer;
				if (treeViewer.getExpandedState(firstElement)) {
					treeViewer.collapseToLevel(firstElement, 1);
				} else {
					treeViewer.expandToLevel(firstElement, 1);
				}
			}
		}
	}
}
 
/**
 * Creates the UI part of the page.
 *
 * @param parent  the parent of the created widgets
 */
public void createControl(Composite parent) {
	Composite composite = createComposite(parent, 1);
	// set F1 help
	PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.MOVE_RENAME_REMOTE_RESOURCE_PAGE);

	Listener listener = new Listener() {
		public void handleEvent(Event event) {
               resourceName = resourceNameText.getText();
			validateFields();
		}
	};

       // the text field for the parent folder
	createLabel(composite, Policy.bind("MoveRemoteResourceWizardMainPage.selectParentUrl")); //$NON-NLS-1$

       urlParentText = createTextField(composite);
       urlParentText.addListener(SWT.Selection, listener);
       urlParentText.addListener(SWT.Modify, listener);
       urlParentText.setEditable(false);


       // Create drill down.
       DrillDownComposite drillDown = new DrillDownComposite(composite, SWT.BORDER);
       GridData spec = new GridData(GridData.FILL_BOTH);
       spec.widthHint = LIST_WIDTH;
       spec.heightHint = LIST_HEIGHT;
       drillDown.setLayoutData(spec);

       // Create tree viewer inside drill down.
       viewer = new TreeViewer(drillDown, SWT.H_SCROLL | SWT.V_SCROLL);
       drillDown.setChildTree(viewer);
       viewer.setLabelProvider(new WorkbenchLabelProvider());
       viewer.setContentProvider(new RemoteContentProvider());
       viewer.setInput(new AllRootsElement());
       viewer.addFilter(RepositoryFilters.FOLDERS_ONLY);
       viewer.addSelectionChangedListener(treeSelectionChangedListener);

       // the text field for the resource name
       createLabel(composite, Policy.bind("MoveRemoteResourceWizardMainPage.resourceName")); //$NON-NLS-1$

       resourceNameText = createTextField(composite);
       resourceNameText.addListener(SWT.Selection, listener);
       resourceNameText.addListener(SWT.Modify, listener);
       resourceNameText.setText(resourceName);

	validateFields();
       resourceNameText.setFocus();

	setControl(composite);

       // set the initial selection in the tree
       if (parentFolder != null) {
           Object toSelect = null;
           if (parentFolder.getParent() == null) {
               // the root folder : select the repository
               toSelect = parentFolder.getRepository();
           }
           else
               toSelect = parentFolder;
           viewer.expandToLevel(toSelect,0);
           viewer.setSelection(new StructuredSelection(toSelect),true);
       }

}
 
源代码10 项目: APICloud-Studio   文件: WorkspaceDialog.java
protected Control createDialogArea(Composite parent){
	Composite composite = (Composite) super.createDialogArea(parent);
	
	
	GridLayout layout = new GridLayout();
	layout.numColumns = 1;	
	layout.marginHeight= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
	layout.marginWidth= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);	
	composite.setLayout(layout);
	final GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
	composite.setLayoutData(data);
       
	getShell().setText(windowTitle); 

       treeViewer = new TreeViewer(composite, SWT.BORDER);
       final GridData gd= new GridData(SWT.FILL, SWT.FILL, true, true);
       gd.widthHint= 550;
       gd.heightHint= 250;
       treeViewer.getTree().setLayoutData(gd);
      
       treeViewer.setContentProvider(new LocationPageContentProvider());
       treeViewer.setLabelProvider(new WorkbenchLabelProvider());
       treeViewer.setInput(ResourcesPlugin.getWorkspace());
       
       //Open to whatever is selected in the workspace field
       IPath existingWorkspacePath = new Path(pathText.getText());
       if (existingWorkspacePath != null){
       	//Ensure that this workspace path is valid
       	IResource selectedResource = ResourcesPlugin.getWorkspace().getRoot().findMember(existingWorkspacePath);
       	if (selectedResource != null) {
       		treeViewer.expandToLevel(selectedResource, 0);
       		treeViewer.setSelection(new StructuredSelection(selectedResource));
   		}
       }
       
       final Composite group = new Composite(composite, SWT.NONE);
       layout = new GridLayout(2, false);
       layout.marginWidth = 0;
       group.setLayout(layout);
       group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
       
       final Label label = new Label(group, SWT.NONE);
       label.setLayoutData(new GridData());
       label.setText(Policy.bind("WorkspaceDialog.fileName")); //$NON-NLS-1$
       
       fileNameText = new Text(group,SWT.BORDER);
       fileNameText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
	
       setupListeners();
	
	return parent;
}
 
源代码11 项目: birt   文件: TreeViewerBackup.java
public void updateExpandedStatus( TreeViewer treeViewer, Object data )
{
	treeViewer.expandToLevel( data, 1 );
	updateStatus( treeViewer );
}
 
源代码12 项目: bonita-studio   文件: SelectProcessWizardPage.java
@Override
public void createControl(Composite parent) {
	Composite mainComposite = new Composite(parent, SWT.NONE) ;
	mainComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()) ;
	mainComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).create()) ;
	
	databindingContext = new DataBindingContext() ;
	
	final FilteredTree tree = new FilteredTree(mainComposite, SWT.FULL_SELECTION | SWT.BORDER | SWT.SINGLE,new PatternFilter(), false) ;
	tree.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()) ;
	TreeViewer viewer = tree.getViewer() ;
	viewer.setContentProvider(new ProcessContentProvider()) ;
	viewer.setLabelProvider(new ProcessTreeLabelProvider()) ;

	UpdateValueStrategy startegy = new UpdateValueStrategy() ;
	startegy.setBeforeSetValidator(new IValidator() {
		
		@Override
		public IStatus validate(Object value) {
			if(value  instanceof AbstractProcess && !(value instanceof MainProcess)){
				return Status.OK_STATUS ;
			}
			return ValidationStatus.error(Messages.mustSelectProcessError);
		}
	}) ;

	if(diagram == null){
		viewer.setInput(new Object[]{ProcessContentProvider.OTHER_PROCESSES}) ;
	}else{
		viewer.setInput(new Object[]{diagram,ProcessContentProvider.OTHER_PROCESSES}) ;
	}

	if(diagram != null){
		if(((ITreeContentProvider) viewer.getContentProvider()).hasChildren(diagram)){
			viewer.expandToLevel(diagram, 1) ;
		}
	}else{
		if(((ITreeContentProvider) viewer.getContentProvider()).hasChildren(ProcessContentProvider.OTHER_PROCESSES)){
			viewer.expandToLevel(ProcessContentProvider.OTHER_PROCESSES, 1) ;
		}
	}
	
	WizardPageSupport.create(this,databindingContext) ;
	databindingContext.bindValue(ViewersObservables.observeSingleSelection(viewer), PojoObservables.observeValue(this, "selection"),startegy,null) ;


	
	setControl(mainComposite) ;
}