cornercorner
FeaturesPluginsDocs & SupportCommunityPartners
Author(s): Richard Gregor   | Started on: 02/11/02 | Last Updated: Wednesday , March 11, 2002

 

User Interface Specification:
Install Support

Author:  Richard Gregor

Document History

Current $revision : 1.16 $
History available in CVS
     

Table of Contents


    Introduction

So far, NetBeans provides installers only for Windows platform. It's the right time to support multiplatform installers and meet users expectation.

Also it is believed that installer is the right place to solve problems with upgrading of different versions of NetBeans.

          

    Overview of Functionality

    New install support will be multiplatform. There will be installers for:
       
           
    • AIX
    •      
    • OS/400
    •      
    • HP-UX
    •      
    • Linux
    •      
    • OS/2
    •      
    • Solaris
    •      
    • Win32
    •      
    • CIM
    •    
    Except classical installers there will be possibility to use install applet. Import settings support will be moved from first application startup to the install support.  
       

    Context

    Installers will be provided by NetBeans. They will be located on netbeans.org page. Install sources will be part of cvs install module. Installers will be automatically generated for each Q-build/Beta/RC/release.

    In release 3.4 ther will be only one type of install - typical. It will install IDE with default set of modules.
The installer should be designed for the ease of use of the following groups of users:
  • People who have an older version of NB, but want to upgrade to a  newer  release
  • People new to NetBeans but who have experience with another Java IDE
  • People new to NetBeans but who have experience with java on  the  command line
  • People new to Java
In spite of that we know that the our most active testers are members of the q-build program that we have to make the installer attractive for them in order to verify its functionality on wide range of system configurations.

Install

      Scenario 1 (shows Upgrade-Install Panel)

      1. user: downloads and runs the installer
      2. installer: shows installer window with Welcome Panel
      3. user: clicks next
      4. installer: detects previous version of product
      5. installer: shows Upgrade-Install Panel
      6. user: chooses Install option
      7. installer: shows Install Panel
      8. user: chooses not import settings from one of previous versions on list
      9. installer: shows Install Directory Panel
      10. user: clicks next (uses default install directory)
      11. installer: shows User Directory Panel
      12. user: agrees default value
      13. installer: shows Proxy Panel with default values parsed from  system environment (does it make sense to have it?)
      14. user: clicks next
      15. installer: shows Association Panel
      16. user: set to associate .java and .nbm files with the IDE
      17. installer: shows the Summary Panel
      18. user: clicks next to install product
      19. installer: shows Installation Progress Panel and installs the product
      20. installer: shows Installer Finish Panel
      21. users: finishes the installation     

    Scenario 1.1 (with settings import)

    1. user: chooses import settings and selects version in list
    2. installer: shows Install Directory Panel
    3. user: clicks next (uses default install directory)
    4. installer: shows User Directory Panel
    5. user: agrees default value
    6. installer: shows the Summary Panel
    7. user: clicks next to install product
    8. installer: shows Installation Progress Panel and installs the product
    9. installer: shows Installer Finish Panel
    10. users: finishes the installation

Scenario 2 (without Upgrade-Install Panel)

      1. installer: cannot detect previous version of product
      2. installer: shows Install Directory Panel
      3. user: clicks next (uses default install directory)
      4. installer: shows User Directory Panel
      5. user: agrees default value
      6. installer: shows Proxy Panel with default values parsed from system environment
      7. user: clicks next
      8. installer: shows User Directory Panel with default value
      9. user: agrees value - clicks next
      10. installer: shows Association Panel
      11. user: set to associate .java and .nbm files with the IDE
      12. installer: shows the Summary Panel
      13. user: clicks next to install product
      14. installer: shows Installation Progress Panel and installs the product
      15. installer: shows Installer Finish Panel
      16. users: finishes the installation


Upgrade

Scenario 

  1. user: downloads and runs the installer
  2. installer: shows installer window with Welcome Panel
  3. user: clicks next
  4. installer: detects previous version of product
  5. installer: shows Upgrade-Install Panel
  6. user: chooses Upgrade option
  7. installer: shows Upgrade Panel
  8. user: chooses previous version from list
  9. installer: shows the Summary Panel
  10. user: clicks next to install product
  11. installer: shows Installation Progress Panel and installs the product
  12. installer: shows Installer Finish Panel
  13. users: finishes the installation               

Possible upgrade situations(or what will detection mechanism add to the list)

