下面列出了怎么用org.eclipse.ui.navigator.CommonNavigator的API类实例代码及写法,或者点击链接到github查看源代码。
public static void expandConnection(CodewindConnection connection) {
if (connection == null) {
return;
}
List<CodewindApplication> apps = connection.getApps();
if (!apps.isEmpty()) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
IViewPart view = getViewPart(CodewindExplorerView.VIEW_ID);
if (view instanceof CommonNavigator) {
CommonViewer viewer = ((CommonNavigator)view).getCommonViewer();
if (!viewer.getExpandedState(connection)) {
viewer.expandToLevel(AbstractTreeViewer.ALL_LEVELS);
}
}
}
});
}
}
public static void toggleExpansion(Object element) {
final Object obj = element == null ? CodewindManager.getManager() : element;
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
IViewPart view = getViewPart(CodewindExplorerView.VIEW_ID);
if (view instanceof CommonNavigator) {
CommonViewer viewer = ((CommonNavigator)view).getCommonViewer();
if (!viewer.getExpandedState(obj)) {
viewer.expandToLevel(obj, AbstractTreeViewer.ALL_LEVELS);
} else {
viewer.collapseToLevel(obj, AbstractTreeViewer.ALL_LEVELS);
}
}
}
});
}
public static void refreshNavigatorView(String viewId, Object element) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
IViewPart part = getViewPart(viewId);
if (part != null) {
if (part instanceof CommonNavigator) {
CommonNavigator v = (CommonNavigator) part;
v.getCommonViewer().refresh(element);
v.getCommonViewer().expandToLevel(element, AbstractTreeViewer.ALL_LEVELS);
}
}
}
});
}
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (null == activeWorkbenchWindow) {
return null;
}
IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
if (null == activePage) {
return null;
}
IWorkbenchPart activePart = activePage.getActivePart();
if (!(activePart instanceof CommonNavigator)) {
return null;
}
CommonNavigator navigator = (CommonNavigator) activePart;
CommonViewer commonViewer = navigator.getCommonViewer();
Tree navigatorTree = commonViewer.getTree();
List<TreeItem> visibleItems = new ArrayList<>();
collectChildren(navigatorTree.getItems(), visibleItems);
List<Object> visibleData = visibleItems.stream().map(i -> i.getData()).collect(Collectors.toList());
commonViewer.setSelection(new StructuredSelection(visibleData), false);
return null;
}
@Override
public void setActivePart(IAction action, IWorkbenchPart targetPart) {
if (targetPart instanceof CommonNavigator) {
navigator = (CommonNavigator) targetPart;
useSpecificPattern = action.getId().startsWith("de.tobject.findbugs.filterSpecificPattern");
}
}
/**
* Finds the CommonNavigatorViewer by name
* @param navigatorViewId
* @return
*/
private static CommonNavigator findCommonNavigator(String navigatorViewId)
{
IWorkbenchPage page = UIHelper.getActivePage();
if (page != null)
{
IViewPart findView = UIHelper.getActivePage().findView(navigatorViewId);
if (findView != null && findView instanceof CommonNavigator)
{
return ((CommonNavigator) findView);
}
}
return null;
}
/**
* Retrieves the current viewer if any
* @return the instance of common viewer or <code>null</code>
*/
public static CommonViewer getViewer()
{
CommonNavigator navigator = findCommonNavigator(ToolboxExplorer.VIEW_ID);
if (navigator != null)
{
final CommonViewer commonViewer = navigator.getCommonViewer();
commonViewer.setAutoExpandLevel(DEFAULT_EXPAND_LEVEL);
return commonViewer;
}
return null;
}
/**
* Refresh the common navigator viewer starting with this element. Does not
* refresh the model.
*
* @since 3.1
*/
public void refreshViewer() {
Display.getDefault().asyncExec(() -> {
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchWindow wbWindow = wb.getActiveWorkbenchWindow();
if (wbWindow == null) {
return;
}
IWorkbenchPage activePage = wbWindow.getActivePage();
if (activePage == null) {
return;
}
for (IViewReference viewReference : activePage.getViewReferences()) {
IViewPart viewPart = viewReference.getView(false);
if (viewPart instanceof CommonNavigator) {
CommonViewer commonViewer = ((CommonNavigator) viewPart).getCommonViewer();
Object element = TmfProjectModelElement.this;
if (element instanceof TmfProjectElement) {
IProject project = (IProject) getResource();
if (project != null && !TmfProjectModelHelper.isShadowProject(project)) {
// for the project element the viewer uses the IProject resource
element = getResource();
}
}
commonViewer.refresh(element);
}
}
});
}
/**
* 当程序第一次运行时(或是重新换了命名空间),设置项目视图的 link with editor 按钮处于选中状态
* robert 2013-01-04
*/
private void setInitLinkEnable(){
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
boolean isInitialRun = !store.getBoolean(IPreferenceConstants.INITIAL_RUN);
if (isInitialRun) {
IViewPart navigator = getWindowConfigurer().getWindow().getActivePage().findView("net.heartsome.cat.common.ui.navigator.view");
CommonNavigator commonNavigator = (CommonNavigator) navigator;
commonNavigator.setLinkingEnabled(true);
store.setValue(IPreferenceConstants.INITIAL_RUN, true);
}
}
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adaptableObject instanceof ProjectExplorer) {
if (IPropertySheetPage.class == adapterType)
return new TabbedPropertySheetPage(
new TabbedPropertySheetProjectExplorerContributor(
(CommonNavigator) adaptableObject));
}
return null;
}
/**
* 当程序第一次运行时(或是重新换了命名空间),设置项目视图的 link with editor 按钮处于选中状态
* robert 2013-01-04
*/
private void setInitLinkEnable(){
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
boolean isInitialRun = !store.getBoolean(IPreferenceConstants.INITIAL_RUN);
if (isInitialRun) {
IViewPart navigator = getWindowConfigurer().getWindow().getActivePage().findView("net.heartsome.cat.common.ui.navigator.view");
System.out.println("navigator.getViewSite() = " + navigator.getViewSite());
CommonNavigator commonNavigator = (CommonNavigator) navigator;
commonNavigator.setLinkingEnabled(true);
store.setValue(IPreferenceConstants.INITIAL_RUN, true);
}
}
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adaptableObject instanceof ProjectExplorer) {
if (IPropertySheetPage.class == adapterType)
return new TabbedPropertySheetPage(
new TabbedPropertySheetProjectExplorerContributor(
(CommonNavigator) adaptableObject));
}
return null;
}
@Override
public List<StructuredViewer> getViewers() {
List<StructuredViewer> viewers = new ArrayList<StructuredViewer>();
IViewPart view = super.getPartForAction();
if (view instanceof CommonNavigator) {
CommonNavigator navigator = (CommonNavigator) view;
viewers.add(navigator.getCommonViewer());
}
return viewers;
}
@Override
public void init(IViewPart view) {
if (view instanceof CommonNavigator) {
navigator = (CommonNavigator) view;
}
}
@Override
public void init(IViewPart view) {
if (view instanceof CommonNavigator) {
navigator = (CommonNavigator) view;
}
}
@Override
public void init(IViewPart view) {
if (view instanceof CommonNavigator) {
navigator = (CommonNavigator) view;
}
}
@Override
public void init(IViewPart view) {
if (view instanceof CommonNavigator) {
navigator = (CommonNavigator) view;
}
}
@Override
public void init(IViewPart view) {
if (view instanceof CommonNavigator) {
navigator = (CommonNavigator) view;
}
}
protected TabbedPropertySheetProjectExplorerContributor(CommonNavigator aCommonNavigator) {
contributorId = aCommonNavigator.getViewSite().getId();
}
protected TabbedPropertySheetProjectExplorerContributor(CommonNavigator aCommonNavigator) {
contributorId = aCommonNavigator.getViewSite().getId();
}