@Override public Object execute(ExecutionEvent event) throws ExecutionException { ISelection selection = HandlerUtil.getCurrentSelectionChecked(event); if (!selection.isEmpty()) { IStructuredSelection sSelection = (IStructuredSelection) selection; boolean confirmed = MessageDialog.openConfirm( HandlerUtil.getActiveShell(event), "Confirm Delete", "Please confirm that you wish to delete this metadata."); if (!confirmed) return null; MetsProjectNature mpn = MetsProjectNature.getNatureForMetsObject((EObject) sSelection.getFirstElement()); HashSet<SmLinkType> del = new HashSet<SmLinkType>(); Iterator it = sSelection.iterator(); while (it.hasNext()) { Object sel = it.next(); if (sel instanceof SmLinkType) { del.add((SmLinkType) sel); } } Command c = RemoveCommand.create( mpn.getEditingDomain(), mpn.getMets().getStructLink(), MetsPackage.eINSTANCE.getStructLinkType_SmLink(), del); mpn.getCommandStack().execute(c); } return null; }