PDF Version Portrait Landscape

Help Did you spot something wrong or missing on this page? If you have an account on this TWiki, you can fix it yourself by editing the page. If you don't have an account, you can leave a message at the bottom of the page to tell us about it. Thank you in advance!

HIPE overview

This section explains the philosophy behind the framework and provides a brief overview of its fundamental elements. The aim is to enable you to make contributions to HIPE.


HIPE is a powerful data reduction environment, continually improved by dozens of contributors. It provides all the tools users need to download, view, reduce and analyse Herschel data. Moreover, it includes a powerful scripting editor and command line console. Most interactions with the graphical interface are echoed on the command line, so that you can generate scripts to automate your workflow.

HIPE embraces the following principles:

  • Tool integration, giving access to all data processing functionality in a unified graphical interface.
  • Single look-and-feel, where window layout, toolbars, buttons, and menus are alike.
  • Customisability, allowing you to decide which windows are relevant and how these windows are laid out on screen.
  • User guidance, including command-line echoing of main graphical functionality, allowing you to learn the scripting language while interacting with the system.
  • Extensibility, allowing developers to add new bells-and-whistles which are automatically integrated.

The application

HIPE is built-up from several graphical elements, of which the fundamental ones are shown in the following image:

Components of HIPE

Editor area

In the editor area you can do the following:

  • Editing and executing Jython scripts.
  • Running tasks via their graphical interface.
  • Viewing and modifying data (tables, products, images, spectra) via specialised tools.


Views are windows within HIPE, each with a specialised task (for instance, listing variables or displaying log messages). Look at the Window --> Show Views menu for a list of available views.

Some views, such as the Outline view, are extensible.


A perspective is a collection of related views. The views can be organised in tabbed panes and split panes.

Menus and toolbars

HIPE provides two types of menus and tool bars:

  • The main menu and toolbar provide access to global functionality as well as to the editor area.
  • A view's menu and toolbar provide access to functionality specific to that view.

The status bar

Elements appearing in the status bar at the bottom of the HIPE main window are defined in the __init.py__ file in the herschel.ia.gui.apps.views.status package. For instance, here is how the memory bar is registered:

REGISTRY.register(COMPONENT, Extension(
        "Memory Bar",

You an add a separator with the following syntax:

REGISTRY.register(COMPONENT, separator())

To add a component to the status bar, do the following:

  1. Create the appropriate Swing component. For example, the memory bar is a JProgressBar, the garbage collection button is a JButton, and so on.
  2. Register the new component by adding an entry to the __init.py__ file as shown above. You instantiate an Extension object with the following String arguments:
    • A unique name, like "Busy Job Progress Panel".
    • The component class, like "herschel.ia.gui.apps.views.status.BusyJobProgressPanel".
    • You can set the third and fourth argument to "factory.status" and "java.lang.Object", respectively.

To familiarise yourself with the internals of the HIPE status bar, we recommend you look at the __init.py__ file in the herschel.ia.gui.apps.views.status package and examine some of the classes for existing components.

Site events

Views communicate with each other by means of events. There are three elements to this mechanism:

  • The events, which must extend SiteEvent. Events signal that something has happened within the application, like a selection event, a variables changed event, and so on.
  • The event handler, provided to the views, for dispatching events.
  • The event listeners, which take action once an event occurs.

blog comments powered by Disqus

Edit | Attach | Watch | Print version | History: r26 < r25 < r24 < r23 < r22 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r26 - 2014-02-12 - AlvarGarcia
This site is powered by the TWiki collaboration platform Powered by Perl