gov.noaa.pmel.sgt.beans
Class PanelModel

java.lang.Object
  extended by gov.noaa.pmel.sgt.beans.PanelModel
All Implemented Interfaces:
java.awt.event.ComponentListener, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.swing.event.ChangeListener

public class PanelModel
extends java.lang.Object
implements java.io.Serializable, javax.swing.event.ChangeListener, java.awt.event.ComponentListener, java.beans.PropertyChangeListener

A model that supports the Panel structure of a Plot. Information includes the DataGroups and LayerChildren that are included in a Panel. A Panel consist of several Layers, at least one for each DataGroup.

The layout of the Panels will eventually be accomplished using the SpringLayout. This will provide a flexible and easy method to position the Panels in arbitrary positions. Currently the Panels are positioned in absolution location.

Some classes have been omitted for display purposes.

Since:
3.0
Version:
$Revision$, $Date$
Author:
Donald Denbo
See Also:
Serialized Form

Constructor Summary
PanelModel()
          PanelModel constructor.
 
Method Summary
 void addChangeListener(javax.swing.event.ChangeListener l)
          Add changelistener
 void addPanel(PanelHolder ph)
          Add a PanelHolder to PanelModel.
 void addPanel(java.lang.String id, java.awt.Rectangle bounds, java.util.Map labels, java.util.Map dataGroups, java.util.Map legends)
          Create a new Panel and add to PanelModel.
 void addPropertyChangeListener(java.beans.PropertyChangeListener l)
          Add property change listener.
 void addPropertyChangeListener(java.lang.String name, java.beans.PropertyChangeListener l)
          Listen for specific property change.
 void componentHidden(java.awt.event.ComponentEvent e)
          Unused.
 void componentMoved(java.awt.event.ComponentEvent e)
          Unused.
 void componentResized(java.awt.event.ComponentEvent e)
          Listener to update Page size if it changes.
 void componentShown(java.awt.event.ComponentEvent e)
          Unused.
 PanelHolder findPanelHolder(java.lang.String id)
          Find the PanelHolder from its identifier.
protected  void fireStateChanged()
           
 float getDpi()
          Get dots per inch value.
 Page getPage()
          Get Page parent
 java.awt.Color getPageBackgroundColor()
          Get the background color for Page.
 java.awt.Dimension getPageSize()
          Get Page size.
 int getPanelCount()
          Get number of PanelHolder objects in Map.
 java.util.Map getPanelList()
          Get Map containing PanelHolder objects.
 int getPrintHAlign()
          Get horizontal alignment for printing.
 java.awt.Point getPrintOrigin()
          Get page origin for printing.
 int getPrintScaleMode()
          Get printing scale mode.
 int getPrintVAlign()
          Get vertical alignment for printing.
 boolean hasPanelHolder(java.lang.String id)
          Does the PanelModel contain this PanelHolder?
 boolean isBatch()
          Is batching turned on?
 boolean isPrintBorders()
          Print borders?
 boolean isPrintWhitePage()
          Print with white background?
static PanelModel loadFromXML(java.io.InputStream is)
          Create a new PanelModel from an object serialized using XMLEncoder.
 java.util.Iterator panelIterator()
          Get Iterator of PanelHolder objects.
 void propertyChange(java.beans.PropertyChangeEvent evt)
           
 void removeChangeListener(javax.swing.event.ChangeListener l)
          Remove changelistener.
 void removeDesignChangeListeners()
          Remove all ChangeListeners that implement the DesignListener interface.
 void removePanel(PanelHolder ph)
          Remove Panel from PanelModel.
 void removePropertyChangeListener(java.beans.PropertyChangeListener l)
          Remove property change listener.
 void removePropertyChangeListener(java.lang.String name, java.beans.PropertyChangeListener l)
          Remove specific property change listener
 void saveToXML(java.io.OutputStream os)
          Save PanelModel and its supporting classes as a XML stream using the XMLEncoder.
 void setBatch(boolean batch)
          Set batching for changes to PanelModel.
 void setDpi(float dpi)
          Set dots per inch.
 void setPage(Page page)
          Set Page parent.
 void setPageBackgroundColor(java.awt.Color pageBackgroundColor)
          Set Page background color.
 void setPageSize(java.awt.Dimension pageSize)
          Set Page size.
 void setPanelList(java.util.Map panelList)
          Set PanelHolder Map.
 void setPrintBorders(boolean printBorders)
          Set the print borders property.
 void setPrintHAlign(int printHAlign)
          Set horizontal alignment for printing.
 void setPrintOrigin(java.awt.Point printOrigin)
          Set page origin for printing.
 void setPrintScaleMode(int mode)
          Set printing scale mode.
 void setPrintVAlign(int printVAlign)
          Set vertical alignment for printing.
 void setPrintWhitePage(boolean printWhitePage)
          Set the print on white background property.
 void stateChanged(javax.swing.event.ChangeEvent e)
          ChangeListner callback.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PanelModel

