Case Study: Adding "-> Logbook..." to CSS Data Browser

  1. Decide on the level of integration
  2. Check out the CSS source code
    1. Install Mercurial locally
    2. Clone the CSS repository
    3. Increase JVM memory for Eclipse
      • Edit eclipse.ini in $ECLIPSE_HOME (1024 MB is what I ended up with)
    4. Import the necessary CSS plugins as Eclipse projects (by trail & error, need clarification from Kay & Co.)
      • The minimum list of plugins to develop with DataBrowser:
  3. Checkout the HLA source code (from CVS)
  4. Create the edu.stanford.slac.logbook plugin
    • Copy the HLA Save2Logbook source code to edu.stanford.slac.logbook
    • Configure the plugin to be used by other plugins (the Eclipse help is good, plus I simply remembered some of it)
  5. Add to the DataBrowser plugin the dependency on edu.stanford.slac.logbook
    • Eclipse bug: If plugins panel is empty, start typing the plugin name
  6. Implement the new features in DataBrowser and edu.stanford.slac.logbook plugins
    • Find the class in the DataBrowser that handles buttons (Plot)
    • Create a JFace button; set size, label, and background color; add it to the proper JFace figure
    • Add a JFace ActionListener that generates an Eclipse (Graphics) image from XYGraph
    • Add a method to edu.stanford.slac.logbook that saves an Eclipse image as a JPEG file and creates the logbook XML files as well as directories
    • Call the new edu.stanford.slac.logbook method from the new JFace ActionListener
  7. Test the save2logbook feature by running DataBrowser as an Eclipse application within Eclipse
  8. Create a SLAC DataBrowser product configuration (the Eclipse help is no good; I needed to understand the SNS CSS product configuration)
    • Select CSS Data Browser as the actual application
    • Modify the CSS splash image
  9. Export the SLAC DataBrowser product to a local directory and distribute it from there
  10. When launching the SLAC DataBrowser for the first time, configure the EPICS and DataBrowser preferences with correct SLAC settings

Major To-Dos

  • Headless build
  • "Workspace in use" issues

Resources

How to develop with CSS

How to contribute to CSS

Links

  • No labels