/**
     * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged
     *     (org.eclipse.jface.viewers.CheckStateChangedEvent)
     */
    public void checkStateChanged(CheckStateChangedEvent event) {

      Object element = event.getElement();
      if (element instanceof IFilter) {
        IFilter filter = (IFilter) element;
        if (!filter.isReadonly()) {
          filter.setEnabled(event.getChecked());
        } else {
          event.getCheckable().setChecked(event.getElement(), true);
        }
      }
    }
    @Override
    public void checkStateChanged(CheckStateChangedEvent event) {
      ITreeNode node = (ITreeNode) event.getElement();
      IModelTransferNode model = node.getElement();

      // apply the check state to the model
      if (event.getChecked()) {
        config.addModelToTransfer(model.getPrimaryResourceURI());
      } else {
        config.removeModelToTransfer(model);
      }

      // propagate the check state to other occurrences of the same model
      for (ITreeNode next : nodes.get(model)) {
        event.getCheckable().setChecked(next, event.getChecked());
      }
    }
 @Override
 protected void remove(ICartridge cartridge, CheckStateChangedEvent event) {
   // undo visual change only
   event.getCheckable().setChecked(cartridge, true);
 }