/**
* Copyright 2008-2016 Qualogy Solutions B.V.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qualogy.qafe.mgwt.server.service.impl;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import com.qualogy.qafe.bind.core.application.ApplicationContext;
import com.qualogy.qafe.bind.core.application.ApplicationIdentifier;
import com.qualogy.qafe.bind.domain.ApplicationMapping;
import com.qualogy.qafe.core.application.ApplicationCluster;
import com.qualogy.qafe.core.datastore.ApplicationLocalStore;
import com.qualogy.qafe.mgwt.client.vo.ui.UIGVO;
import com.qualogy.qafe.mgwt.client.vo.ui.UIVOCluster;
import com.qualogy.qafe.mgwt.server.helper.ApplicationAssembler;
import com.qualogy.qafe.mgwt.server.helper.ApplicationStore;
import com.qualogy.qafe.mgwt.server.service.UIService;
import com.qualogy.qafe.util.ApplicationMappingUtil;
import com.qualogy.qafe.web.util.SessionContainer;
public class UIServiceImpl implements UIService {
public boolean isValidXML(String xml) {
return ApplicationMappingUtil.isValidXML(xml);
}
public UIGVO getUIFromXML(String xml,String sessionId,String windowSession,Locale locale) {
ApplicationMapping applicationMapping = ApplicationMappingUtil.readFromXML(xml);
UIGVO applicationMappingUIGVO = ApplicationAssembler.renderAll(applicationMapping, null,new SessionContainer(locale,null));
applicationMappingUIGVO.setAppId("QAFEXMLLabs");
ApplicationStore.getInstance().storeUI(applicationMappingUIGVO);
return applicationMappingUIGVO;
}
public String getUIFromApplicationMapping(ApplicationMapping applicationMapping,String sessionId,String windowSession, Locale locale, Map<String,String> parameters) {
UIGVO applicationMappingUIGVO = ApplicationAssembler.renderAll(applicationMapping, null,new SessionContainer(locale,parameters));
applicationMappingUIGVO.setAppId("FromApplicationMapping");
String uuid = ApplicationStore.getInstance().storeUI(applicationMappingUIGVO);
ApplicationStore.getInstance().storeApplicationMapping(applicationMapping, uuid);
return uuid;
}
public UIGVO getUIByUUID(String uuid) {
UIGVO ui = ApplicationStore.getInstance().retrieveUI(uuid);
return ui;
}
public UIGVO getUI(ApplicationIdentifier appId,String sessionId,String windowSession, Locale locale,Map<String,String> parameters) {
return getUI(appId, null, null,sessionId,windowSession,locale,parameters);
}
public UIGVO getUI(ApplicationIdentifier appId, String applicationName, String location,String sessionId, String windowSession,Locale locale,Map<String,String> parameters
) {
ApplicationContext context = ApplicationCluster.getInstance().get(appId);
ApplicationMapping applicationMapping = context.getApplicationMapping();
UIGVO applicationMappingUIGVO = ApplicationAssembler.renderAll(applicationMapping, context,new SessionContainer(locale,parameters));
if (applicationMappingUIGVO!=null){
applicationMappingUIGVO.setAppId(appId.toString());
ApplicationStore.getInstance().storeUI(applicationMappingUIGVO);
ApplicationStore.getInstance().store(applicationMappingUIGVO.getAppId(), appId);
applicationMappingUIGVO.setTitle(applicationName);
}
return applicationMappingUIGVO;
}
public ApplicationIdentifier getApplicationId(String uuid) {
return (ApplicationIdentifier) ApplicationStore.getInstance().getApplicationId(uuid);
}
public UIGVO getSystemApplication(ApplicationContext context,String sessionId,String windowSession, Locale locale,Map<String,String> parameters) {
UIGVO uigvo = null;
if (context != null) {
uigvo = getUI(context.getId(),sessionId,windowSession,locale,parameters);
if (uigvo != null && context.getApplicationMapping() != null) {
uigvo.setMenus(ApplicationAssembler.renderSystemMenu(context.getApplicationMapping(), context));
}
}
return uigvo;
}
public UIVOCluster stripCluster(final UIVOCluster cluster) {
UIVOCluster rc = null;
if (cluster!=null){
rc = new UIVOCluster();
rc.setDebugMode(cluster.isDebugMode());
rc.setShowLog(cluster.getShowLog());
rc.setGlobalDateFormat(cluster.getGlobalDateFormat());
rc.setReloadable(cluster.getReloadable());
rc.setUseDockMode(cluster.getUseDockMode());
rc.setSystemMenuApplication(cluster.getSystemMenuApplication());
rc.setExternalProperties(cluster.getExternalProperties());
rc.setMessages(cluster.getMessages());
rc.setMessagesWithType(cluster.getMessagesWithType());
if (cluster.getVos()!=null){
UIGVO[] uiStripped = new UIGVO[cluster.getVos().length];
for (int i=0;i<cluster.getVos().length;i++){
uiStripped[i] = cluster.getVos()[i].strip();
}
rc.setVos(uiStripped);
}
}
return rc;
}
public void clear() {
ApplicationStore.getInstance().getGUIMap().clear();
}
}