public StateMonitorTab(GUIFrame mainFrame){
  setLayout(new BorderLayout());
  this.mainFrame=mainFrame;
  states=new HashMap<String,DialogueState>();
  JPanel leftPanel=createLeftSide();
  visualisation=new StateViewer(this);
  logArea=createLogArea();
  JScrollPane logScroll=new JScrollPane(logArea);
  logScroll.setBorder(BorderFactory.createEmptyBorder());
  JSplitPane topPanel=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,visualisation.wrapWithScrollPane());
  topPanel.setDividerLocation(200);
  JSplitPane fullPanel=new JSplitPane(JSplitPane.VERTICAL_SPLIT,topPanel,logScroll);
  fullPanel.setDividerLocation(600);
  add(fullPanel);
  configureKeyInputs();
  recordState(new DialogueState(),CURRENT);
  listModel.add(1,"separator-current");
}

public StateMonitorTab ( GUIFrame mainFrame ) { setLayout ( new BorderLayout ( ) ) ; this . mainFrame = mainFrame ; states = new HashMap < String , DialogueState > ( ) ; JPanel leftPanel = createLeftSide ( ) ; visualisation = new StateViewer ( this ) ; logArea = createLogArea ( ) ; JScrollPane logScroll = new JScrollPane ( logArea ) ; logScroll . setBorder ( BorderFactory . createEmptyBorder ( ) ) ; JSplitPane topPanel = new JSplitPane ( JSplitPane . HORIZONTAL_SPLIT , leftPanel , visualisation . wrapWithScrollPane ( ) ) ; topPanel . setDividerLocation ( 200 ) ; JSplitPane fullPanel = new JSplitPane ( JSplitPane . VERTICAL_SPLIT , topPanel , logScroll ) ; fullPanel . setDividerLocation ( 600 ) ; add ( fullPanel ) ; configureKeyInputs ( ) ; recordState ( new DialogueState ( ) , CURRENT ) ; listModel . add ( 1 , "separator-current" ) ; }
creates a new gui component for displaying and controlling the dialogue state ' s bayesian network .
