Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Equinox/p2/User Interface"

< Equinox‎ | p2
(Milestone plan)
(Provisioning UI Overview)
Line 2: Line 2:
  
 
== Provisioning UI Overview ==
 
== Provisioning UI Overview ==
Work on the Equinox Provisioning UI is in the very early stages and is currently focused on building a UI that helps the team develop, test, and use the provisioning infrastructureThus the UI exposes the underlying infrastructure and associated terminology to the end user, which is definitely not the approach we expect to take for end users.
+
There are currently two flavors of provisioning UI under developmentTo complicate matters, you can configure your workspace to run both at the same time if you desire.
  
We call this user interface the "Admin UI," although this is a bit of a misnomer, since we are not building a UI focused on repository administrators or enterprise provisioning administrators.
+
* The end user UI appears as a new menu item '''Software Updates (Incubation)...''' in the help menu of your eclipse application.  To include this UI in your eclipse application, you want to include the plug-in '''org.eclipse.equinox.prov.ui.sdk''' in your launch.
 +
* The admin UI appears as either a perspective in your Eclipse launch, or as a stand-alone RCP app.  The intention of this UI is to help the team develop, test, and use the provisioning infrastructure.  Thus the UI exposes the underlying infrastructure and associated terminology to the end user, which is definitely not the approach we expect to take for end users.  To include this UI, you want to include the plug-in '''org.eclipse.equinox.prov.ui.admin''' in your launch, or else run the RCP version of the app using the launch in '''org.eclipse.equinox.prov.ui.admin.rcp'''.
  
For M1, the goal was to deliver a UI that allows early adopters to browse the infrastructure, and install/uninstall software into profiles.  After M1, work will continue on several fronts. 
 
* We will increase our focus on end-user workflows and defining a provisioning UI that can successfully replace the current Eclipse Update Manager UI. 
 
* The current UI will evolve as the API for provisioning evolves and as we add function for the team.  For example, you would likely see update functionality appear first in the admin UI so that the team can test it, followed by the "real" UI.
 
* We will be refactoring the UI so that common building blocks can be shared across different user interfaces for provisioning.
 
 
===Plugin Structure===
 
===Plugin Structure===
 
* '''org.eclipse.equinox.prov.ui''' contains code we think is useful for any SWT/JFace-based provisioning UI.
 
* '''org.eclipse.equinox.prov.ui''' contains code we think is useful for any SWT/JFace-based provisioning UI.
Line 30: Line 27:
 
*** separate the validation from presentation (forms vs. dialogs, error reporting, etc.)
 
*** separate the validation from presentation (forms vs. dialogs, error reporting, etc.)
 
** Automatic checking for available updates with pluggable notification style
 
** Automatic checking for available updates with pluggable notification style
 
=== Admin UI ===
 
The following items are planned for the current provisioning admin UI
 
* Install IU's from a profile rather than from repository view (this is also the first iteration for the SDK UI)
 
* Update IU's in a profile
 
* Evolve the current undo support to use the underlying engine history, not UI-level implementation
 
* General UI polish issues
 
** increased use of progress dialogs
 
** persisting user choices (view expansions, etc.)
 
** more flexible work flows (create a new profile from profile chooser, etc.)
 
  
 
=== Eclipse SDK UI ===
 
=== Eclipse SDK UI ===
Line 63: Line 50:
 
** Compare current installation to required one
 
** Compare current installation to required one
 
* User wants to return to some previously known state (rollback to a named state)
 
* User wants to return to some previously known state (rollback to a named state)
 +
 +
 +
=== Admin UI ===
 +
The following items are planned for the current provisioning admin UI
 +
* Install IU's from a profile rather than from repository view (this is also the first iteration for the SDK UI)
 +
* Update IU's in a profile
 +
* Evolve the current undo support to use the underlying engine history, not UI-level implementation
 +
* General UI polish issues
 +
** increased use of progress dialogs
 +
** persisting user choices (view expansions, etc.)
 +
** more flexible work flows (create a new profile from profile chooser, etc.)
  
 
== Milestone plan ==
 
== Milestone plan ==

Revision as of 12:57, 10 September 2007

Provisioning UI Overview

There are currently two flavors of provisioning UI under development. To complicate matters, you can configure your workspace to run both at the same time if you desire.

  • The end user UI appears as a new menu item Software Updates (Incubation)... in the help menu of your eclipse application. To include this UI in your eclipse application, you want to include the plug-in org.eclipse.equinox.prov.ui.sdk in your launch.
  • The admin UI appears as either a perspective in your Eclipse launch, or as a stand-alone RCP app. The intention of this UI is to help the team develop, test, and use the provisioning infrastructure. Thus the UI exposes the underlying infrastructure and associated terminology to the end user, which is definitely not the approach we expect to take for end users. To include this UI, you want to include the plug-in org.eclipse.equinox.prov.ui.admin in your launch, or else run the RCP version of the app using the launch in org.eclipse.equinox.prov.ui.admin.rcp.

