/* * Aipo is a groupware program developed by TOWN, Inc. * Copyright (C) 2004-2015 TOWN, Inc. * http://www.aipo.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.aimluck.eip.gadgets; import java.util.List; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.turbine.util.RunData; import org.apache.velocity.context.Context; import com.aimluck.commons.field.ALNumberField; import com.aimluck.commons.field.ALStringField; import com.aimluck.eip.common.ALAbstractFormData; import com.aimluck.eip.common.ALDBErrorException; import com.aimluck.eip.common.ALPageNotFoundException; import com.aimluck.eip.services.config.ALConfigHandler.Property; import com.aimluck.eip.services.config.ALConfigService; import com.aimluck.eip.services.social.ALContainerConfigService; import com.aimluck.eip.services.social.ALSocialApplicationHandler; import com.aimluck.eip.util.ALLocalizationUtils; /** * */ public class GadgetsContainerAdminFormData extends ALAbstractFormData { private static final JetspeedLogger logger = JetspeedLogFactoryService .getLogger(GadgetsContainerAdminFormData.class.getName()); private ALNumberField lockedDomainRequired; private ALStringField lockedDomainSuffix; private ALStringField checkActivityInterval; private ALNumberField cacheGadgetXml; private ALStringField activitySaveLimit; /** * */ @Override public void initField() { lockedDomainRequired = new ALNumberField(); lockedDomainSuffix = new ALStringField(); lockedDomainSuffix.setTrim(true); lockedDomainSuffix.setFieldName(ALLocalizationUtils .getl10n("GADGETS_SETFIELDNAME_LOCKED_DOMAIN_SUFFIX")); checkActivityInterval = new ALStringField(); checkActivityInterval.setTrim(true); checkActivityInterval.setFieldName(ALLocalizationUtils .getl10n("GADGETS_SETFIELDNAME_CHECK_ACTIVITY_INTERVAL")); cacheGadgetXml = new ALNumberField(); activitySaveLimit = new ALStringField(); checkActivityInterval.setTrim(true); checkActivityInterval.setFieldName(ALLocalizationUtils .getl10n("GADGETS_SETFIELDNAME_ACTIVITY_SAVE_LIMIT")); } @Override protected boolean setFormData(RunData rundata, Context context, List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { boolean res = super.setFormData(rundata, context, msgList); return res; } /** * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected void setValidator() throws ALPageNotFoundException, ALDBErrorException { lockedDomainSuffix.setNotNull(true); lockedDomainSuffix.setCharacterType(ALStringField.TYPE_ASCII); lockedDomainSuffix.limitMaxLength(255); checkActivityInterval.setNotNull(true); activitySaveLimit.setNotNull(true); } /** * @param msgList * @return * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected boolean validate(List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { if (lockedDomainRequired.getValue() > 0) { lockedDomainSuffix.validate(msgList); } return (msgList.size() == 0); } /** * @param rundata * @param context * @param msgList * @return * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected boolean loadFormData(RunData rundata, Context context, List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { lockedDomainRequired.setValue(ALContainerConfigService .get(ALSocialApplicationHandler.Property.LOCKED_DOMAIN_REQUIRED) .equals("true") ? 1 : 0); checkActivityInterval.setValue(ALConfigService .get(Property.CHECK_ACTIVITY_INTERVAL)); lockedDomainSuffix.setValue(ALContainerConfigService .get(ALSocialApplicationHandler.Property.LOCKED_DOMAIN_SUFFIX)); cacheGadgetXml.setValue(ALContainerConfigService.get( ALSocialApplicationHandler.Property.CACHE_GADGET_XML).equals("true") ? 1 : 0); activitySaveLimit.setValue(ALContainerConfigService .get(ALSocialApplicationHandler.Property.ACTIVITY_SAVE_LIMIT)); return true; } /** * @param rundata * @param context * @param msgList * @return * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected boolean insertFormData(RunData rundata, Context context, List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { try { long value = lockedDomainRequired.getValue(); long cache = cacheGadgetXml.getValue(); ALContainerConfigService.put( ALSocialApplicationHandler.Property.LOCKED_DOMAIN_REQUIRED, value == 1 ? "true" : "false"); ALContainerConfigService.put( ALSocialApplicationHandler.Property.LOCKED_DOMAIN_SUFFIX, value == 1 ? lockedDomainSuffix.getValue() : ""); ALConfigService.put( Property.CHECK_ACTIVITY_INTERVAL, checkActivityInterval.getValue()); ALContainerConfigService.put( ALSocialApplicationHandler.Property.CACHE_GADGET_XML, cache == 1 ? "true" : "false"); ALContainerConfigService.put( ALSocialApplicationHandler.Property.ACTIVITY_SAVE_LIMIT, activitySaveLimit.getValue()); } catch (Throwable t) { logger.error(t, t); throw new ALDBErrorException(); } return true; } /** * @param rundata * @param context * @param msgList * @return * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected boolean updateFormData(RunData rundata, Context context, List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { try { long value = lockedDomainRequired.getValue(); long cache = cacheGadgetXml.getValue(); ALContainerConfigService.put( ALSocialApplicationHandler.Property.LOCKED_DOMAIN_REQUIRED, value == 1 ? "true" : "false"); ALContainerConfigService.put( ALSocialApplicationHandler.Property.LOCKED_DOMAIN_SUFFIX, value == 1 ? lockedDomainSuffix.getValue() : ""); ALConfigService.put( Property.CHECK_ACTIVITY_INTERVAL, checkActivityInterval.getValue()); ALContainerConfigService.put( ALSocialApplicationHandler.Property.CACHE_GADGET_XML, cache == 1 ? "true" : "false"); ALContainerConfigService.put( ALSocialApplicationHandler.Property.ACTIVITY_SAVE_LIMIT, activitySaveLimit.getValue()); } catch (Throwable t) { logger.error(t, t); throw new ALDBErrorException(); } return true; } /** * @param rundata * @param context * @param msgList * @return * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected boolean deleteFormData(RunData rundata, Context context, List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { return true; } /** * @return lockedDomainRequired */ public ALNumberField getLockedDomainRequired() { return lockedDomainRequired; } /** * @return lockedDomainSuffix */ public ALStringField getLockedDomainSuffix() { return lockedDomainSuffix; } /** * @return checkActivityInterval */ public ALStringField getCheckActivityInterval() { return checkActivityInterval; } public ALNumberField getCacheGadgetXml() { return cacheGadgetXml; } public ALStringField getActivitySaveLimit() { return activitySaveLimit; } }