TWiki
>
Public Web
>
DpHipe
>
DpHipeOverview
(2014-02-12,
AlvarGarcia
)
(raw view)
E
dit
A
ttach
Tags:
create new tag
view all tags
<!-- ANALYTICS CODE - DO NOT EDIT --> %INCLUDE{"%ATTACHURL%/GoogleAnalytics.txt" raw="on"}% <!-- END OF ANALYTICS CODE --> <!-- * Set TOPICTITLE = HIPE overview --> | *PDF Version* | [[%SCRIPTURLPATH%/genpdf%SCRIPTSUFFIX%/%WEB%/%TOPIC%?pdforientation=portrait&pdftoclevels=2][Portrait]] | [[%SCRIPTURLPATH%/genpdf%SCRIPTSUFFIX%/%WEB%/%TOPIC%?pdforientation=landscape&pdftoclevels=2][Landscape]] | %ICON{"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 %STARTINCLUDE% <!-- summary --> 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. %STOPINCLUDE% %TOC% <!-- Some short-cuts * Set DRMROOT = http://herschel.esac.esa.int/hcss-doc-12.0/index.jsp#hcss_drm: * Set VIEWABLE = [[%DRMROOT%herschel.ia.gui.kernel.part.Viewable][Viewable]] --> ---++ Philosophy <blockquote> HIPE is a powerful data reduction environment, continually improved by dozens of [[DpHipeContributors][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. </blockquote> ---++ The application <blockquote> HIPE is built-up from several graphical elements, of which the fundamental ones are shown in the following image: <img src="%ATTACHURLPATH%/HipeComponents.png" align="CENTER" alt="Components of HIPE" width='559' height='385' /> <br clear="all" /> ---+++ Editor area <blockquote> 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. </blockquote> ---+++ Views <blockquote> [[DpHipeViews][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. </blockquote> ---+++ Perspectives <blockquote> A [[DpHipePerspectives][perspective]] is a collection of related views. The views can be organised in tabbed panes and split panes. </blockquote> ---+++ Menus and toolbars <blockquote> 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. </blockquote> ---+++ The status bar <blockquote> Elements appearing in the status bar at the bottom of the HIPE main window are defined in the ==__init.py__== file in the [[%DRMROOT%herschel.ia.gui.apps.views.status][herschel.ia.gui.apps.views.status]] package. For instance, here is how the memory bar is registered: <verbatim> REGISTRY.register(COMPONENT, Extension( "Memory Bar", "herschel.ia.gui.apps.views.status.MemoryBar", "factory.status", "java.lang.Object")) </verbatim> You an add a separator with the following syntax: <verbatim> REGISTRY.register(COMPONENT, separator()) </verbatim> To add a component to the status bar, do the following: 1. Create the appropriate Swing component. For example, the memory bar is a [[http://docs.oracle.com/javase/7/docs/api/index.html?javax/swing/JProgressBar.html][JProgressBar]], the garbage collection button is a [[http://docs.oracle.com/javase/7/docs/api/index.html?javax/swing/JButton.html][JButton]], and so on. 2. Register the new component by adding an entry to the ==__init.py__== file as shown above. You instantiate an [[%DRMROOT%herschel.ia.gui.kernel.Extension][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 [[%DRMROOT%herschel.ia.gui.apps.views.status][herschel.ia.gui.apps.views.status]] package and examine some of the classes for existing components. </blockquote> ---+++ Site events <blockquote> Views communicate with each other by means of events. There are three elements to this mechanism: * The _events_, which must extend [[%DRMROOT%herschel.ia.gui.kernel.SiteEvent][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. </blockquote> </blockquote> <hr/> <!-- COMMENT BOX CODE - DO NOT EDIT --> <div id="disqus_thread"></div> <script type="text/javascript"> var disqus_shortname = 'herscheltwiki'; // required: replace example with your forum shortname (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script> <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a> <!-- END OF COMMENT BOX CODE --> <hr/> <!-- * Set ALLOWTOPICCHANGE = Main.RegisteredUsersGroup, Main.TWikiAdminGroup -->
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r26
<
r25
<
r24
<
r23
<
r22
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r26 - 2014-02-12
-
AlvarGarcia
Public
Log In
Public Web
Create New Topic
Index
Search
Changes
Notifications
Statistics
Preferences
Webs
Public
TWiki