|
@@ -1,4 +1,203 @@
|
|
|
package com.dbs.mplus.knuh.consent;
|
|
|
|
|
|
+import android.content.Context;
|
|
|
+import android.os.Build;
|
|
|
+
|
|
|
+import com.dbs.mplus.knuh.BuildConfig;
|
|
|
+import com.dbs.mplus.knuh.R;
|
|
|
+import com.dbs.mplus.knuh.activity.ConsentActivity;
|
|
|
+import com.dbs.mplus.knuh.util.Util;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import kr.co.clipsoft.eform.EFormToolkit;
|
|
|
+import kr.co.clipsoft.eform.information.RunOption;
|
|
|
+import kr.co.clipsoft.eform.type.enumtype.LogLevel;
|
|
|
+import kr.co.clipsoft.eform.type.enumtype.Position;
|
|
|
+import kr.co.clipsoft.eform.type.enumtype.ScreenOrientation;
|
|
|
+
|
|
|
public class ConsentFacade {
|
|
|
+ private static final String TAG = "ConsentFacade";
|
|
|
+ private Context mContext;
|
|
|
+ private ConsentActivity instance;
|
|
|
+
|
|
|
+ private EFormToolkit eFormToolkit;
|
|
|
+
|
|
|
+ public ConsentFacade(Context mContext) {
|
|
|
+ this.mContext = mContext;
|
|
|
+ this.instance = (ConsentActivity) mContext;
|
|
|
+ this.eFormToolkit = new EFormToolkit(mContext);
|
|
|
+ }
|
|
|
+
|
|
|
+ private RunOption createRunOption() {
|
|
|
+ RunOption runOption = new RunOption();
|
|
|
+
|
|
|
+ runOption.setScreenOrientation(ScreenOrientation.Sensor); // 가로세로 전환 모드
|
|
|
+ runOption.setFirstPageLoad(true); // 서식 로딩 시 첫 페이지만 로딩
|
|
|
+ runOption.setUseCaching(false); // 로컬 파일 생성하여 캐싱 사용 여부
|
|
|
+ runOption.setLogLevel(LogLevel.INFO); // 로그 레벨
|
|
|
+ runOption.setFosLogging(true); // fos 로그 여부
|
|
|
+ runOption.setUseCameraAttachPage(true); // 첨지기능 사용여부
|
|
|
+ runOption.setExternalControlDefinedPath(BuildConfig.CONSENT_EFORM_SERVER_URL);
|
|
|
+ runOption.setParameterDefaultValueClear(false);
|
|
|
+ runOption.setInitializeScrollOnPageMove(true); // 페이지 이동시 스크롤 초기화
|
|
|
+ runOption.setAttachPagePosition(Position.Next); // 첨지 옵션
|
|
|
+ runOption.setBottomToolbarButtonsVisibleOnPenDrawMode(true); // 펜드로잉 모드일때 하단 이동 버튼 보이기 여부
|
|
|
+
|
|
|
+ // 저장시 옵션
|
|
|
+ runOption.setReturnDataXmlOnSave(true); // 저장시 dataXml 리턴 여부
|
|
|
+ runOption.setDataXmlSaveAsFileOnSave(false); // 저장시 dataXml 리턴 시 file 여부(true : file, false : String)
|
|
|
+ runOption.setImageSaveOption("{'encode':'jpg', 'start-index':0, 'quality':100, 'dpi':150, 'gray':false}"); // 저장될 이미지 타입을 설정함
|
|
|
+ runOption.setReturnImageOnSave(true); // 저장시 이미지 파일 리턴 여부
|
|
|
+ runOption.setReturnTempDocumentOnSave(true); // 저장 시 ept 파일 저장 여부
|
|
|
+ runOption.setIncludesDrawingOnDataXml(false); // 저장시 펜드로잉 정보 저장 여부
|
|
|
+ runOption.setReturnPdfOnSave(false); // 저장 시 PDF 저장 여부
|
|
|
+
|
|
|
+ // 임시 저장시 옵션
|
|
|
+ runOption.setReturnDataXmlOnTempSave(true); // 임시 저장시 dataXml 리턴 여부
|
|
|
+ runOption.setDataXmlSaveAsFileOnTempSave(false); // 임시 저장시 dataXml 리턴 시 file 여부(true : file, false : String)
|
|
|
+ runOption.setIncludesDrawingOnTempDocument(true); // 임시저장시 펜드로잉 정보 저장 여부
|
|
|
+
|
|
|
+ runOption.setUseNextDocumentOpenDialogAfterSave(false);// 연속 출력시 저장 후 알림 여부
|
|
|
+
|
|
|
+// runOption.setInactivityTimeoutInMilisecond(1000 * 60 * sessionTime); //지정한 시간 1000 = 1초
|
|
|
+
|
|
|
+ runOption.setUiStyle("{"
|
|
|
+ + "'required-input':{'border':{'visible':'false','color':{'b':0,'g':0,'r':225,'a':120},'width':2},'background':{'visible':'true','color':{'b':0,'g':0,'r':225,'a':120}}}"
|
|
|
+ + ",'toast-message':{'signature-missing-data':{'text':'" + mContext.getString(R.string.emptySign) + "'}}"
|
|
|
+ + ",'toolbar':{"
|
|
|
+ + " 'buttons':{"
|
|
|
+ + " 'tempsave2':{'visible':'true','enabled':'true','text':'" + mContext.getString(R.string.check) + "'}"
|
|
|
+ + " ,'record':{'visible':'true'}"
|
|
|
+ + " ,'information':{'visible':'true'}"
|
|
|
+ + " ,'tempsave':{'visible':'true','enabled':'true','text':'" + mContext.getString(R.string.tempList) + "'}"
|
|
|
+ + " ,'save':{'visible':'true','enabled':'false','text':'" + mContext.getString(R.string.certifySave) + "'}"
|
|
|
+ + " ,'exit':{'visible':'true','text':'" + mContext.getString(R.string.exit) + "'}"
|
|
|
+ + " ,'pageattach':{'visible':'true'}"
|
|
|
+ + " ,'page-number':{'current':{'text-color':{'b':116,'g':186,'r':14,'a':255}}"
|
|
|
+ + " }"
|
|
|
+ + "}"
|
|
|
+ + ",'move-next':{"
|
|
|
+ + " 'buttons':{"
|
|
|
+ + " 'save-move':{'text':'저장 후 이동','visible':true,'enabled':true}"
|
|
|
+ + " ,'tempsave-move':{'text':'임시저장 후 이동','visible':true,'enabled':true}"
|
|
|
+ + " ,'tempsave2-move':{ 'text':'임시저장2 후 이동','visible':false ,'enabled':true}"
|
|
|
+ + " ,'move':{'text':'저장 없이 이동','visible':true ,'enabled':true}"
|
|
|
+ + " }"
|
|
|
+ + "}}}"
|
|
|
+ ); // 툴바 및 UI 관련 옵션 설정
|
|
|
+
|
|
|
+
|
|
|
+ return runOption;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void startConsent() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public String createFOS() {
|
|
|
+ String fos = "";
|
|
|
+ fos = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
|
|
|
+ fos += "<fos version='1.0'>";
|
|
|
+ fos += " <global>";
|
|
|
+// fos += this.createFosPageTemplate();
|
|
|
+ fos += " <parameters>"; // form-list의 모든 서식에 적용될 파라미터
|
|
|
+ fos += " <param key='UrlParam'>" + BuildConfig.CONSENT_SERVER_URL + "</param>";
|
|
|
+// fos += this.createParamString(msg.getParamMap());
|
|
|
+ fos += " </parameters>";
|
|
|
+ fos += " </global>";
|
|
|
+ fos += " <form-list>";
|
|
|
+// fos += this.createFormString(msg.getFormParamMapList());
|
|
|
+ fos += " </form-list>";
|
|
|
+ fos += "</fos>";
|
|
|
+ return fos;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String createFosPageTemplate() {
|
|
|
+ String pageTemplate = "";
|
|
|
+ pageTemplate += "<page-template path='" + BuildConfig.CONSENT_EFORM_SERVER_URL + "' request-encode ='utf-8' response-encode ='utf-8'>";
|
|
|
+ pageTemplate += " <template-get-parameters>";
|
|
|
+ pageTemplate += " <post-param key='OP'>";
|
|
|
+ pageTemplate += " <![CDATA[PAGE_TEMPLATE]]>";
|
|
|
+ pageTemplate += " </post-param>";
|
|
|
+ pageTemplate += " <post-param key='PD'>";
|
|
|
+ pageTemplate += " <![CDATA[";
|
|
|
+ pageTemplate += " <data>";
|
|
|
+ pageTemplate += " <action>GET_LIST</action>";
|
|
|
+ pageTemplate += " <params>";
|
|
|
+ pageTemplate += " <param name='adaptername'>defaultadapter</param>";
|
|
|
+ pageTemplate += " </params>";
|
|
|
+ pageTemplate += " </data>";
|
|
|
+ pageTemplate += " ]]>";
|
|
|
+ pageTemplate += " </post-param>";
|
|
|
+ pageTemplate += " </template-get-parameters>";
|
|
|
+ pageTemplate += "</page-template>";
|
|
|
+ return pageTemplate;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String createFormString(List<Map<String, String>> formMapList) {
|
|
|
+ String fos = "";
|
|
|
+ for (int i = 0; i < formMapList.size(); i++) {
|
|
|
+ Map<String, String> formMap = formMapList.get(i);
|
|
|
+ String rid = formMap.get("rid");
|
|
|
+ String guid = formMap.get("guid");
|
|
|
+ String type = formMap.get("type");
|
|
|
+ boolean newForm = true;
|
|
|
+
|
|
|
+ String newConsent = formMap.get("newConsent");
|
|
|
+ if (newConsent != null && "true".equals(newConsent)) {
|
|
|
+ newForm = true;
|
|
|
+ } else {
|
|
|
+ newForm = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ fos += " <form name='noname' open-sequence='" + (i + 1) + "' path='" + BuildConfig.CONSENT_EFORM_SERVER_URL + "' request-encode='utf-8' response-encode='utf-8'>";
|
|
|
+ fos += " <parameters>";
|
|
|
+ fos += this.createParamString(formMap);
|
|
|
+ fos += " </parameters>";
|
|
|
+ fos += " <form-get-parameters>";
|
|
|
+ fos += " <post-param key='OP'><![CDATA[" + (newForm ? "VIEWER_FORM" : "VIEWER_DATA") + "]]></post-param>";
|
|
|
+ fos += " <post-param key='PD'>";
|
|
|
+ fos += " <![CDATA[";
|
|
|
+ fos += " <data>";
|
|
|
+ fos += " <action>" + (newForm ? "GET" : "GET_DATA") + "</action>";
|
|
|
+ fos += " <params>";
|
|
|
+ fos += " <param name='adaptername'>defaultadapter</param>";
|
|
|
+
|
|
|
+ if (newForm) {
|
|
|
+ fos += " <param name='type'>guid</param>";
|
|
|
+ fos += " <param name='guid'>" + guid + "</param>";
|
|
|
+ fos += " <param name='version'>-1</param>";
|
|
|
+ } else {
|
|
|
+ fos += " <param name='rid'>" + rid + "</param>";
|
|
|
+ }
|
|
|
+
|
|
|
+ fos += " </params>";
|
|
|
+ fos += " </data>";
|
|
|
+ fos += " ]]>";
|
|
|
+ fos += " </post-param>";
|
|
|
+ fos += " </form-get-parameters>";
|
|
|
+ fos += " </form>";
|
|
|
+ }
|
|
|
+ return fos;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String createParamString(Map<String, String> param) {
|
|
|
+ StringBuffer paramStr = new StringBuffer();
|
|
|
+ if (param != null && !param.isEmpty()) {
|
|
|
+ for (String key : param.keySet()) {
|
|
|
+ paramStr.append("<param key=\'").append(key).append("\'>");
|
|
|
+ paramStr.append("<![CDATA[");
|
|
|
+ paramStr.append(Util.getNull2EmptyString(param.get(key)));
|
|
|
+ paramStr.append("]]>");
|
|
|
+ paramStr.append("</param>");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return paramStr.toString();
|
|
|
+ }
|
|
|
}
|