Panel Basics

The NeXtMidas panel is a Java AWT (Abstract Windowing Toolkit) panel that serves as a container to attach other NeXtMidas graphic primitives.

Graphical user interfaces, or GUIs (pronounced gooies), contain menus and prompts in addition to graphical objects. An excellent way to get acquainted with a NeXtMidas GUI is to use one. To start a NeXtMidas GUI demo, type DEMO at the NeXtMidas prompt.

The following subsections provide an overview of the NeXtMidas panel:

Macro Syntax

A PANEL primitive is executed in the piped section of a macro like other commands, or automatically with the PIPE ON command. The command:

pipe/panel on
is the same as:
pipe on
panel/msgid=main/setup

A PANEL primitive is a raw window with an interactive panelizer holding multiple panes. Each pane is given an entry in the registry for other primitives to draw into. By default, the registry entry for the table of window panes is REG.WIN. When graphical primitives start up, they look in REG.WIN for their ID, and draw there if they find it.

A graphical primitive with a /WIN= switch attempts to attach to the named object. A graphical primitive without a /WIN= switch looks in the REG.WIN table for an entry matching its /ID= value. If not found, it creates its own window frame.

In macro mode, the config file name is generated by replacing the extension on the macro file with .mmp (Midas Macro Panel). If /SETUP=XYZ is specified, the extension becomes .mmpXYZ, where XYZ is a user designated alternate setup. The default for /SETUP is "", which creates the extension .mmp.

Back to Top

Panel Margins

A PANEL has 4 fixed-size margins at the top, bottom, left, and right edges of the window. These regions, when not hidden, have a separator bar with an arrow to either hide or show the region. Dragging the separator bar enlarges or shrinks the region.

The regions display text no matter how small the PANEL is sized. The area inside the margins or borders are further separated by vertical or horizontal bars with margins or other bars as endpoints. These bars are created using the Configure-->Modify menus, and scale to the PANEL's size. Most data displays are placed in these regions.

To be used by a plotter, a region must have a PANE. Panes are added to any inner region defined by bars, or to a margin area for easy collapsing.

The panes in the panel are accessible through the PANES property table. This example sets the title on a pane named PANE1:

set REG.PANEL.PANES.PANE1.TITLE "My Title String"

Normally, each pane in the panel is named with the ID of the primitive to be displayed there. This is perfomed by the ATTACH menu item in the EDITPANE configuration option. All configuration items are accessed graphically and saved to a setup file for future use. See the panel's CONFIGURE menu item for more information.

Back to Top

Panel Configuration

To create the inner region bars and panes, enter the Configure-->Modify mode. When the mouse is over the point of interest, press the middle mouse button (MMB). A Cfg.Add menu appears with the following items:

  CANCEL - don't do anything here
  VLINE  - place a vertical bar between closest natural endpoints
  HLINE  - place a horizontal bar between closest natural endpoints
  VLINEX - place a vertical bar between margins
  HLINEX - place a horizontal bar between margins
  PANE   - add a pane in this region 
To configure a pane, press the MMB over the pane. Now you can set the title, text, size, and color; or, you can attach a primitive.

Back to Top

Auto Grid

In some applications, especially those with channelized data, a variable number of plots with equal size is desired.

If the /GRID={table} switch is present, an NxM grid of evenly spaced panes is generated regardless of the mmp file contents. The table entries are:

  NX    - number of panes in the horizontal direction
  NY    - number of panes in the vertical direction
  ID    - id + index is the pane id
  NAME  - name + index is the pane name
  TITLE - title + index is the pane title
  TS    - title size in pixels (=0 to supress) 

Back to Top

Placing Widgets

By default, any control widget created by the GCONTROL intrinsic in a macro is added to the collapsable control panel in the left margin of the PANEL. These widgets can be dragged into other margins or on top of other panes using the appropriate Configure menu options. Widgets not in the left margin are called by name in the saved .mmp setup file.

Groups are defined by the label widgets that precede them. If new controls need to be added to previously defined groups, use the GCONTROL/GRP= switch. Entire groups are rolled up/down or hidden with mouse clicks on the label or by setting the LABEL's action from the macro.

Any graphical control added to the panel using the WIDGET property is contained in a table that is accessed through the CONTROLS property. So, for a panel registry named PANEL, the value of a control widget named FREQ could be set with the following example line:

set REG.PANEL.CONTROLS.FREQ.value 1.33
It is a common practice to make a shorter reference to this table for easier coding:
  set gc REG.PANEL.CONTROLS    ! or use panel/controls=gc
  res gc.FREQ.value 1.33
  res gc.MAINMENU.item 1

Back to Top