/** mode가 save일때 request 전문의 rows 데이터 파싱 */ public static void setRowData(GridData gridData, List<List<String>> rowDataList) throws Exception { GridHeader[] gridHeaders = gridData.getHeaders(); int headersCount = gridHeaders.length; int rowCount = rowDataList.size(); int rowsColumnCount = 0; for (int i = 0; i < rowCount; i++) { rowsColumnCount = rowDataList.get(i).size(); if (rowsColumnCount != headersCount) { throw new Exception("헤더컬럼수와 로우즈 컬럼수가 일치하지 않습니다."); } else { for (int j = 0; j < headersCount; j++) { if (!(rowDataList.get(i).get(j) instanceof String)) { gridHeaders[j].addValue(String.valueOf(rowDataList.get(i).get(j)), ""); } else { gridHeaders[j].addValue(rowDataList.get(i).get(j), ""); } } } } }
/** * 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)); }