package com.eactive.eai.common.web;
//package com.eactive.eai.common.web;  
//
//import com.eactive.eai.transformer.function.Function;
//import com.eactive.eai.transformer.function.FunctionDefinition;
//import com.eactive.eai.transformer.function.ParameterDefinition;
//import com.eactive.eai.transformer.layout.Types;
//import com.eactive.eai.common.exception.ExceptionUtil;
//import java.io.DataInputStream;
//import java.io.DataOutputStream;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.sql.Connection;
//import java.sql.PreparedStatement;
//import java.sql.Statement;
//import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.List;
//import com.eactive.eai.transformer.tools.loader.AbstractExcelLoader;
//import com.eactive.eai.transformer.tools.loader.ExcelLoader;
//import com.eactive.eai.transformer.tools.util.ConstantUtil;
//import com.eactive.eai.transformer.tools.util.ExcelSheet;
//
///** 
//* 1. 기능 : 정형화된 EXCEL 문서를 통해 관리자화면의 help 풍선도움말을 만들기 위한 XML화일을 생성
//* 2. 처리 개요 :  입력받은 xml화일을 파싱하여 정형화된 XML화일을 생성한다.
//*   			
//* 3. 주의사항 
//*
//* @author  :  
//* @version : v 1.0.0
//* @see : AbstractExcelLoader.java
//* @since   : 
//*  : 
//*/
//
//public class HelpLoader extends AbstractExcelLoader
//{ 
//    private static final int DATA_ROW_OFFSET = 7;
//    
//    private static final int COL_ID = 1;
//    private static final int COL_TYPE = 2;
//    private static final int COL_DESC = 3;
//
//    private static final String PAGE_TITLE_TYPE = "pageTitle";
//    private static final String LABEL_TYPE = "Label";
//    
//    
//    public HelpLoader() {
//        super(HelpLoader.class.getName().substring(HelpLoader.class.getName().lastIndexOf('.') + 1));
//    }
//	
//   /** 
//    * 1. 기능 : ExcelSheet를 파싱하여 ArrayList를 생성
//    * 2. 처리 개요 : ExcelSheet를 파싱하여 ArrayList에 HelpVO를 생성해서 리턴한다.
//    * 3. 주의사항 
//    *
//    * @return   ArrayList HelpVO를 가진 ArrayList
//    * @exception 
//    **/
//    public Object parseExcelSheet(ExcelSheet[] sheets)
//    {
//        ExcelSheet sheet = sheets[0];
//        
//        ArrayList helpList = new ArrayList();
//        
//        for (int currentRow = DATA_ROW_OFFSET; sheet.existRow(currentRow); currentRow++) {
//            try {
//                HelpVO vo = new HelpVO();
//                
//                String type = sheet.getCellString(currentRow, COL_TYPE);
//                String id = sheet.getCellString(currentRow, COL_ID);
//                String desc = sheet.getCellString(currentRow, COL_DESC);
//       
//                if (id.trim().length() > 0) {
//                    vo.setId(id);
//                    vo.setDescription(desc);
//                    vo.setType(type);
//                        
//                    helpList.add(vo);
//                    
//                }
//                else {
//                    break;
//                }
//
//            } catch (Exception e) {
//                println("[ERROR] !!!!! " + e.getMessage() + " - ROW: " + currentRow);
//                e.printStackTrace();
//                
//            }
//        }
//        
//        return helpList;
//    }
//   
//   /** 
//    * 1. 기능 : ExcelSheet를 파싱하여 XML을 생성
//    * 2. 처리 개요 : parseExcelSheet를 통해 ExcelSheet를 파싱하여 XML 화일을 생성한다.
//    * 3. 주의사항 
//    *
//    * @return   void
//    * @exception 
//    **/ 
//    public void loadExcelSheet(ExcelSheet[] sheets)
//    {
//        List helpList = (List)parseExcelSheet(sheets);
//        int helpSize = helpList.size();
//        
//        println("Load할 Help 수: " + helpSize);
//        
//        String name = null;
//        try {
//            name = sheets[0].getCellString(2, 1);   
//        } catch(Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException("HelpLoader] loadExcelSheet>> "+e.getMessage());
//        }
//        String directory = null;
//        try {
//            directory = sheets[0].getCellString(3,1);  
//        } catch(Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException("HelpLoader] loadExcelSheet>> "+e.getMessage());
//        }
//
//        DataOutputStream out = getOutputFile(name, directory);
//        StringBuffer sb = new StringBuffer();
//                
//        try{
//            sb.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n");
//            sb.append("\n<help>");
//            
//        //           </PageTitle>");        
//            HelpVO vo = new HelpVO();
//            for(int i=0; i < helpSize; i++){
//                vo = (HelpVO)helpList.get(i);
//                
//                if(this.PAGE_TITLE_TYPE.equalsIgnoreCase(vo.getType())){
//                    sb.append( "\n\t<PageTitle id=\"");
//                    sb.append(vo.getId()+"\">");
//                    sb.append(vo.getDescription()+"</PageTitle>");      
//                }
//                else{
//                    sb.append("\n\t<label id=\"");
//                    sb.append(vo.getId()+"\">");
//                    sb.append(vo.getDescription()+"</label>");        
//                }
//                
//            }    
//            sb.append("\n</help>");
//            System.out.println(sb.toString());
//            if(out != null)
//                out.write(sb.toString().getBytes());
//            else
//                System.out.println("out is null");
//  
//        } catch (Exception e) {
//           
//            e.printStackTrace();
//        } finally {
//            
//        }
//    }
//   
//   /** 
//    * 1. 기능 : 생성할 XML화일의 DataOutputStream을 생성
//    * 2. 처리 개요 : ExcelSheet에 정의된 화일명과 위치를 통해 생성할 XML화일의 DataOutputStream을 생성하여 리턴한다.
//    * 3. 주의사항 
//    *
//    * @return   DataOutputStream
//    * @exception 
//    **/
//    
//    public DataOutputStream getOutputFile(String name, String dir) {
//
//        String outFile = "";
//        File out = new File(dir);
//        
//        if(!out.exists()){
//            if(!out.mkdir())
//                System.out.println(outFile+" Faild make directory");
//        }
//        outFile = dir+"/"+name;
//        
//        DataOutputStream outs = null;
//
//		try {
//			outs = new DataOutputStream( new FileOutputStream(outFile, false));
//            
//            if(outs != null)
//                System.out.println("HelpLoader ] File Name - " + outFile +" created.");
//            else
//                System.out.println("HelpLoader ] File Name - " + outFile +" can't create.");
//
//  	      } catch(Exception _ex) { 
//	        _ex.printStackTrace();
//	   }
//       return outs;
//
//	}
//    
//    public void clearData(ExcelSheet[] sheets) {
//    }
//    
//    public static void main(String[] argv) {
//        
//        InputStream in = null;
//        HelpLoader loader = new HelpLoader();
//        
//        try {
//            
////            in = HelpLoader.class.getClassLoader().getResourceAsStream(argv[0]);
//            in = new DataInputStream(new  FileInputStream(argv[0]));
//            ExcelSheet[] sheets = ExcelSheet.getExcelSheets(in);
//            
////            ExcelLoader loader = (ExcelLoader)Class.forName("HelpLoader.class").newInstance();
//  
//            loader.loadExcelSheet(sheets);
//            
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            if (in != null) try { in.close(); } catch (Exception e) {};
//        }
//        
//    }
//        
//} 
