docs: @SuppressWarnings("unchecked")
      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
      private void initComponents() {
          java.awt.GridBagConstraints gridBagConstraints;
  
          jSplitPane1 = new javax.swing.JSplitPane();
          topWrapper = new javax.swing.JPanel();
          panelVisualWrapper = new javax.swing.JPanel();
          splitVisual = new javax.swing.JSplitPane();
          scrollPane1 = new javax.swing.JScrollPane();
          scrollPane0 = new javax.swing.JScrollPane();
          streamPanel0 = new moa.gui.visualization.StreamOutlierPanel(Color.RED);
          streamPanel1 = new moa.gui.visualization.StreamOutlierPanel(Color.BLUE);
          panelControl = new javax.swing.JPanel();
          buttonRun = new javax.swing.JButton();
          buttonStop = new javax.swing.JButton();
          buttonRedraw = new javax.swing.JButton();
          buttonScreenshot = new javax.swing.JButton();
          speedSlider = new javax.swing.JSlider();
          jLabel1 = new javax.swing.JLabel();
          comboX = new javax.swing.JComboBox();
          labelX = new javax.swing.JLabel();
          comboY = new javax.swing.JComboBox();
          labelY = new javax.swing.JLabel();
          checkboxDrawPoints = new javax.swing.JCheckBox();
          checkboxDrawOutliers = new javax.swing.JCheckBox();
          checkboxWaitWinFull = new javax.swing.JCheckBox();
          label_processed_points = new javax.swing.JLabel();
          label_processed_points_value = new javax.swing.JLabel();
          labelNumPause = new javax.swing.JLabel();
          numPauseAfterPoints = new javax.swing.JTextField();
          panelEvalOutput = new javax.swing.JPanel();
          // outlierVisualEvalPanel1 = new moa.gui.outliertab.OutlierVisualEvalPanel();
          graphPanel = new javax.swing.JPanel();
          graphPanelControlTop = new javax.swing.JPanel();
          buttonZoomInY = new javax.swing.JButton();
          buttonZoomOutY = new javax.swing.JButton();
          labelEvents = new javax.swing.JLabel();
          graphScrollPanel = new javax.swing.JScrollPane();
          graphCanvas = new moa.gui.visualization.GraphCanvas();
          graphPanelControlBottom = new javax.swing.JPanel();
          buttonZoomInX = new javax.swing.JButton();
          buttonZoomOutX = new javax.swing.JButton();
  
          setLayout(new java.awt.GridBagLayout());
  
          jSplitPane1.setDividerLocation(400);
          jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
  
          topWrapper.setPreferredSize(new java.awt.Dimension(688, 500));
          topWrapper.setLayout(new java.awt.GridBagLayout());
  
          //panelVisualWrapper.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
          panelVisualWrapper.setLayout(new java.awt.BorderLayout());
  
          splitVisual.setDividerLocation(400);
          splitVisual.setResizeWeight(1.0);
          
          scrollPane0.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
              public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
                  scrollPane0MouseWheelMoved(evt);
              }
          });
          
          streamPanel1.setPreferredSize(new java.awt.Dimension(400, 250));
  
          javax.swing.GroupLayout streamPanel1Layout = new javax.swing.GroupLayout(streamPanel1);
          streamPanel1.setLayout(streamPanel1Layout);
          streamPanel1Layout.setHorizontalGroup(
              streamPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGap(0, 428, Short.MAX_VALUE)
          );
          streamPanel1Layout.setVerticalGroup(
              streamPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGap(0, 339, Short.MAX_VALUE)
          );
  
          scrollPane1.setViewportView(streamPanel1);
          
          splitVisual.setRightComponent(scrollPane1);
  
          scrollPane0.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
              public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
                  scrollPane0MouseWheelMoved(evt);
              }
          });
  
          streamPanel0.setPreferredSize(new java.awt.Dimension(400, 250));
  
          javax.swing.GroupLayout streamPanel0Layout = new javax.swing.GroupLayout(streamPanel0);
          streamPanel0.setLayout(streamPanel0Layout);
          streamPanel0Layout.setHorizontalGroup(
              streamPanel0Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGap(0, 400, Short.MAX_VALUE)
          );
          streamPanel0Layout.setVerticalGroup(
              streamPanel0Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGap(0, 339, Short.MAX_VALUE)
          );
  
          scrollPane0.setViewportView(streamPanel0);
          
          splitVisual.setLeftComponent(scrollPane0);
          
          splitVisual.addComponentListener(new ComponentListener() {
              @Override
              public void componentResized(ComponentEvent ce) {
                  UpdateSplitVisualDivider();
              }
  
              @Override
              public void componentMoved(ComponentEvent ce) {
              }
  
              @Override
              public void componentShown(ComponentEvent ce) {
              }
  
              @Override
              public void componentHidden(ComponentEvent ce) {
              }
          });
  
          panelVisualWrapper.add(splitVisual, java.awt.BorderLayout.CENTER);
  
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 0;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE;
          gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
          gridBagConstraints.ipadx = 400;
          gridBagConstraints.ipady = 200;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
          gridBagConstraints.weightx = 1.0;
          gridBagConstraints.weighty = 1.0;
          topWrapper.add(panelVisualWrapper, gridBagConstraints);
  
          panelControl.setMinimumSize(new java.awt.Dimension(600, 76));
          panelControl.setPreferredSize(new java.awt.Dimension(2000, 76));
          panelControl.setLayout(new java.awt.GridBagLayout());
          
          int iBtnHeight = 27;
          int iInsetW = 2;
          int iInsetH = 2;
  
          buttonRun.setText("Start");
          buttonRun.setMinimumSize(new java.awt.Dimension(90, iBtnHeight));
          buttonRun.setPreferredSize(new java.awt.Dimension(90, iBtnHeight));
          buttonRun.addMouseListener(new java.awt.event.MouseAdapter() {
              @Override
              public void mouseClicked(java.awt.event.MouseEvent evt) {
                  buttonRunMouseClicked(evt);
              }
          });
          buttonRun.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  buttonRunActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 0;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.insets = new java.awt.Insets(iInsetW, iInsetH, iInsetW, iInsetH);
          panelControl.add(buttonRun, gridBagConstraints);
  
          buttonStop.setText("Stop");
          buttonStop.setMinimumSize(new java.awt.Dimension(90, iBtnHeight));
          buttonStop.setPreferredSize(new java.awt.Dimension(90, iBtnHeight));
          buttonStop.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  buttonStopActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 0;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.insets = new java.awt.Insets(iInsetW, iInsetH, iInsetW, iInsetH);
          panelControl.add(buttonStop, gridBagConstraints);
          
          buttonRedraw.setText("Redraw");
          buttonRedraw.setMinimumSize(new java.awt.Dimension(100, iBtnHeight));
          buttonRedraw.setPreferredSize(new java.awt.Dimension(100, iBtnHeight));
          buttonRedraw.addMouseListener(new java.awt.event.MouseAdapter() {
              @Override
              public void mouseClicked(java.awt.event.MouseEvent evt) {
                  buttonRedrawMouseClicked(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 1;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.insets = new java.awt.Insets(iInsetW, iInsetH, iInsetW, iInsetH);
          panelControl.add(buttonRedraw, gridBagConstraints);
  
          buttonScreenshot.setText("Screenshot");
          buttonScreenshot.setMinimumSize(new java.awt.Dimension(100, iBtnHeight));
          buttonScreenshot.setPreferredSize(new java.awt.Dimension(100, iBtnHeight));
          buttonScreenshot.addMouseListener(new java.awt.event.MouseAdapter() {
              @Override
              public void mouseClicked(java.awt.event.MouseEvent evt) {
                  buttonScreenshotMouseClicked(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 1;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.insets = new java.awt.Insets(iInsetW, iInsetH, iInsetW, iInsetH);
          panelControl.add(buttonScreenshot, gridBagConstraints);
  
          speedSlider.setValue(100);
          speedSlider.setBorder(javax.swing.BorderFactory.createTitledBorder("Visualisation Speed"));
          speedSlider.setMinimumSize(new java.awt.Dimension(160, 68));
          speedSlider.setPreferredSize(new java.awt.Dimension(170, 68));
          speedSlider.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
              @Override
              public void mouseDragged(java.awt.event.MouseEvent evt) {
                  speedSliderMouseDragged(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 6;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.gridheight = 2;
          gridBagConstraints.insets = new java.awt.Insets(0, 16, 1, 5);
          panelControl.add(speedSlider, gridBagConstraints);
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 9;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.gridheight = 2;
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
          gridBagConstraints.weightx = 1.0;
          panelControl.add(jLabel1, gridBagConstraints);        
  
          comboX.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Dim 1", "Dim 2", "Dim 3", "Dim 4" }));
          comboX.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  comboXActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 3;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
          panelControl.add(comboX, gridBagConstraints);
  
          labelX.setText("X");
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 2;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 5);
          panelControl.add(labelX, gridBagConstraints);
  
          comboY.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Dim 1", "Dim 2", "Dim 3", "Dim 4" }));
          comboY.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  comboYActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 3;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
          panelControl.add(comboY, gridBagConstraints);
  
          labelY.setText("Y");
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 2;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 5);
          panelControl.add(labelY, gridBagConstraints);
  
          checkboxDrawPoints.setSelected(true);
          checkboxDrawPoints.setText("Points");
          checkboxDrawPoints.setMargin(new java.awt.Insets(0, 0, 0, 0));
          checkboxDrawPoints.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  checkboxDrawPointsActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 4;
          gridBagConstraints.gridy = 0;   
          gridBagConstraints.gridwidth = 1;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
          gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
          panelControl.add(checkboxDrawPoints, gridBagConstraints);
  
          checkboxDrawOutliers.setSelected(true);
          checkboxDrawOutliers.setText("Outliers");
          checkboxDrawOutliers.setMargin(new java.awt.Insets(0, 0, 0, 0));
          checkboxDrawOutliers.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  checkboxDrawOutlierActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 4;
          gridBagConstraints.gridy = 1;        
          gridBagConstraints.gridwidth = 1;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
          gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
          panelControl.add(checkboxDrawOutliers, gridBagConstraints);
          
          checkboxWaitWinFull.setSelected(true);
          checkboxWaitWinFull.setText("WaitWinFull");
          checkboxWaitWinFull.setMargin(new java.awt.Insets(0, 0, 0, 0));
          checkboxWaitWinFull.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  checkboxWaitWinFullActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 5;
          gridBagConstraints.gridy = 0;        
          gridBagConstraints.gridwidth = 1;
          gridBagConstraints.gridheight = 2;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.CENTER;
          gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 0);
          panelControl.add(checkboxWaitWinFull, gridBagConstraints);
  
          label_processed_points.setText("Processed:");
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 7;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
          gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
          panelControl.add(label_processed_points, gridBagConstraints);
  
          label_processed_points_value.setText("0");
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 8;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
          gridBagConstraints.weightx = 1.0;
          panelControl.add(label_processed_points_value, gridBagConstraints);
  
          labelNumPause.setText("Pause in:");
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 7;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
          gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
          panelControl.add(labelNumPause, gridBagConstraints);
  
          numPauseAfterPoints.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
          numPauseAfterPoints.setText(Integer.toString(RunOutlierVisualizer.initialPauseInterval));
          numPauseAfterPoints.setMinimumSize(new java.awt.Dimension(70, 25));
          numPauseAfterPoints.setPreferredSize(new java.awt.Dimension(70, 25));
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 8;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
          panelControl.add(numPauseAfterPoints, gridBagConstraints);
          
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 0;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
          gridBagConstraints.weightx = 1.0;
          topWrapper.add(panelControl, gridBagConstraints);
  
          jSplitPane1.setLeftComponent(topWrapper);
  
          panelEvalOutput.setBorder(javax.swing.BorderFactory.createTitledBorder("Evaluation"));
          panelEvalOutput.setLayout(new java.awt.GridBagLayout());
  
          graphPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Process time per object"));
          graphPanel.setPreferredSize(new java.awt.Dimension(530, 115));
          graphPanel.setLayout(new java.awt.GridBagLayout());
  
          graphPanelControlTop.setLayout(new java.awt.GridBagLayout());
  
          buttonZoomInY.setText("Zoom in Y");
          buttonZoomInY.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  buttonZoomInYActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
          graphPanelControlTop.add(buttonZoomInY, gridBagConstraints);
  
          buttonZoomOutY.setText("Zoom out Y");
          buttonZoomOutY.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  buttonZoomOutYActionPerformed(evt);
              }
          });
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
          graphPanelControlTop.add(buttonZoomOutY, gridBagConstraints);
  
          labelEvents.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
          gridBagConstraints.weightx = 1.0;
          gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
          graphPanelControlTop.add(labelEvents, gridBagConstraints);
  
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 0;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
          gridBagConstraints.weightx = 1.0;
          graphPanel.add(graphPanelControlTop, gridBagConstraints);
  
          graphCanvas.setPreferredSize(new java.awt.Dimension(500, 111));
          
          javax.swing.GroupLayout graphCanvasLayout = new javax.swing.GroupLayout(graphCanvas);
          graphCanvas.setLayout(graphCanvasLayout);
          graphCanvasLayout.setHorizontalGroup(
              graphCanvasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGap(0, 515, Short.MAX_VALUE)
          );
          graphCanvasLayout.setVerticalGroup(
              graphCanvasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGap(0, 128, Short.MAX_VALUE)
          );
  
          graphScrollPanel.setViewportView(graphCanvas);
  
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 0;
          gridBagConstraints.gridy = 1;
          gridBagConstraints.gridwidth = 2;
          gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
          gridBagConstraints.weightx = 1.0;
          gridBagConstraints.weighty = 1.0;
          gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
          graphPanel.add(graphScrollPanel, gridBagConstraints);
  
          buttonZoomInX.setText("Zoom in X");
          buttonZoomInX.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  buttonZoomInXActionPerformed(evt);
              }
          });
          graphPanelControlBottom.add(buttonZoomInX);
  
          buttonZoomOutX.setText("Zoom out X");
          buttonZoomOutX.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  buttonZoomOutXActionPerformed(evt);
              }
          });
          graphPanelControlBottom.add(buttonZoomOutX);
  
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.gridx = 1;
          gridBagConstraints.gridy = 0;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
          graphPanel.add(graphPanelControlBottom, gridBagConstraints);
  
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
          gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
          gridBagConstraints.weightx = 2.0;
          gridBagConstraints.weighty = 1.0;
          panelEvalOutput.add(graphPanel, gridBagConstraints);
          panelEvalOutput.addComponentListener(new ComponentListener() {
              @Override
              public void componentResized(ComponentEvent ce) {
                  //System.out.println("panelEvalOutput componentResized");
                  graphCanvas.updateCanvas(true);
              }
  
              @Override
              public void componentMoved(ComponentEvent ce) {
              }
  
              @Override
              public void componentShown(ComponentEvent ce) {
              }
  
              @Override
              public void componentHidden(ComponentEvent ce) {
              }
          });
  
          jSplitPane1.setRightComponent(panelEvalOutput);
  
          gridBagConstraints = new java.awt.GridBagConstraints();
          gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
          gridBagConstraints.weightx = 1.0;
          gridBagConstraints.weighty = 1.0;
          add(jSplitPane1, gridBagConstraints);
          //add(topWrapper, gridBagConstraints);
      }