28. RCP Example: Good ol' RCP Code Snapshot of demo, give demo Need a status line and progress indicator public void preWindowOpen() { IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); configurer.setInitialSize(new Point(600, 400)); configurer.setShowCoolBar(true); configurer.setShowStatusLine(true); configurer.setShowProgressIndicator(true); } Define menus and locations for additions protected void fillMenuBar(IMenuManager menuBar) { ... MenuManager toolsMenu = new MenuManager("&Tools", M_TOOLS); toolsMenu.add(preferencesAction); toolsMenu.add(new Separator()); toolsMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); }
29. RCP Example: Menu Snapshot of demo, give demo Contribute the menu <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="menu:tools?after=additions" > <command commandId= "org.eclipse.equinox.p2.examples.rcp.cloud.command.update" mnemonic="%Update.command.mnemonic" id="org.eclipse.equinox.p2.examples.rcp.cloud.menu.update"> </command> </menuContribution> </extension>
30. RCP Example: Update Command Snapshot of demo, give demo Contribute the command and handler <extension point="org.eclipse.ui.commands"> <command name="%Update.command" id="org.eclipse.equinox.p2.examples.rcp.cloud.command.update"> </command> </extension> <extension point="org.eclipse.ui.handlers"> <handler commandId="org.eclipse.equinox.p2.examples.rcp.cloud.command.update" class="org.eclipse.equinox.p2.examples.rcp.cloud.p2.UpdateHandler"> </handler> </extension>
31.
32. RCP Example: Update Code Snapshot of demo, give demo The update code // create the update operation. The defaults are fine. UpdateOperation operation = getProvisioningUI().getUpdateOperation( null , null ); // check for updates operation.resolveModal( null ); if (UpdateSingleIUWizard. validFor (operation)) { // Special case for only updating a single root UpdateSingleIUWizard wizard = new UpdateSingleIUWizard(getProvisioningUI(), operation); WizardDialog dialog = new WizardDialog(getShell(), wizard); dialog.create(); dialog.open(); } else { // Open the normal version of the update wizard getProvisioningUI().openUpdateWizard( false , operation, null); }
33. RCP Example: Branding Metadata Snapshot of demo, give demo Define a document suitable for displaying in a browser that describes your update. Refer to it in the metadata. <unit id="org.eclipse.equinox.p2.examples.rcp.cloud.product" version="2.0.0.z201003162033"> <update id="org.eclipse.equinox.p2.examples.rcp.cloud.product" description="This update contains Mylyn Discovery!" range="0.0.0" severity="0" uri="file:/C:/_projects/eclipsecon2010/updatenotification.png" />
Mylyn is a task-focused interface for Eclipse that integrates task and bug tracking systems by making tasks a first class part of the IDE Connectors are needed to connect to different types of repositories such as Bugzilla or JIRA Ecosystem has grown from a handful connectors to 45
Go back to years to Ganymede Mylyn is part of most EPP distributions but only Bugzilla is included by default
Firefox extension install was the model for the workflow User should not be concerned with technical details of install No configuration of p2 repositories Branding Hosting of listing on the server
Amazing provisioning system available in Eclipse Ganymede shipped in June 2009 with Mylyn 3.2 and discovery Learned that there was a demand for extension install Adopted by Subversive and SpringSource Tool Suite Modelling package reduced size from 400 MB to 250 MB in Helios M6 using discovery Three different ways to use discovery
There is not always a need for a separate catalog and meta-data discovery if app has extensions No frills p2 UI Branding (icons) planned for M7
No need for users to know repository urls Harder to verify Based on extension point Entries can come from extension point registry or bundle
1. Download directory that points to bundles hard coded in client 2. Download bundles to parse extensions 3. Extentensions points to p2 repositories and IUs > Demo
This is what's needed to integrate discovery
This is what's needed to integrate discovery
Tasktop Training > Demo Mylyn: a Task Focused UI for Eclipse
Tasktop Training Integrate P2 wizards with Discovery Merge with p2 UIs? Drive needs by community demands Mylyn: a Task Focused UI for Eclipse