public IntegerAggregationPanel(IntegerColorLibrary converter)
  {
    this.colorPicker = converter;
    converter.addListener(this);
    addMouseMotionListener(new MouseMotionListener()
    {
      @Override
      public void mouseDragged(MouseEvent e)
      {
        // do nothing
      }

      @Override
      public void mouseMoved(MouseEvent e)
      {
        Integer start = Math.min(e.getY(), dataSource.getMaxStartNode());
        Integer end = Math.min(e.getX(), dataSource.getMaxTargetNode());
        if (dataSource != null)
        {
          reportCurrentPosition(start, end);
        }
      }
    });
    addMouseListener(new MouseListener()
    {
      @Override
      public void mouseClicked(MouseEvent e)
      {
        Integer start = Math.min(e.getY(), dataSource.getMaxStartNode());
        Integer end = Math.min(e.getX(), dataSource.getMaxTargetNode());

        if (dataSource != null)
        {
          reportDetailInfoPosition(start, end);
        }
      }

      @Override
      public void mousePressed(MouseEvent e)
      {
        // do nothing
      }

      @Override
      public void mouseReleased(MouseEvent e)
      {
        // do nothing
      }

      @Override
      public void mouseEntered(MouseEvent e)
      {
        // do nothing
      }

      @Override
      public void mouseExited(MouseEvent e)
      {
        // do nothing
      }
    });
  }