Connectivity Usability Ganymede
Connectivity Usability Changes for the Ganymede (DTP 1.6) Release
Over the course of the last three months, we've asked for feedback from the community about some of the proposed changes for DTP Connectivity to address some of the usability issues that have come up. We've received quite a bit of good feedback via Bugzilla, the Newsgroups, and the Mailing Lists. So a big thank you to everyone who provided feedback!
As we approach the DTP 1.6M7 milestone and now that we've had time to consider some of the feedback we received at EclipseCon 2008, I wanted to document "the plan" for what is going to make it into the DTP 1.6 release.
If you want to look at some of the prior discussion that has gone on, you can click here: Connectivity:Usability:High_Level_Design
So here's "the plan"...
I'm going to deliver these changes into the main code base unless I hear big opposition from anybody with detailed reasons why this isn't a good idea. These changes will require minimal work by adopters and I will make sure that it's as minimal as possible. But I believe the risk is well worth the reward in simplified usability for users and adopters.
Please leave comments in this bug: [BZ 225651 ]
You have until Friday, April 11 to submit comments. On Monday, April, 14, I will start delivering code into the DTP Ganymede code stream.
Part 1 -- The Driver Combo Box
For the past few releases (0.9, 1.0, and 1.5), the Driver Drop-down list has provided a simple combo box with a sorted list of all available drivers or a filtered list, and a "..." button that opens the Driver Definitions dialog (basically the Driver Definitions preference page hosted on a dialog), where users can create their own drivers, manipulate existing drivers, and so on.
The Ganymede version of the Driver Combo box makes the buttons to the right of the combo box a toolbar, which provides some nice functionality for free and easier addition of buttons in the future should we need them. There are two buttons:
- New Driver Definition (opens the new New/Edit Driver Definition dialog discussed later)
- Fast Driver (opens the new New/Edit Driver Definition dialog with the Generic JDBC template pre-selected)
The goal here it to simplify the tasks that people do on a regular basis. If someone wants to create a new driver, they shouldn't have to wade through a tree on a dialog and then go to another dialog to provide driver details. Or if someone simply wants to create a generic JDBC driver for some database, they shouldn't have to wade through that either. This gives users one click access to routine actions.
Part 2 -- The New Connection Profile Wizard
A minor change has already gone into the New Connection Profile wizard for Ganymede to allow each driver to have a custom UI. This simplifies the process for adopters greatly, as they can customize a driver UI and provide it via an extension point rather than totally revamping and extending existing new profile wizards to get it to look/work the way they want. Nothing prevents them from extending the wizards, but this is a mid-way point for a lower bar of access.
However, there was a call from the community to streamline the wizard to simplify creating new connection profiles. For example, the profile details page where users enter a name and description for their profile seems a step that could be combined elsewhere. Same for the auto-connect at startup option.
Profile Type Selection Page (Page 1 of New Connection Profile Wizard)
So we've combined the Name/Description page with the Profile Type selection page at the beginning of the wizard. This also allows us to provide a default name for the new profile that can then be edited in the case that a profile with that name already exists.
Also, at the top of this wizard there is a text box. This is similar to the text box on top of the preference dialog where you can filter which preference pages you see, allowing the user to simply filter the profile type they want... For example, typing "D" provides the following:
Profile Details Page (Page 2 of New Connection Profile Wizard)
And we've moved the Auto-connect checkboxes from the Name/Description page to the Details page.
Also, we've broken the "auto-connect" functionality into two separate parts. If the user wants to auto-connect every time the workbench is started, they can select "auto-connect at startup". If they want the profile to connect when they are done with the wizard, they can select "auto-connect at finish". And they can obviously click both. This gives them finer-grain control over when they actually want the profile to connect.
Profile Summary Page (Page 3 of New Connection Profile Wizard)
The profile summary page has not changed for this release. We debated adding the auto-connect checkboxes on the summary page, but have instead chosen to put them on the details page (page 2).
Part 3 -- The Driver Definitions Dialog and Preference Page
Creating a new Driver Definition has always been a bit clunky. The user goes through three dialogs from the old drop-down to create a driver on the fly. From the preference page, it's only two dialogs. But we've simplified to provide a more concise, shared UI that can be used to create new driver definitions or edit existing driver definitions.
New/Edit Driver Definition dialog
Instead of having to go through the pain of the Driver Definitions Dialog (which is basically just the Driver Preference page on a dialog), then select the driver template you want to create, click Add to bring up the New Driver Dialog, specify the name, click OK, which brings up the Edit Driver Dialog...
We've boiled the process down quite a bit.
1) If you want to see all the driver definitions that have been created and edit or delete them, you can go to the preference page.
2) If you want to create a new driver definition from the drivers combo box, you click the New Driver button and it opens this New Driver Dialog with the three tabs.
3) If you want to create a new Generic JDBC driver definition from the drivers combo box, you click that button and it brings up a slightly different version of this dialog with the Generic JDBC driver template pre-selected so you just fill in the bits and go from there.
4) If you want to edit a driver definition, you go to the preference page and click Edit, which opens the Edit version of the dialog.
So the first tab of the new dialog allows you to specify the type of driver you're creating and give it a name.
The second tab of the new dialog allows you to specify the locations of the jars. (Note that if a jar list is not required, this tab will not appear. Not really a case for JDBC database profiles, but is a case for other uses of drivers.)
And the third tab of the new dialog allows you to customize the properties for the driver definition.
Here's a screen shot of the dialog in "edit" mode.
New/Edit Driver Preferences
As noted earlier, managing the list of driver definitions falls to the driver preference page. Here is where you can:
- Add new driver definitions
- Edit existing driver definitions
- Duplicate existing driver defintions
- Delete existing driver definitions
The major difference between this version and previous versions is that we've gotten rid of the tree, which was painful to navigate, and replaced it with a table. The table has sortable columns and filter combo boxes at the top to allow you to narrow your focus.