/** * @param gdReq * @return GridData * @since 2015/09/09 */ public static GridData cloneResponseGridData(GridData gdReq) throws Exception { GridData gdRes = new GridData(); // mode 추가 gdRes.setMode(gdReq.getMode()); String headers[] = gdReq.getHeaderSequence(); for (int i = 0; i < gdReq.getHeaderCount(); i++) { GridHeader ghValue = gdReq.getHeader(headers[i]); String headerDataType = gdReq.getHeader(headers[i]).getDataType(); gdRes.createHeader(headers[i], headerDataType); if (headerDataType.equals("L")) { if (ghValue.getComboValues() != null) if (ghValue.getComboValues().length != 0) gdRes .getHeader(headers[i]) .setComboValues(ghValue.getComboValues(), ghValue.getComboHiddenValues()); // 오리진 콤보데이터 확인을 위한 코드. gdRes .getHeader(headers[i]) .setOriginComboValues( ghValue.getOriginComboValues(), ghValue.getOriginComboHiddenValues()); if (ghValue.hasComboList()) { for (int j = 0; j < ghValue.getComboListCount(); j++) { String comboListKey = ghValue.getComboListKeys()[j]; gdRes .getHeader(headers[i]) .addComboListValues( comboListKey, ghValue.getComboValues(comboListKey), ghValue.getComboHiddenValues(comboListKey)); } } } else if (headerDataType.equals("I")) { if (ghValue.getImageURLs() != null) if (ghValue.getImageURLs().length != 0) gdRes.getHeader(headers[i]).setImageURLs(ghValue.getImageURLs()); } } return gdRes; }
/** * WiseGrid 에 전달할 GridData 를 전문화해서 전송 * * @param gridObj realGrid 에 전달할 GridData 객체 * @param out 일반조회용 Out * @param out2 압축조회용 Out * @param bMulti 통합통신 여부 * @param bUseHiddenValue HiddenValue 사용 유무 - 현재는 사용안함 * @throws Exception * @since v2, 0, 0, 1 */ private static void write( GridData gridObj, Writer out, OutputStream out2, boolean bMulti, boolean bUseHiddenValue) throws Exception { if (out == null) { throw new Exception("Not available write method arguments!"); } // 동적메소드 사용여부 확인. // if (gridObj.hasDynamicMethod()) { } LinkedHashMap<String, Object> jsonResponseString = new LinkedHashMap<String, Object>(); // 헤더에서 데이터 추출 및 JSON형식으로 파싱 String gridMode = gridObj.getMode(); if ("search".equals(gridMode)) { jsonResponseString.put(json_mode, gridMode); GridHeader[] gridHeaders = gridObj.getHeaders(); String[][] rowData = new String[gridHeaders[0].getRowCount()][gridHeaders.length]; List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(); String[] comboListValues = null; String[] comboListHiddenValues = null; // 그리드 헤더수만큼 for, 헤더의 row수 만큼 데이터 추출 for (int i = 0; i < gridHeaders.length; i++) { // setComboValues() 를 만나 콤보리스트 값이 변경이 되었을 경우만 콤보리스트 셋팅하여 response로 내려준다. if (t_combo.equals(gridHeaders[i].getDataType()) && gridHeaders[i].getComboListChange() == true) { // 콤보리스트 -> listItems int comboListItemCount = gridHeaders[i].getComboListItemCount(); comboListValues = gridHeaders[i].getComboValues(); comboListHiddenValues = gridHeaders[i].getComboHiddenValues(); /* * 리스트 <- 맵 <- 리스트 -< 맵 * */ LinkedHashMap<String, Object> comboItemMap = new LinkedHashMap<String, Object>(); List<LinkedHashMap<String, String>> comboSetList = new ArrayList<LinkedHashMap<String, String>>(); for (int k = 0; k < comboListItemCount; k++) { LinkedHashMap<String, String> comboDataSet = new LinkedHashMap<String, String>(); comboDataSet.put(comboListValues[k], comboListHiddenValues[k]); comboSetList.add(comboDataSet); } comboItemMap.put(gridHeaders[i].getID(), comboSetList); listItems.add(comboItemMap); } for (int j = 0; j < gridHeaders[i].getRowCount(); j++) { rowData[j][i] = gridHeaders[i].getValue(j); } } jsonResponseString.put("rows", rowData); if (listItems.size() != 0) { jsonResponseString.put("listItems", listItems); } } else { jsonResponseString.put(json_mode, "save"); } jsonResponseString.put(messageid, gridObj.getMessage()); jsonResponseString.put(statusid, gridObj.getStatus()); out.write(new ObjectMapper().writeValueAsString(jsonResponseString)); }