public PanelModel()
PanelModel constructor.

Method Detail

loadFromXML

public static PanelModel loadFromXML(java.io.InputStream is)
                              throws java.io.InvalidObjectException
Create a new PanelModel from an object serialized using XMLEncoder. For example,
   PanelModel pModel;
   Page page = new Page();
       try {
    pModel = PanelModel.loadFromXML(new BufferedInputStream(
                       new FileInputStream(outpath)));
    page.setPanelModel(pModel);
  } catch (FileNotFoundException fnfe) {
    JOptionPane.showMessageDialog(this, "Error openning file",
                                  "File Open Error", JOptionPane.ERROR_MESSAGE);
  } catch (InvalidObjectException ioe) {
    JOptionPane.showMessageDialog(this, "File does not contain a PanelModel",
                                  "PanelModel Not Found",
                                  JOptionPane.ERROR_MESSAGE);
  }

 

Parameters:
is - InputStream
Returns:
PanelModel object
Throws:
java.io.InvalidObjectException
See Also:
XMLEncoder

saveToXML

public void saveToXML(java.io.OutputStream os)
Save PanelModel and its supporting classes as a XML stream using the XMLEncoder.

Parameters:
os - OutputStream

addPanel

public void addPanel(java.lang.String id,
                     java.awt.Rectangle bounds,
                     java.util.Map labels,
                     java.util.Map dataGroups,
                     java.util.Map legends)
Create a new Panel and add to PanelModel.

Parameters:
id - Panel identifier
bounds - bounds of Panel
labels - Label Map
dataGroups - DataGroup Map
legends - Legend Map

addPanel

public void addPanel(PanelHolder ph)
Add a PanelHolder to PanelModel.

Parameters:
ph - PanelHolder

removePanel

public void removePanel(PanelHolder ph)
Remove Panel from PanelModel.

Parameters:
ph - PanelHolder

panelIterator

public java.util.Iterator panelIterator()
Get Iterator of PanelHolder objects.

Returns:
Iterator

getPanelCount

public int getPanelCount()
Get number of PanelHolder objects in Map.

Returns:
count

hasPanelHolder

public boolean hasPanelHolder(java.lang.String id)
Does the PanelModel contain this PanelHolder?

Parameters:
id - PanelHolder identifier
Returns:
true, if PanelHolder exists.

findPanelHolder

public PanelHolder findPanelHolder(java.lang.String id)
Find the PanelHolder from its identifier.

Parameters:
id - PanelHolder identifier
Returns:
PanelHolder

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener l)
Add property change listener.

Parameters:
l - property change listener

addPropertyChangeListener

public void addPropertyChangeListener(java.lang.String name,
                                      java.beans.PropertyChangeListener l)
Listen for specific property change.

Parameters:
name - property name
l - property change listner

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener l)
Remove property change listener.

Parameters:
l - property change listener

removePropertyChangeListener

public void removePropertyChangeListener(java.lang.String name,
                                         java.beans.PropertyChangeListener l)
Remove specific property change listener

Parameters:
name - property name
l - property change listener

getDpi

public float getDpi()
Get dots per inch value.

Returns:
dots per inch

setDpi

public void setDpi(float dpi)
Set dots per inch. Fires property "dpi" when changed.

Parameters:
dpi - dots per inch

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
ChangeListner callback.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener
Parameters:
e - ChangeEvent

setBatch

public void setBatch(boolean batch)
Set batching for changes to PanelModel. Fires property "batch" when PanelModel has changed and batch is set to false.

Parameters:
batch - batch value

isBatch

public boolean isBatch()
Is batching turned on?

Returns:
true, if batch is on

setPage

public void setPage(Page page)
Set Page parent. Called from Page when added to Page object.

Parameters:
page - Page

getPage

public Page getPage()
Get Page parent

Returns:
Page

getPanelList

