/*
* 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.modules.parameters;
import java.util.Iterator;
import java.util.List;
import org.apache.turbine.services.TurbineServices;
import org.apache.turbine.util.RunData;
import com.aimluck.eip.msgboard.MsgboardCategoryResultData;
import com.aimluck.eip.msgboard.util.MsgboardUtils;
import com.aimluck.eip.services.accessctl.ALAccessControlConstants;
import com.aimluck.eip.services.accessctl.ALAccessControlFactoryService;
import com.aimluck.eip.services.accessctl.ALAccessControlHandler;
import com.aimluck.eip.util.ALEipUtils;
/**
* 掲示板の設定値を処理するクラスです。
*/
public class MsgboardCategoryListBox extends ListBox {
public static final String INITIAL_VALUE = "initialvalue";
private static final String DEF_INITIAL_VALUE = "";
/**
* Initialize options
*
* @param data
*/
@Override
protected void init(RunData data) {
// カテゴリ一覧を取得
List<MsgboardCategoryResultData> categoryList =
MsgboardUtils.loadCategoryList(data);
ALAccessControlFactoryService aclservice =
(ALAccessControlFactoryService) ((TurbineServices) TurbineServices
.getInstance()).getService(ALAccessControlFactoryService.SERVICE_NAME);
ALAccessControlHandler aclhandler = aclservice.getAccessControlHandler();
boolean hasAclCategoryList =
aclhandler.hasAuthority(
ALEipUtils.getUserId(data),
ALAccessControlConstants.POERTLET_FEATURE_MSGBOARD_CATEGORY,
ALAccessControlConstants.VALUE_ACL_LIST);
int length = 1;
if (hasAclCategoryList) {
length = categoryList.size() + 1;
}
String[] categoryKeys = new String[length];
String[] categoryValues = new String[length];
categoryKeys[0] = "";
categoryValues[0] = (String) this.getParm(INITIAL_VALUE, DEF_INITIAL_VALUE);
int count = 1;
// カテゴリの登録
if (hasAclCategoryList) {
MsgboardCategoryResultData category = null;
Iterator<MsgboardCategoryResultData> iter = categoryList.iterator();
while (iter.hasNext()) {
category = iter.next();
categoryKeys[count] = category.getCategoryId().toString();
categoryValues[count] = category.getCategoryName();
count++;
}
}
this.layout = (String) this.getParm(LAYOUT, LAYOUT_COMBO);
this.items = categoryKeys;
this.values = categoryValues;
this.size = Integer.toString(length);
this.multiple =
Boolean
.valueOf((String) this.getParm(MULTIPLE_CHOICE, "false"))
.booleanValue();
}
}