Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. #Setup
    1. #Environment
    2. #Dependencies
    3. #Test inside Eclipse
  2. #Development
    1. #Major Recurring Tasks
    2. #Tips
    3. #Overview
    4. #Launch Scripts
    5. #Classes and Functions
      1. Top-level Classes
      2. #User Interface
      3. #Controllers
      4. #Others
  3. #Release with Eclipse

...

  • Located under $MPSGUI_ROOT, must be executable (chmod +x)
  • Sets up the CLASSPATH and the log file
  • Launches MPSGui in CUD mode using Plastic3DLookAndFeel from jgoodies
    • Operators and Mike Z know details about the CUD mode
  • byenti is a legacy system property that tells MPSGui to interpret bypass end times as absolute (or, if false, relative) times

Classes and Functions

Top-level Classes

edu.stanford.slac.mpsgui.MpsCudController
  • Creates the summary UI, tries to setup as a CUD
  • Initializes the summary "viewer" (controller)
edu.stanford.slac.mpsgui.MpsGuiController
  • Creates the full UI
  • If successful, initializes "viewers" (controllers) for each tab
edu.stanford.slac.mpsgui.MpsGuiLauncher
  • The main class expects the following arguments (in the order):
    • Config DB URL prefix
    • Logic DB URL prefix
    • History JDBC URL (including username and password)
    • See $MPSGUI_ROOT/mpsgui for an example
  • Loads Config and Logic DB via MPS Config
  • Depending on the system property slac.launchAsCud, initializes either MpsCudController or MpsGuiController
edu.stanford.slac.mpsgui.MpsGuiProperties

...

User Interface

  • The main user interface consists of 5 tabs: Summary, Faults, Logic, Ignore Logic, and History
  • Each tab has a corresponding package under edu.stanford.slac.mpsgui.ui
    • Classes in those packages are complex Swing components (mostly, JPanels and JTables)
  • Each XYZPanel class under edu.stanford.slac.mpsgui.ui is a subclass of edu.stanford.slac.mpsgui.ui.AbstractPanel
    • (Almost) every widget of the panel is stored in a field in the corresponding XYZPanel class, where XYZ is a descriptive string that explains what the panel shows
    • The fields are public to allow registration of the listeners (however, it doesn't make sense to set them)

...

  • Controller for the "Summary" tab
  • Initializes the logic "viewer" for the integrated logic panel
  • If applicable, styles the summary UI as a CUD (larger font etc.)
  • Monitors beam rate PVs (both MPS and actual)
  • Monitors bypassed faults and end times; warns (using proper colors) when bypasses are about to expire
  • Allows user to re-bypass to a bypassed macro state

...

Others

edu.stanford.slac.mpsgui.MpsCudController
  • Creates the summary UI, tries to setup as a CUD
  • Initializes the summary "viewer" (controller)
edu.stanford.slac.mpsgui.MpsGuiController
  • Creates the full UI
  • If successful, initializes "viewers" (controllers) for each tab
edu.stanford.slac.mpsgui.MpsGuiLauncher
  • The main class expects the following arguments (in the order):
    • Config DB URL prefix
    • Logic DB URL prefix
    • History JDBC URL (including username and password)
    • See $MPSGUI_ROOT/mpsgui for an example
  • Loads Config and Logic DB via MPS Config
  • Depending on the system property slac.launchAsCud, initializes either MpsCudController or MpsGuiController
edu.stanford.slac.mpsgui.MpsGuiProperties
  • Contains constants/properties used by MPSGui, such as:
    • Application name, version number, NULL string, date formats, background color for alternate table rows, etc.
edu.stanford.slac.mpsgui.jdbc.hist.HistoryDB

...