/*******************************************************************************
* Copyright (c) 2015 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.engine.manager;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.service.ApplicationContext;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Display;
import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine;
import com.hangum.tadpole.engine.Messages;
import com.hangum.tadpole.engine.query.dao.system.TadpoleSystemDAO;
import com.hangum.tadpole.engine.query.dao.system.UserDAO;
import com.hangum.tadpole.engine.query.dao.system.UserInfoDataDAO;
import com.hangum.tadpole.engine.query.sql.TadpoleSystemQuery;
import com.hangum.tadpole.engine.query.sql.TadpoleSystem_UserInfoData;
import com.hangum.tadpole.engine.query.sql.TadpoleSystem_UserQuery;
/**
* Tadpole Application context manager
*
* @author hangum
*
*/
public class TadpoleApplicationContextManager {
private static final Logger logger = Logger.getLogger(TadpoleApplicationContextManager.class);
/**
* is system initialize
*
* @return
*/
public static boolean isSystemInitialize() {
ApplicationContext context = RWT.getApplicationContext();
if(context.getAttribute("isSystemInitialize") == null) {
context.setAttribute("isSystemInitialize", true);
return false;
}
return true;
}
/**
* admin system env
*
* @return
*/
public static Map<String, UserInfoDataDAO> getAdminSystemEnv() {
ApplicationContext context = RWT.getApplicationContext();
Map<String, UserInfoDataDAO> mapUserInfoData = (Map<String, UserInfoDataDAO>)context.getAttribute("adminSystemEnv");
try {
if(mapUserInfoData == null) {
mapUserInfoData = initAdminSystemSetting();
}
} catch(Exception e) {
logger.error("admin system env", e);
}
return mapUserInfoData;
}
/**
* 어드민 시스템 환경을 초기화 한다.
*
* @throws Exception
*/
public static Map<String, UserInfoDataDAO> initAdminSystemSetting() throws Exception {
final List<UserInfoDataDAO> listUserInfo = TadpoleSystem_UserInfoData.getUserInfoData(PublicTadpoleDefine.systemAdminId);
final Map<String, UserInfoDataDAO> mapUserInfoData = new HashMap<String, UserInfoDataDAO>();
for (UserInfoDataDAO userInfoDataDAO : listUserInfo) {
mapUserInfoData.put(userInfoDataDAO.getName(), userInfoDataDAO);
}
ApplicationContext context = RWT.getApplicationContext();
context.setAttribute("adminSystemEnv", mapUserInfoData);
return mapUserInfoData;
}
/**
* Is personal operation type
*
* @return
*/
public static boolean isPersonOperationType() {
try {
TadpoleSystemDAO tsd = getTadpoleSystem();
if(tsd.getExecute_type().equals(PublicTadpoleDefine.SYSTEM_USE_GROUP.PERSONAL.name())) {
return true;
}
} catch(Exception e) {
}
return false;
}
/**
* Get Tadpole system
*
* @return
* @throws Exception
*/
public static TadpoleSystemDAO getTadpoleSystem() throws Exception {
ApplicationContext context = RWT.getApplicationContext();
TadpoleSystemDAO tsd = (TadpoleSystemDAO)context.getAttribute("getSystemInfo");
if(tsd == null) {
tsd = TadpoleSystemQuery.getSystemInfo();
context.setAttribute("getSystemInfo", tsd);
}
return tsd;
}
/**
* Get system admin
*
* @return
* @throws Exception
*/
public static UserDAO getSystemAdmin() throws Exception {
ApplicationContext context = RWT.getApplicationContext();
UserDAO userDao = (UserDAO)context.getAttribute("getSystemAdmin");
if(userDao == null) {
userDao = TadpoleSystem_UserQuery.getSystemAdmin();
if(userDao != null) context.setAttribute("getSystemAdmin", userDao);
}
return userDao;
}
/**
* initial System context
*/
public static void initSystem() {
ApplicationContext context = RWT.getApplicationContext();
context.removeAttribute("getSystemInfo");
context.removeAttribute("getSystemAdmin");
}
/**
* get erd title font
* @return
*/
public static Font getERDTitleFont() {
ApplicationContext context = RWT.getApplicationContext();
Object obj = context.getAttribute("getERDTitleFont");
if(obj == null) {
Font defaultFont = JFaceResources.getFont(JFaceResources.DEFAULT_FONT);
FontData[] fd = defaultFont.getFontData();
int fontSize = fd[0].getHeight()+1;
fd[0].setHeight(fontSize);
Font titleFont = new Font(Display.getCurrent(), fd[0]);
context.setAttribute("getERDTitleFont", titleFont);
return titleFont;
}
return (Font)obj;
}
/**
* gulim font
* @return
*/
public static Font getGulimFont() {
ApplicationContext context = RWT.getApplicationContext();
Object obj = context.getAttribute("getGulimFont");
if(obj == null) {
Font defaultFont = JFaceResources.getFont(JFaceResources.DEFAULT_FONT);
int intDefaultHeight = defaultFont.getFontData()[0].getHeight()+1;
Font font = new Font(Display.getCurrent(), new FontData(Messages.get().Gullim, intDefaultHeight, SWT.NONE));
context.setAttribute("getGulimFont", font);
return font;
}
return (Font)obj;
}
/**
* set real ip script
* @param script
*/
public static void setRealIpScript(String script) {
ApplicationContext context = RWT.getApplicationContext();
context.setAttribute("realIPScript", script);
}
/** get real ip script */
public static String getRealIPScript() {
ApplicationContext context = RWT.getApplicationContext();
Object obj = context.getAttribute("realIPScript");
if(obj == null) return "";
return obj.toString();
}
}