{//GEN-HEADEREND:event_btRemoveActionPerformed
try {
if (!isInnerPanelClear()) {
MessageBox.showWarning(MessageBox.W_NOT_CLOSE_EDITING);
}else{
EmcTreeNode node = getCurrentSelectedNode();
if (MessageBox.showConfirmYesNo(MessageBox.C_DEL_OBJECT) == MessageBox.ANSWER_YES){
if (node != null){
if (node.getDelegate() instanceof DelegateNode) {
DelegateNode child = (DelegateNode) node.getDelegate();
if (child instanceof SerRenLocal && ((SerRenLocal)child).getPacketServiceID() != 0) {
if (MessageBox.showConfirmYesNo(MessageBox.C_DEL_SERV_FROM_PACK) != MessageBox.ANSWER_YES) {
return;
}
((SerRenLocal)child).removeAndBreakPacket();
} else if (child instanceof DiseaseLocal && ((DiseaseLocal)child).isMedexam()) {
((DiseaseLocal)child).getMedexamLocal().remove();
} else {
child.remove();
}
try{
if (isPathContains(lastSelectionPath, node)){
lastSelectionPath = null;
}
currentSelectionPath = null;
}catch(Exception e){
throw new ClipsException("Ошибка при смене выделения", e);
}finally{//если уж прокатило удаление объекта из базы, то не стоит оставлять его в кеше,
// даже если были проблемы с переводом выделения
node.getParent().getDelegate().removeChild(child);
}
}else{
MessageBox.showWarning(MessageBox.W_UNDELETED_TYPE);
}
}