public java.util.Map getPanelList()
Get Map containing PanelHolder objects.

Returns:
Map

setPanelList

public void setPanelList(java.util.Map panelList)
Set PanelHolder Map.

Parameters:
panelList - Map

getPageSize

public java.awt.Dimension getPageSize()
Get Page size.

Returns:
Page dimensions

setPageSize

public void setPageSize(java.awt.Dimension pageSize)
Set Page size.

Parameters:
pageSize - Page dimension

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Listener to update Page size if it changes.

Specified by:
componentResized in interface java.awt.event.ComponentListener
Parameters:
e - ComponentEvent

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Unused.

Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Unused.

Specified by:
componentShown in interface java.awt.event.ComponentListener

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Unused.

Specified by:
componentHidden in interface java.awt.event.ComponentListener

getPageBackgroundColor

public java.awt.Color getPageBackgroundColor()
Get the background color for Page.

Returns:
color

setPageBackgroundColor

public void setPageBackgroundColor(java.awt.Color pageBackgroundColor)
Set Page background color.

Parameters:
pageBackgroundColor - background color

isPrintBorders

public boolean isPrintBorders()
Print borders?

Returns:
true, if borders will be printed

isPrintWhitePage

public boolean isPrintWhitePage()
Print with white background?

Returns:
true, print on white background

setPrintBorders

public void setPrintBorders(boolean printBorders)
Set the print borders property. Default = false.

Parameters:
printBorders - true to print borders

setPrintWhitePage

public void setPrintWhitePage(boolean printWhitePage)
Set the print on white background property. Default = true.

Parameters:
printWhitePage - true to use white for background color

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener

removeChangeListener

public void removeChangeListener(javax.swing.event.ChangeListener l)
Remove changelistener.

Parameters:
l - changelistener

removeDesignChangeListeners

public void removeDesignChangeListeners()
Remove all ChangeListeners that implement the DesignListener interface.

See Also:
DesignListener

addChangeListener

public void addChangeListener(javax.swing.event.ChangeListener l)
Add changelistener

Parameters:
l - changelistener

fireStateChanged

protected void fireStateChanged()

getPrintHAlign

public int getPrintHAlign()
Get horizontal alignment for printing.

Returns:
horizontal alignment

setPrintHAlign

public void setPrintHAlign(int printHAlign)
Set horizontal alignment for printing. Legal values are AbstractPane.LEFT, AbstractPane.CENTER, AbstractPane.RIGHT, and AbstractPane.SPECIFIED_LOCATION. Default = AbstractPane.CENTER.

Parameters:
pageHAlign - horizontal alignment
See Also:
AbstractPane.LEFT, AbstractPane.CENTER, AbstractPane.RIGHT, AbstractPane.SPECIFIED_LOCATION

setPrintOrigin

public void setPrintOrigin(java.awt.Point printOrigin)
Set page origin for printing. Will be used if the horizontal or vertical alignment is AbstractPane.SPECIFIED_LOCATION. Default = (0,0).

Parameters:
pageOrigin - page origin
See Also:
AbstractPane

getPrintOrigin

public java.awt.Point getPrintOrigin()
Get page origin for printing.

Returns:
page origin.

getPrintVAlign

public int getPrintVAlign()
Get vertical alignment for printing.

Returns:
vertical alignment.

setPrintVAlign

public void setPrintVAlign(int printVAlign)
Set vertical alignment for printing. Legal values are AbstractPane.TOP, AbstractPane.MIDDLE, AbstractPane.BOTTOM, and AbstractPane.SPECIFIED_LOCATION. Default = AbstractPane.TOP;

Parameters:
pageVAlign - vertical alignment
See Also:
AbstractPane.TOP, AbstractPane.MIDDLE, AbstractPane.BOTTOM, AbstractPane.SPECIFIED_LOCATION

getPrintScaleMode

public int getPrintScaleMode()
Get printing scale mode.

Returns:
scale mode

setPrintScaleMode

public void setPrintScaleMode(int mode)
Set printing scale mode. Legal values are AbstractPane.DEFAULT_SCALE, AbstractPane.TO_FIT, and AbstractPane.SHRINK_TO_FIT. Default = AbstractPane.DEFAULT_SCALE.

Parameters:
mode - scale mode
See Also:
AbstractPane.DEFAULT_SCALE, AbstractPane.TO_FIT, AbstractPane.SHRINK_TO_FIT