EScope7: Integrating synchronized interaction in multiple windows
In the multiple panels provided by EScope6 graphical waveform interaction is performed individually in each panel. For example, when the crosshair is dragged over the waverorm(s) displayed in the current panel, the plots in the other panels are unaffected. In EScope7, crosshair dragging is made synchronized, i.e. when the crosshair is dragged along a waveform, thus defining the pair (x, y) of the current coordinates (displayed in the upper window), the crosshair is also moved accordingly (i.e. in correspondence of the same abscussavalue) over the waveforms displayed in the other windows. This option is very useful to discover relationships among the the plots representing the physical quantities acquired in an experiment, and is largely used in practice. It is also possible to define the same limits for the X and Y axis in all panels, via a popup menu activated over the targed panel.

The number of panel is configurable via the property file EScope.properties, which must reside in the work directory of EScope (i.e. the directory containing the file EScope7.java). The syntax of the property file is the following:

- num_columns = <tot number of columns> to define the total number of columns. For each column:
- column_<i>.num_rows = <number of panels in column i> were i ranges from 1 to the total number of columns.

Panels can be interactively resized by dragging the knobs displayed on the borders of every panel. Clicking the central mouse button over a vertical knob resizes all the columns to the same width. Clicking the central mouse button over a horizontal knob resizes all the panels of the same column to the same height.

Waveforms are added to the currently selected panel, indicated by a red border. To select a different panel it is necessary to click the right mouse button and click the popup option Select over the selected panel. Besides the select option, the popup menu provides the following options:

- All same X scale, which updates the abscissa limits in all displayed panels to eb equal to those of the currently selected panel
- All same scale, which updates both the abscissa and ordinate limits in all displayed panels to eb equal to those of the currently selected panel

This application defines three panels. At the left side, when a database is open, the hierarchical structure is displayed and it is possible to navigate in the tree. When a node containing a valid signal is clicked, the corresponding waveform is displayed in the selected panel. To add more than one waveform to the current panel it is necessary to select more than one node in the tree on the left panel. This is achieved "a la Windows" by holding the <ctrl> key when selecting tree nodes. Alternatively, a whole range of node can be defined by holding the <Shift key> when selecting tree nodes. The top panel displays the current (X, Y) pair when the crosshair display option is defined.

The File Menu Bar option allows to:

- connect to a MDSplus server. The default server and port is localhost and 8000, i.e. a MDSplus data server running locally on port 8000 (the default configuration)
- open an experiment and shot. The default experiment and port is edam and 17615, respectively. They correspond to a database which is provided by the installer.
- exit from the application

The Graph Menu Bar option activates a pop-up panel which allows to

- associte a separate color to the graph title, the background and the plot line.
- define whether a border is defined arould the signal plot
- define which algorithm to use for computing tick numbers.
- define the current waveform interaction :
  - drag a crosshair over the waveform,
  - zoom a portion of the waveform by dragging the mouse to define a rectangle of interest. When the mouse is released, the enlarged portion of the waveform is displayed
  - grab the entire waveform.
  A double click restores the default confition, i.e. the whole waveform matted into the display window.
  The changes are applied when either Ok or Apply button is pressed.

To exercise this program the following steps are required:

1. If not already running, start a MDSplus data server. On windows, click on start->programs->MDSplus->MDSDataserver. On Linux, run script start_mdsip.
2. Change directory in <source root>/escopes/escope7, where <source root> is the directory where you copied the source directory in the CD.
3. Include the current directory in your CLASSPATH environmante variable. On Windows this can be done by changing the CLASSPATH definition in Control Panel/System setting, or by the command
   set CLASSPATH=.;%CLASSPATH%
   On Linux (bash shell) this can be done by the command
   export CLASSPATH=.:$CLASSPATH
4. Compile the java source files with the command
   javac *.java
5. Run the program with no arguments.
   java EScope7

When the edam database is open, valid signals are listed in the SIGNALS.PB subtree.

View Source