@Override protected void onBtnSaveClick() throws PresentationLogicException { ProceduresPerformedByHCPVo proc = null; if (form.getLocalContext().getIsNewNodeIsNotNull() && form.getLocalContext().getIsNewNode() || form.getLocalContext().getIsNewServiceIsNotNull() && form.getLocalContext() .getIsNewService()) // &&form.getLocalContext().getIsNewProcedureIsNotNull()&&form.getLocalContext().getIsNewProcedure()) proc = new ProceduresPerformedByHCPVo(); else if (form.getLocalContext().getSelectedProcedurePerfIsNotNull()) proc = form.getLocalContext().getSelectedProcedurePerf(); ProcedureLiteVoCollection procedures = new ProcedureLiteVoCollection(); if (form.qmbHCPpanel().getValue() != null) proc.setPerformingHCP(form.qmbHCPpanel().getValue()); if (form.cmbServicesPanel().getValue() != null) proc.setService(form.cmbServicesPanel().getValue()); if (form.dyngrdProcedures().getRows().size() != 0) { for (int i = 0; i < form.dyngrdProcedures().getRows().size(); i++) { DynamicGridRow row = form.dyngrdProcedures().getRows().get(i); DynamicGridColumn column = form.dyngrdProcedures().getColumns().getByIdentifier(COLUMN_PROC); DynamicGridCell cell = row.getCells().get(column); // WDEV-17779 if (cell.getValue() == null && cell.getTypedText() != null) { engine.showMessage( "Please select a Procedure. '" + cell.getTypedText() + "' is not valid."); return; } procedures.add((ProcedureLiteVo) cell.getValue()); } } else procedures = null; proc.setProcedures(procedures); try { String[] errors = proc.validate(); if (errors != null) { engine.showErrors(errors); return; } else try { domain.saveProcedurePerformedByHCP(proc); } catch (DomainInterfaceException e) { e.printStackTrace(); engine.showMessage("Error saving Procedure" + e.toString()); return; } } catch (StaleObjectException e) { engine.showMessage(ims.configuration.gen.ConfigFlag.UI.STALE_OBJECT_MESSAGE.getValue()); } form.setMode(FormMode.VIEW); ProceduresPerformedByHCPVoCollection hcpProcedures = domain.listProceduresPerformedByHCP( form.qmbHCP().getValue(), form.cmbServices().getValue()); populateTree(hcpProcedures); initialize(); }