@Override public void dispose() { canvas.dispose(); if (m_datasets != null) { m_datasets.removeListener(this); } super.dispose(); }