public WaveformViewerPanel(Composite parent) {
   super(parent, SWT.NONE);
   GridLayout gridLayout = new GridLayout();
   gridLayout.marginLeft = 0;
   gridLayout.marginRight = 0;
   setLayout(gridLayout);
   canvas = new WaveformCanvas(this);
   canvas.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 }
 public void showClip(final RecordableClip c) {
   canvas.setClip(c);
   // mClipInfo.setText("Length: " + c.getLengthInSeconds() + " seconds.");
   //
   // c.addClipListener(new ClipListener() {
   // public void newData(int offset, int length) {
   // getDisplay().asyncExec(new Runnable() {
   // @Override
   // public void run() {
   // if (!mClipInfo.isDisposed())
   // mClipInfo.setText("Length: " + c.getLengthInSeconds()
   // + " seconds.");
   // }
   // });
   //
   // }
   //
   // public void newPlayHead(int playhead) {
   // }
   // });
 }
 @Override
 public void removeMouseListener(MouseListener listener) {
   if (canvas != null) canvas.removeMouseListener(listener);
   else super.removeMouseListener(listener);
 }
 @Override
 public void addMouseListener(MouseListener listener) {
   if (canvas != null) canvas.addMouseListener(listener);
   else super.addMouseListener(listener);
 }