Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 118974 Details for
Bug 244174
[CommonNavigator] Need API to toggle between projects and working set
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Example of how to properly use the properties (should work in 3.4)
WorkingSetTest.java (text/plain), 7.54 KB, created by
Francis Upton IV
on 2008-11-28 01:14:19 EST
(
hide
)
Description:
Example of how to properly use the properties (should work in 3.4)
Filename:
MIME Type:
Creator:
Francis Upton IV
Created:
2008-11-28 01:14:19 EST
Size:
7.54 KB
patch
obsolete
>/******************************************************************************* > * Copyright (c) 2008 Oakland Software Incorporated and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html > * > * Contributors: > * Oakland Software Incorporated - initial API and implementation > *******************************************************************************/ >package org.eclipse.ui.tests.navigator; > >import java.io.ByteArrayInputStream; > >import org.eclipse.core.resources.IFile; >import org.eclipse.core.resources.IProject; >import org.eclipse.core.resources.ResourcesPlugin; >import org.eclipse.core.runtime.IAdaptable; >import org.eclipse.jface.util.IPropertyChangeListener; >import org.eclipse.jface.util.PropertyChangeEvent; >import org.eclipse.swt.widgets.Display; >import org.eclipse.swt.widgets.TreeItem; >import org.eclipse.ui.IWorkbenchPage; >import org.eclipse.ui.IWorkbenchWindow; >import org.eclipse.ui.IWorkingSet; >import org.eclipse.ui.PlatformUI; >import org.eclipse.ui.actions.WorkingSetFilterActionGroup; >import org.eclipse.ui.internal.AggregateWorkingSet; >import org.eclipse.ui.internal.WorkingSet; >import org.eclipse.ui.internal.navigator.resources.actions.WorkingSetActionProvider; >import org.eclipse.ui.internal.navigator.workingsets.WorkingSetsContentProvider; >import org.eclipse.ui.navigator.IExtensionStateModel; >import org.eclipse.ui.navigator.INavigatorContentExtension; >import org.eclipse.ui.navigator.resources.ProjectExplorer; >import org.eclipse.ui.tests.navigator.util.TestWorkspace; > >public class WorkingSetTest extends NavigatorTestBase { > > public WorkingSetTest() { > _navigatorInstanceId = ProjectExplorer.VIEW_ID; > _initTestData = false; > } > > // Bug 157877 when using empty window working set, it should show all > public void testEmptyWindowWorkingSet() throws Exception { > TestWorkspace.init(); > > WorkingSetActionProvider provider = (WorkingSetActionProvider) TestAccessHelper > .getActionProvider(contentService, _actionService, > WorkingSetActionProvider.class); > > IWorkingSet workingSet = PlatformUI.getWorkbench() > .getActiveWorkbenchWindow().getActivePage() > .getAggregateWorkingSet(); > > // Set the filter to window working set (which should be empty) > IPropertyChangeListener l = provider.getFilterChangeListener(); > PropertyChangeEvent event = new PropertyChangeEvent(this, > WorkingSetFilterActionGroup.CHANGE_WORKING_SET, null, > workingSet); > l.propertyChange(event); > > TreeItem[] items = viewer.getTree().getItems(); > assertTrue("There should be some items.", items.length > 0); > } > > // Bug 212389 projects are not shown when they are not in the working set, > // but their children are > public void testMissingProjectsInWorkingSet() throws Exception { > > IProject p1 = ResourcesPlugin.getWorkspace().getRoot().getProject("p1"); > p1.create(null); > p1.open(null); > IFile f1 = p1.getFile("f1"); > f1.create(new ByteArrayInputStream(new byte[] {}), true, null); > > WorkingSetActionProvider provider = (WorkingSetActionProvider) TestAccessHelper > .getActionProvider(contentService, _actionService, > WorkingSetActionProvider.class); > > IWorkingSet workingSet = new WorkingSet("ws1", "ws1", > new IAdaptable[] { f1 }); > > AggregateWorkingSet agWorkingSet = new AggregateWorkingSet("AgWs", > "Ag Working Set", new IWorkingSet[] { workingSet }); > > IPropertyChangeListener l = provider.getFilterChangeListener(); > PropertyChangeEvent event = new PropertyChangeEvent(this, > WorkingSetFilterActionGroup.CHANGE_WORKING_SET, null, > agWorkingSet); > l.propertyChange(event); > > DisplayHelper.runEventLoop(Display.getCurrent(), 100); > > // DisplayHelper.sleep(Display.getCurrent(), 10000000); > > TreeItem[] items = viewer.getTree().getItems(); > // The bug is here where the first item is a IFile, not the enclosing > // project > assertTrue("First item needs to be project", items[0].getData().equals( > p1)); > } > > // bug 220090 test that working sets are shown when selected locally (not > // using the window working set) > public void testTopLevelWorkingSet() throws Exception { > > IProject p1 = ResourcesPlugin.getWorkspace().getRoot().getProject("p1"); > p1.create(null); > p1.open(null); > IFile f1 = p1.getFile("f1"); > f1.create(new ByteArrayInputStream(new byte[] {}), true, null); > > WorkingSetActionProvider provider = (WorkingSetActionProvider) TestAccessHelper > .getActionProvider(contentService, _actionService, > WorkingSetActionProvider.class); > > IExtensionStateModel extensionStateModel = contentService > .findStateModel(WorkingSetsContentProvider.EXTENSION_ID); > > extensionStateModel.setBooleanProperty( > WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS, true); > > IWorkingSet workingSet = new WorkingSet("ws1", "ws1", > new IAdaptable[] { p1 }); > > IPropertyChangeListener l = provider.getFilterChangeListener(); > PropertyChangeEvent event = new PropertyChangeEvent(this, > WorkingSetFilterActionGroup.CHANGE_WORKING_SET, null, > workingSet); > l.propertyChange(event); > > //DisplayHelper.sleep(Display.getCurrent(), 10000000); > > TreeItem[] items = viewer.getTree().getItems(); > // The bug is here where the first item is a IFile, not the enclosing > // project > assertTrue("First item needs to be working set", items[0].getData().equals( > workingSet)); > } > > // bug 244174 test property to switch back and forth between working sets > // as top level and not > public void testTopLevelChange() throws Exception { > > IProject p1 = ResourcesPlugin.getWorkspace().getRoot().getProject("p1"); > p1.create(null); > p1.open(null); > IFile f1 = p1.getFile("f1"); > f1.create(new ByteArrayInputStream(new byte[] {}), true, null); > > IExtensionStateModel extensionStateModel = contentService > .findStateModel(WorkingSetsContentProvider.EXTENSION_ID); > > // Force the content provider to be loaded so that it responds to the > // working set events > INavigatorContentExtension ce = > contentService.getContentExtensionById(WorkingSetsContentProvider.EXTENSION_ID); > ce.getContentProvider(); > > IWorkingSet workingSet = new WorkingSet("ws1", "ws1", > new IAdaptable[] { p1 }); > > WorkingSetActionProvider provider = (WorkingSetActionProvider) TestAccessHelper > .getActionProvider(contentService, _actionService, > WorkingSetActionProvider.class); > IPropertyChangeListener l = provider.getFilterChangeListener(); > PropertyChangeEvent event = new PropertyChangeEvent(this, > WorkingSetFilterActionGroup.CHANGE_WORKING_SET, null, > workingSet); > l.propertyChange(event); > > IWorkbenchWindow activeWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); > IWorkbenchPage activePage = activeWindow.getActivePage(); > activePage.setWorkingSets(new IWorkingSet[] {workingSet}); > > extensionStateModel.setBooleanProperty( > WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS, true); > viewer.refresh(); > > TreeItem[] items = viewer.getTree().getItems(); > > assertTrue("First item needs to be working set", items[0].getData().equals( > workingSet)); > > extensionStateModel.setBooleanProperty( > WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS, false); > viewer.refresh(); > > items = viewer.getTree().getItems(); > assertTrue("First item needs to be project", items[0].getData().equals( > p1)); > > extensionStateModel.setBooleanProperty( > WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS, true); > viewer.refresh(); > > items = viewer.getTree().getItems(); > assertTrue("First item needs to be working set", items[0].getData().equals( > workingSet)); > > } > > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 244174
: 118974