The detection mechanism will fill the list in Upgrade Panel and Install Panel only with versions which have compatible modules. It compares modules versions and allows upgrade or import settings only if no installer's module is older than the ones used in user directory of certain version.

Possible upgrade situations (except another) are:

1. The user used a q-build version and he has downloaded new one - by default the installer should reuse the userdir of the most recent previous q-build version. In Upgrade Panel will be list of all installed q-builds. But the user will have option to do install and import settings.

2. The user used previous release (3.2) and he downloaded first q-build - by default the userdir should be copied to the new one so the old one will still be usable with previous release. Detection mechanism detect's previous version but
disables upgrade option and allows user only install new version and allows to import settings from  previous release.

3. The user used previous release, he also have few q-builds and he downloaded new release - by default the release should reuse the userdir from the previous release, ignoring the q-build changes at all. Detection mechanism will put only previous release (s) into list.

Delegation proposal (Yarda Tulach)

It is possible to replace the copy of settings by "delegation". That means when user installs a qa-build it automatically uses settings from the previous release, but keeps all modifications in separate private place. Compared to copying this has big advantage for users switching between q-build version and release version - changes made in release version are "propagated" to the q-build version. Should not this be used rather than copying?
                    

    System-Wide UI Impact

    Install support is separated part and doesn't have impact on global system UI, such as menus and toolbars. There could be discussion if will use default InstallShield look or if we use another one, for example if use NetBeans logo in left wizard area.

    Detailed Spec

Install support will be done in InstallShield     Multiplatform   environment. For installer is typical that it is wizard   like  window, with   collection of wizard panels.

State Diagram

This diagram shows basic installer panels flow.

diagram.jpg

    Welcome Panel

    At first the installer shows welcome panel with basic information about product.



The components of this panel are as follow:
  1. Welcome message.

Upgrade - Install Panel

Allows the user to choose wheter install or upgrade previous version of product.

yuck

The components of this panel are as follow:
  1. Upgrade and Install radio buttons
Visibility Condition: Installer detected at least one installed previous version of product.

Upgrade Panel

Allows the user to choose previous version and to keep previous  settings.

yuck

The components of this panel are as follow:
  1. Combo Box with list of compatible installed versions
  2. Check Box for keeping settings
Visibility Condition: User chose upgrade in previous panel

Install Panel

Allows the user to import previous settings.

The components of this panel are as follow:
  1. Check Box for settings import
  2. Combo Box with list of compatible installed version
Visibility Condition: User chose install in Upgrade - Install panel

Install Directory Panel

Allows the user to choose install directory.

     
The components of this panel are as follow:
  1. Directory name text field for install destination, default value is set.
  2. Browse button - brings up a file chooser that lets the user specify another install directory
Visibility Condition: Installer didn't detect any previous version of product or user chose install option in Upgrade-Install Panel.

User Directory Panel

Lets the user to set user directory server.

user dir

The components of this panel are as follow:
  1. Directory name text field for user directory destination, default value is set.
  2. Browse button - brings up a file chooser that lets the user specify another user directory.
Visibility Condition: Detection failed or user chose install option in Upgrade Install Panel.

Proxy Panel

Lets the user to set proxy server.
The components of this panel are as follow:
  1. Use Proxy Server checkbox
  2. Server Name text field
  3. Server Port text field
Visibility Condition:   User didn't check keep settings option in Upgrade-Install Panel or installer didn't detect any previous version.

Error Dialogs

InstallShield API provide support for error dialogs. Those dialogs are different beside standard swing dialogs. They look as follow:

Illegal characters in Port number

error1

Server empty

error2

Port empty

error3

Association Panel

Lets the user to set IDE associations.

The components of this panel are as follow:
  1. Association Description
  2. CheckFields - associate .java files and associate .nbm files
  Visibility Condition:  User didn't check keep settings option  in Upgrade-Install Panel or installer didn't detect any previous version.                                                                                                       

Installation Summary Panel

Shows summary to the user.

The components of this panel are as follow:
  1. Summary information like: Install Directory,  User Directory, Total Size, Associations (may be imported settings, preinstalled modules)  .

Installation Progress Panel

Shows install progress to the user.

    The components of this panel are as follow:

    1. Progress Bar - ltes the user know the status of installation, with status indicator
    2. Cancel buton - allows the user to cancel installation process

Installer Finish Panel

Says the user to be happy - installation has finished!
                       



Uninstaller Welcome Panel

yuck

Uninstaller Location Panel



Uninstaller Finish Panel