Plugin Structure

  • org.eclipse.equinox.prov.ui contains code we think is useful for any SWT/JFace-based provisioning UI.
  • org.eclipse.equinox.prov.ui.sdk contains the update manager replacement UI. You'll see terminology such as "feature" and "site" used in this UI.
  • org.eclipse.equinox.prov.ui.admin is the current developer/administrator UI.
  • org.eclipse.equinox.prov.ui.rcp is an RCP application of the admin UI

Common UI Components

  • Content and label providers for showing provisioning objects in views
  • View filtering using engine query infrastructure
  • Widget groups for creating/editing provisioning objects
  • Common drag/drop adapters with pluggable prompting
  • Pluggable update and install UI
  • Issues not addressed yet
    • Easier pluggability of terminology and graphics for IU's, Profiles, Repos
    • Scalability issues - lazy content providers for repo access (iteration vs. collection)
    • consider UI forms vs. dialogs
    • Input validators for provisioning info
      • capabilities, touchpoint types, touchpoint data, version numbers, repo URL's
      • separate the validation from presentation (forms vs. dialogs, error reporting, etc.)
    • Automatic checking for available updates with pluggable notification style

Eclipse SDK UI

Different workflows will drive the development of this UI. The first priority is to deliver the equivalent functionality of the current Update Manager UI. Note that we are not saying we are solving all of these problems. Part of defining the workflow may be saying that we aren't addressing it yet.

  • User is looking for a specific software component to add to their environment
    • Simple install
      • user browses repositories for software to install/update
      • UI precomputes info such as required software, download size/time, etc
      • user accepts licenses, etc.
    • Install requires updating (or downgrading) of existing components
    • Conflicts arise in the requirements for various components
  • Software updating
    • User looks for updates of software already installed
    • User wants automatic checking/notification of available updates
    • Silent/automatic updating
  • User wants to remove a software component from their environment
    • Simple uninstall
    • Associated uninstall of required software
    • How much does the user care about complete rollback (downgrading components that were upgraded by an install, etc.)
  • User wants to know what software is available for download (browse, search by function or name, etc.)
  • User's environment is defined explicitly by someone external (administrator)
    • Upgrade or install to a new specification
    • Compare current installation to required one
  • User wants to return to some previously known state (rollback to a named state)


Admin UI

The following items are planned for the current provisioning admin UI

  • Install IU's from a profile rather than from repository view (this is also the first iteration for the SDK UI)
  • Update IU's in a profile
  • Evolve the current undo support to use the underlying engine history, not UI-level implementation
  • General UI polish issues
    • increased use of progress dialogs
    • persisting user choices (view expansions, etc.)
    • more flexible work flows (create a new profile from profile chooser, etc.)

Milestone plan

  • M2
    • Install, Uninstall, and/or update IU's from running profile
      • [done] user views installed IU's in the current profile
      • [done] user can manage repositories as an advanced feature (separate button on dialog)
        • [done] repositories are colocated (no distinction between metadata and artifact repo)
      • UI prequalifies the install
        • [done] figure out if the install is valid using oracle
        • use advanced oracle to flag any invalid states
        • use advanced oracle to precompute info such as download size/time, etc.
      • [done] user can uninstall an installed IU
      • user can update an installed IU
    • Repository naming (at the repo and user level)
    • [done] Better filtering of repos and IU's (show only what's relevant to end user)
    • [done] Refactor drag support into common UI project
    • Filtering of IU's based on entry point concept
      • Give the ability to name what is being installed

Additional Requirements

Here are some requirements that have surfaced so far. They are not added in a milestone plan yet.

  • Use engine query infrastructure for content providers rather than view filtering
  • Improved way to present licenses
  • Remember accepted licenses
  • Installation by drag and drop on a running eclipse
  • Automatic installation
  • Asynch/lightweight notification of need to update
  • Ability to defer the install (remind me later...)
  • Ability to update to a new version of a base and keep other plug-ins
  • Ability to install from other eclipse installs on the machine
  • Install from a click on the webpage
  • Silent installation
  • Support installation even when there are errors in the configuration
  • Admin/tooling
    • Repo management tools
    • Defining and persisting profiles for mass deployment to users

Past milestone plans

  • M1
    • Browse repositories
      • Add/remove repositories
      • Browse IU's in a metadata repository
      • Install IU from a metadata repository into a selected profile
    • Browse profiles
      • Add/remove profiles
      • Browse IU's in a profile
      • Uninstall IU

Back to the top