# Class SubPopFrame

    java.lang.Object
       |
       +----java.awt.Component
               |
               +----java.awt.Container
                       |
                       +----java.awt.Window
                               |
                               +----java.awt.Frame
                                       |
                                       +----SubPopFrame

class SubPopFrame
extends Frame

This frame contains a `TitlePanel` and groups of UI components that allow the user to specify the following sub-pop exchange parameters:
`

- exch[#].from
- exch[#].fromselect
- exch[#].to
- exch[#].toselect
- exch[#].count

`
There is also a group of buttons that allow the user to add, replace, edit, and accept the exchanges. There is a List component in the bottom of the frame that is used to show the current exchanges. The constructor function creates a second frame that contains a `SubPopGraph`.

See Also:
  SubPopGraph

##

SubPopFrame(int, boolean)
  Add each of the UI components needed to accept input.

##

action(Event, Object)
  Trap `Button` events.
keyDown(Event, int)
  if there is a selected exchange and the user has not clicked the edit button, deselect the exchange so it doesn't look like they are editing it.
loadParams()
  This methos is responsible for loading parameters into the exchange hashtable and refreshing the sub-pop graph.
showGraphFrame()
  This method is called by the `SubPopPanel` when the user clicks on the `go` button to reshow the sub-pop graph Frame.

##

SubPopFrame

      public SubPopFrame(int np,
                         boolean showGraph)

  Add each of the UI components needed to accept input.
  Parameters:
    np - the number of sub populations
  See Also:
    addComponent

##

action

      public boolean action(Event e,
                            Object arg)

  Trap `Button` events. If the `Accept` button is pressed, then `hide()` the `SubPopFrame` and re-enable the `Go` button and the `purge` button on the `SubPopPanel`. If the `accept` button has been pressed, then all of the parameters associated with sub-pops are purged from the database before adding the new ones.
  Overrides:
    action in class Component
  See Also:
    SubPopsPanel, enableButtons

keyDown

      public boolean keyDown(Event e,
                             int key)

  if there is a selected exchange and the user has not clicked the edit button, deselect the exchange so it doesn't look like they are editing it. This code is repeated from the `action()` method since typing in a `TextField` doesn't generate an `ACTION_EVENT`.
  Overrides:
    keyDown in class Component

loadParams

      public void loadParams()

  This methos is responsible for loading parameters into the exchange hashtable and refreshing the sub-pop graph. It also loads the exchange descriptions into the summary list.

showGraphFrame

      public void showGraphFrame()

  This method is called by the `SubPopPanel` when the user clicks on the `go` button to reshow the sub-pop graph Frame.