// cases: removing a feature which is merged with an identical named imported feature
// same - for built-in <could be created outside of the CDE>
private void handleRemoveFeature(TableTreeItem item) {
TypeDescription td = getTypeDescriptionFromTableTreeItem(item.getParentItem());
FeatureDescription fd = getFeatureDescriptionFromTableTreeItem(item);
String featureName = fd.getName();
boolean bFeatureInUseElsewhere = isFeatureInUseElsewhere(td, featureName);
if (bFeatureInUseElsewhere) {
String sCascadeDeleteTitle = CASCADE_DELETE_WARNING;
String sCascadeDeleteMessage = CASCADE_MESSAGE;
boolean bContinue = MessageDialog.openConfirm(getSection().getShell(), sCascadeDeleteTitle,
sCascadeDeleteMessage);
if (!bContinue)
return;
}
TypeDescription localTd = getLocalTypeDefinition(td);
FeatureDescription localFd = getLocalFeatureDefinition(td, fd);
removeFeature(localTd, localFd);
if (isImportedFeature(featureName, td))
refresh(); // don't remove from merged set
else {