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 8911 Details for
Bug 37681
[plan item] Improve support for opening workspaces
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
Sample code for switching workspaces
SampleAction.java (text/plain), 3.10 KB, created by
Jeff McAffer
on 2004-03-26 11:04:18 EST
(
hide
)
Description:
Sample code for switching workspaces
Filename:
MIME Type:
Creator:
Jeff McAffer
Created:
2004-03-26 11:04:18 EST
Size:
3.10 KB
patch
obsolete
>package openworkspace.actions; > >import org.eclipse.jface.action.IAction; >import org.eclipse.jface.viewers.ISelection; >import org.eclipse.swt.widgets.DirectoryDialog; >import org.eclipse.ui.IWorkbenchWindow; >import org.eclipse.ui.IWorkbenchWindowActionDelegate; > >/** > * Our sample action implements workbench action delegate. > * The action proxy will be created by the workbench and > * shown in the UI. When the user tries to use the action, > * this delegate will be created and execution will be > * delegated to it. > * @see IWorkbenchWindowActionDelegate > */ >public class SampleAction implements IWorkbenchWindowActionDelegate { > private IWorkbenchWindow window; > > private static final String PROP_VM = "eclipse.vm"; //$NON-NLS-1$ > private static final String PROP_VMARGS = "eclipse.vmargs"; //$NON-NLS-1$ > private static final String PROP_COMMANDS = "eclipse.commands"; //$NON-NLS-1$ >/** > * The constructor. > */ > public SampleAction() { > } > > /** > * The action has been activated. The argument of the > * method represents the 'real' action sitting > * in the workbench UI. > * @see IWorkbenchWindowActionDelegate#run > */ > public void run(IAction action) { > String path = new DirectoryDialog(window.getShell()).open(); > if (path == null) > return; > String command = buildCommandLine("-data", path); > System.setProperty("eclipse.exitcode", Integer.toString(24)); > System.setProperty("eclipse.exitdata", command); > window.getWorkbench().restart(); > } > > private String buildCommandLine(String arg, String value) { > StringBuffer result = new StringBuffer(300); > String entry = System.getProperty(PROP_VM); > if (entry == null) > return null; > result.append(entry ); > result.append('\n'); > // append the vmargs and commands. Assume that these already end in \n > entry = System.getProperty(PROP_VMARGS); > if (entry != null) > result.append(entry); > entry = System.getProperty(PROP_COMMANDS); > if (entry != null) { > entry = "\n" + entry; > int i = entry.indexOf("\n" + arg + "\n"); > if (i == -1) > entry = arg + "\n" + value + entry; > else { > i += arg.length() + 2; > // skip the leading \n > String left = entry.substring(1, i); > int j = entry.indexOf('\n', i); > String right = entry.substring(j); > entry = left + value + right; > } > result.append(entry); > } > return result.toString(); > } > > /** > * Selection in the workbench has been changed. We > * can change the state of the 'real' action here > * if we want, but this can only happen after > * the delegate has been created. > * @see IWorkbenchWindowActionDelegate#selectionChanged > */ > public void selectionChanged(IAction action, ISelection selection) { > } > > /** > * We can use this method to dispose of any system > * resources we previously allocated. > * @see IWorkbenchWindowActionDelegate#dispose > */ > public void dispose() { > } > > /** > * We will cache window object in order to > * be able to provide parent shell for the message dialog. > * @see IWorkbenchWindowActionDelegate#init > */ > public void init(IWorkbenchWindow window) { > this.window = window; > } >}
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 37681
: 8911