plotSet overview

  

  The body of the plotSet tag is executed in the scope of plotter. The body can contain nested "style" tags, one plotSetBar tag, and one "region" tag.

  One must specify number of plots to be plotted:"nplots" or "plots" attribute.

"plots" is a list of IManagedObjects to be plotted. Each object from the list is plotted in a separate plotter region. 

  There are other optional plotSet attributes, with default values, e.g.:

        height = 400 or 200*nX (pixels)
        width  = 600 or 300*nY (pixels)
        format = "png"
        statusVar = "status" (name of the variable that keeps PlotSetStatus object with the current status of the loop: index, plots, ....)
        allowDownload  = "true"
        createImageMap = "false"
        maxPlots = "9" (maximum number of plots per page)
        layout = "" (plot layout, must be in the form of nX x nY)

       Default layout:
        n Plots     nX x nY
          n<2         1x1
          n=2         1x2
      3<=n<5        2x2
      5<=n<7        2x3
      7<=n<10       3x3

 PlotSetStatus object has the following properties:

nplots, maxplots, plotsinpage, index, offset, offsetvariable, plots

plotSet can also contain the plotSetBar tag with the following attributes:

        url - required (The page to link the navigation bar to)

        var = "href" (name of the variable that keeps PlotSetBarStatus object with the current status of the bar hrefs: first, previous, last, ....)

PlotSetBarStatus object has the following properties that are filled with hrefs:

defaultBar, first, previous, next, last, pages

  

Examples:

1. Very simple example - just plot using defaults

 <!-- plot set of IManagedObjects -->
<plotSet plots="${dataArray}" />

2. Set same style for all regions

<!--
    plot a set of IManagedObjects with a single
    plotter-level style
-->
<plotSet plots="${dataArray}">
    <style>
        .......
    </style>
</plotSet>

3. Set different styles for odd and even regions

<!--
    plot a set of IManagedObjects with a different
    region-level styles
-->
<plotSet statusVar="status">   <region>
    <c:choose>
        <c:when test="${status.index%2 == 0}">
            <style>
                .......
            </style>
        </c:when>
        <c:otherwise>
            <style>
                .......
            </style>
        </c:otherwise>
    </c:choose>   <plot var="${dataAray[status.index]}"/>   </region>
</plotSet>

4. Plot data with two overlays, each uses different style

<!--
    plot a set of IManagedObjects with overlays and
    individual data styles
-->
<plotSet statusVar="status">
    <style>
        .......
    </style>
   <region>
    <plot var="${dataArray1[status.index]}">
        <style>
            .......
        </style>
    </plot>
    <plot var="${dataArray2[status.index]}">
        <style>
            .......
        </style>
    </plot></region>
</plotSet>

5. Make regions clickable with unique href-s and styles

<!--
    plot a set of IManagedObjects with overlays.
    Make regions clickable and with unique styles.
    *** Seems that we need to set "href" by-hand, since tag
     *** itself knows only IManagedObjects, not paths to them
-->
<plotSet createImageMap="true" statusVar="status">
   <region title = "Region ${status.index}" href = .... >
       <plot var="${dataArray1[status.index]}">
           <style>
               .......
           </style>
       </plot>
       <plot var="${dataArray2[status.index]}">
           <style>
               .......
           </style>
       </plot>    </region>
</plotSet>
  • No labels

2 Comments

  1. Hi Victor, perhaps instead of having

    indexVar = "index"
    regionVar = "region"

    it would be simpler to have something like

    var="status"

    where status gets filled with a object with various getXXX() methods so one can refer to

    status.index
    status.region

    this would make it easier to add more properties as we find we need them.

  2. For you last example, I dont think you can have setters as you have, you would need something like an embedded region tag where you can say

    <region title="Region ${index}" href="..">

    Also presumably it should be possible to build a default image map, where clicking on an image would expand that image wihtout having to give explicit hrefs?