Community
Participate
Working Groups
One of the key challenges that we have had with Mylyn is making it easy for users to access the connectors that they need to use Mylyn. The connectors that we bundle have high adoption, but discovering and installing additional connectors has been painful, and bundling third party components is not an option. I propose that we take a similar approach to what WTP has done with enabling server discovery (screenshot attached). We can create a similar UI that uses a web-based listing of connectors or connector portals that have passed some kind of transparent approval process. The goal of this initiative will be to make it easy to get high quality connectors that help the growth and adoption of Mylyn into the hands of Mylyn users. The proposed approach is to closely follow both the UI and interaction style (e.g., license acceptance of the install) of WTP.
initial code contribution created in the sandbox
Created attachment 132534 [details] mylyn/context/zip
from Mik: > The main question I have is about the interaction for the install. Should > we use the checkbox style selection, or have "Install" and "90 day Trial" > type buttons like Firefox? This type of requirement might be difficult, since each connector presented in the UI represents a single installable unit. We will be using P2 to do the installation -- and there's no way that to tell P2 about options like that. The alternative is to allow for multiple mutually-exclusive features per connectorDescriptor. This would allow for multiple install buttons with different meaning. It's doable but is definitely a new requirement that we haven't yet discussed. > I guess either way we need to go with a checkbox > style model because we want to support multiple simultaneous installs? Not quite. Firefox uses such an interaction, showing selected items at the to of the dialog. Deselecting them is a matter of clicking the 'x' next to a selected item. To me the Firefox interaction style is a little less intuitive, and there is no precedent in other Eclipse UIs. Elsewhere in Eclipse a shuttle control is used. Personally I would prefer a checkbox if each connector can only be installed one way. If we go with multiple buttons as discussed above, then the Firefox interaction style may be better. > Is it easy enough to pop up the multiple licenses? That should be handled by P2.
Created attachment 132979 [details] _very_ preliminary draft of the UI
Created attachment 133476 [details] screenshot sequence a series of screenshots that show discovery and p2 in action
Created attachment 133477 [details] screenshot of discovery ui with filters
Created attachment 133478 [details] screenshot with no matching connectors
Maybe the filtering mechanism can be extended using an Extension point. Also it should be possible to have a combo element selector in addition to a checkbox. Use Case: for the generic SQL connector I would like to be able to search for ready made fragments for certain brand of database: example search for MySQ based connector fragments.
(In reply to comment #8) > Maybe the filtering mechanism can be extended using an Extension point. What would be the purpose of such an extension point? > Also it should be possible to have a combo element selector in addition to a checkbox. > Use Case: for the generic SQL connector I would like to be able to search for > ready made fragments for certain brand of database: example search for MySQ > based connector fragments. Can you elaborate on what you mean by "combo element selector" (do you mean a combo box?). What would be in the "combo element selector" and how do you see it working?
(In reply to comment #9) If you want to apply a filter I assume you want connectors to belong to some sort of category, because you will use the category to filter on. So the mechanism for categories and filtering on them should be extensible, because you will not be able to determine all categories beforehand. Maybe you may even want the filtering to be multidimensional (Free/Shareware/Commercial or based on license or for what system, etc) > What would be the purpose of such an extension point? Such an extension point would allow an already installed connector to contribute to the discovery filtering, so that when you have one part of a set of connectors (clearcase, or jira) you can by filtering discover the related connectors (clearquest, other atlassian stuff). In the instance of the generic SQL connector, you may search for extension fragments for particular database types, as these must include an appririate driver and config files. For the same reason I think that the Bugzilla connector Query Type Wizard should be extensible, so I can add my own custom type of bugzilla query that is far simpler for access to a company bugzilla. I will also do something like that in the generic SQL connector Query Type Wizard Page. > Can you elaborate on what you mean by "combo element selector" (do you mean a > combo box?). > What would be in the "combo element selector" and how do you see it working? Yes combo box is the SWT class. I need that so I can add a selector to search for connectors for MySQL database that are also free (see example above) , so instead of a checkbox for commercial/free I would pick from a combo.
David: This is looking great. I think it's all the UI we need for a first cut at a fully working versions.
(In reply to comment #10) One of the key goals of the discover UI is simplicity: it has to be easy to use and very, very simple. Excessive filtering options could prove intimidating for users, especially if they're novices. On the other hand, if the UI is too simple then it could make it unweildy to use as well, since too much scrolling/reading may be required for people to find what they need. These are conflicting requirements. I think that the current design is a good compromise for a first cut. Something that might achieve what you want without adding too much complexity to the UI is a simple search text field. The Eclipse preferences dialog is an example of such a search field. Would that serve your needs Maarten? Users would be able to type in 'MySQL' to find your connectors. I'd be interested to hear what others think about that idea.
(In reply to comment #11) > David: This is looking great. I think it's all the UI we need for a first cut at a fully working versions. Mik, sounds great. I'm going to hold off on doing more until we can sync up. Once we've done that I'll clean up the code, take care of NLS and add some more unit tests. It would be great to have a 'real' connector directory and at least one update site available for testing purposes.
David: Please do create a new bug for the search field, I think it's worth doing since we're expecting to support stores with a large number of listings. Please take the "Find" UI approach of the Task List rather than the "type filter text" approach that the Preferences dialog uses.
Hello, what is the plan for including 3rd party connectors on discovery site? If I would be interested in including my connector, what steps should I take? I understand that this is probably very early to ask, so I would just like to know if you have any plan here. I tried to create custom "discovery site" plugin, similar to org.eclipse.mylyn.discovery.site.trac, it works fine locally (modulo few minor problems) ... but obviously, I'd like to distribute it in the future ;-) Thank you very much, -Peter
A few style nits from a first review: - Code should be reformatted to pick up the project settings - Plug-in versions should changed to 3.2.0.qualifier - Bundle-name should not have a Plug-in postfix - Cleanup all source code warning (NON-NLS tags etc.) - The core sources should be internationalized or NON-NLS comments added - All uses of MessageFormat.format() need to be replaced by NLS.bind() - The test plug-in needs to be renamed to tests (we can do that when moving the plug-in out of the sandbox) - Unused NLS messages need to be cleaned up When I tried to use the discovery wizard installed into Eclipse 3.5M7 I noticed the following: - The Link did not show up in the Add Task Repository wizard. I might have broken that with my change for bug 275204, comment 13. I used Ctrl+3 to trigger the wizard directly. - After the install of the Trac connector finished only the feature ended up on disk but no plug-ins rendering the connector unusable. Installing the Trac connector through the standard P2 UI worked without any problems. - Trying install the already installed connector through the discovery wizard gave me a P2 error. We can review the UI in more details tomorrow. One thing I was missing is a Refresh button in the connector wizard (e.g. in case network was temporarily not available).
Thanks for the code review! Some comments below: (In reply to comment #16) > A few style nits from a first review: > - Code should be reformatted to pick up the project settings > - Plug-in versions should changed to 3.2.0.qualifier > - Bundle-name should not have a Plug-in postfix > - Cleanup all source code warning (NON-NLS tags etc.) > - The core sources should be internationalized or NON-NLS comments added Delay in externalizing strings, source formatting etc. was intentional to help keep things agile. After Tuesday's review it'll make sense to do that. > - All uses of MessageFormat.format() need to be replaced by NLS.bind() I only just discovered NLS.bind() today. Thanks for pointing that out! > - The test plug-in needs to be renamed to tests (we can do that when moving the > plug-in out of the sandbox) > - Unused NLS messages need to be cleaned up > > When I tried to use the discovery wizard installed into Eclipse 3.5M7 I noticed > the following: > - The Link did not show up in the Add Task Repository wizard. I might have > broken that with my change for bug 275204, comment 13. I used Ctrl+3 to trigger > the wizard directly. Yes, that code that was commented out is important. Fixed in CVS. > - After the install of the Trac connector finished only the feature ended up on > disk but no plug-ins rendering the connector unusable. Installing the Trac > connector through the standard P2 UI worked without any problems. That's disappointing. You weren't self-hosting were you? Perhaps Rob could shed some light. BTW, what do you mean when you say 'unusable'? > - Trying install the already installed connector through the discovery wizard > gave me a P2 error. Perhaps we should be filtering already-installed bundles from the UI. > We can review the UI in more details tomorrow. One thing I was missing is a > Refresh button in the connector wizard (e.g. in case network was temporarily not > available). Agreed Thanks again for the detailed code review.
> > - After the install of the Trac connector finished only the feature ended up > on > > disk but no plug-ins rendering the connector unusable. Installing the Trac > > connector through the standard P2 UI worked without any problems. > > That's disappointing. You weren't self-hosting were you? Perhaps Rob could > shed some light. > BTW, what do you mean when you say 'unusable'? I was using Eclipse 3.5M7 with discovery plug-ins in the dropins folder that I had manually exported from my workspace. Since the wizard installed no plug-ins (only the feature) the Trac connector did not load.
I seem to recall something similar happening when the metadata repo is loaded but not the artifact repository. The fact that the features got installed though seems to indicate a slightly different problem so I'll need to investigate this further.
Just having looked at the source, the MatchQuery.isMatch code in InstallConnectorsJob looks suspect. Are we getting the full group of IUs for the feature or just the feature themselves here? Might want to set a break point in there to see what is getting collected.
(In reply to comment #15) > what is the plan for including 3rd party connectors on discovery site? If I > would be interested in including my connector, what steps should I take? I > understand that this is probably very early to ask, so I would just like to know > if you have any plan here. Peter: We are in the process of figuring out the policy, which will boil down to a compromise between making it easy to get working connectors and ensuring that we don't overly burden the Mylyn project with support issues for third party connectors. We will be discussing it on this Thursday's Mylyn call and should have more information for you next week.
David: Here are the notes that Steffen collected during our UI review. Please turn these into bugs as needed. h3. UI Review h4. Add Task Repository wizard: * Convert link to button with icon and move to the left * Capital case download more connectors h4. Connector Discovery wizard: * Only show tooltip when hovering over additional question mark icon * Use gradient for background of tooltip * Change layout of tooltip to text left, image right: size 640x240+ padding * Add Learn More link on the bottom right corner of the tooltip * Remove More Information link to table * Use gradient to distinguish categories in table (polish) * Limit length of description (polish) * Connector list flickers when categories are toggled, consider hiding instead of re-creating controls * Blank space at the end of the connectors list * Keyboard navigation doesn't work on Mac * Ensure focus control is always visible in connector list * Hide installed features * Add context sensitive help * Make wizard taller * Add "Find" label to search, move search box on same line as category check boxes * Categories: Tasks, Documents, Version Control * Detailed description for categories should be in tooltip * Add policy for declaring categories h4. Download * Jars are located on Eclipse download mirrors * Retry download once to recover from mirror failure * Rename directory to directory.xml * Check for content.jar on update site, disable installs for unavailable connectors * Add capability (Mik's note: Not sure if this is needed?) h4. Needed Icons: * Download button icon * Wizard banner icon
(In reply to comment #22) > David: Here are the notes that Steffen collected during our UI review. Please > turn these into bugs as needed. Excellent, done. Nice usage of Textile markup, btw. > * Add capability (Mik's note: Not sure if this is needed?) What do you mean by 'Add capability'?
> > * Add capability (Mik's note: Not sure if this is needed?) > > What do you mean by 'Add capability'? I am not sure. It is probably an incomplete sentence for the feature covered on bug 276231.
(In reply to comment #24) > > > * Add capability (Mik's note: Not sure if this is needed?) > > > > What do you mean by 'Add capability'? > > I am not sure. It is probably an incomplete sentence for the feature covered on > bug 276231. Could this be the actual capabilities provided by eclipse (e.g. o.e.m.capability plugin)?
> Could this be the actual capabilities provided by eclipse (e.g. o.e.m.capability > plugin)? No that should be already covered by our current capabilities.
(In reply to comment #23) > Excellent, done. Nice usage of Textile markup, btw. And I was annoyed because the line break from pasting plain text broke my formatting ;) > > * Add capability (Mik's note: Not sure if this is needed?) > > What do you mean by 'Add capability'? I didn't know what it meant either, so let's just ignore it.
Quick UI review from call: * Put license string in light and small text to the right of the name * Try to right-align the question mark, give it a tooltip called "Show Overview"
David, I just took a quick pass through the UI and here are some small nits to fix. * When the initial download is happening, could you change the message to say something about the connection being made? I.e.: "Retrieving listing from eclipse.org" * Button in "Add Task Repository" wizard: "Install More Connectors..." * Dialog shell: "Install Connectors" * Dialog title: "Mylyn Connector Discover" * Dialog description: "Click the question mark for a popup description and link for more information. Clicking Finish will open the install wizard."
(In reply to comment #29) done. > * Dialog description: "Click the question mark for a popup description and link > for more information. Clicking Finish will open the install wizard." 'question mark' will be confusing to the user since the help button also displays a question mark. Also we talked about providing an (i) information image instead of a question mark. How about something like this: "Select connectors to install. Press Finish to proceed with installation. Press the information button to see a detailed overview and a link to more information."
Created attachment 137250 [details] mylyn/context/zip
Yup, your text is better so use that.
David: One issue we're currently seeing is that the "Community" listing is ranked first, above the Eclipse.org listing. Do we have a bug for adding a "rank" attribute that breaks alphabetical sorting accordingly? I think that's the top outstanding priority now.
I have specified relevances for the categories which should fix the sorting.
Excellent. I'll try to update the listing now.
Great work on this David! I have removed and rescheduled the unresolved subtasks since we are past the commit window for this release. Please mark as resolved if we are done here so we can complete the last plan item :).
Great work David!
Thanks! As usual, a team effort. Great work on everyone's part.