MPS Configuration Editor

Mockup

  • Not all tables are shown in the mockup

Notes

  • Selected device type updates the label of the device widget (to the right)
  • Label "Rack Elevation" as "Cable number"
  • Allow search on every column
  • Put Device + DeviceDetails on the same panel
  • Allow users to enter JSON patches, like this: mpsconfigpatch.py
  • Default sort tables by 1st column
  • Show all tables in the left panel (in addition some as dialogs)
  • No default values for widgets
  • Views are added to the config database by a Python script during post-processing
  • Device areas are just arbitrary strings right now (might have useful distinctions in the future)

MPS Logic Editor

Bugs

  • There's left over data in some of the fields when changing between truth tables: screenshot1.png
  • It appears a blank truth table gets added to the file sometimes when you save.
  • Multiple selection failts screenshot2.png
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.chevtsov.mle.controller.table.MacroStatesModel.getValueAt(MacroStatesModel.java:137)
    at edu.stanford.slac.swing.util.TableSorter.getValueAt(TableSorter.java:291)
    at javax.swing.JTable.getValueAt(JTable.java:1903)
    at javax.swing.JTable.prepareRenderer(JTable.java:3911)
    at com.chevtsov.mle.ui.util.MleTable.prepareRenderer(MleTable.java:41)
    at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
    at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
    at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1897)
    at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
    at javax.swing.JComponent.paintComponent(JComponent.java:743)
    at javax.swing.JComponent.paint(JComponent.java:1006)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JViewport.paint(JViewport.java:728)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JViewport.paint(JViewport.java:728)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1021)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:559)
    at javax.swing.JComponent.paintChildren(JComponent.java:843)
    at javax.swing.JComponent.paint(JComponent.java:1015)
    at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972)
    at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925)
    at javax.swing.JComponent._paintImmediately(JComponent.java:4868)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4675)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.chevtsov.mle.controller.MleController$33.run(MleController.java:943)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
  • No labels