基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > JSP クライアントへのピッカーの組み込み > JCA での参加者ピッカーの設定 > サンプルコード > 関連付けの追加
  
関連付けの追加
参加者ピッカーに関連付けを追加するには、以下のサンプルでハイライトされた 3 つの属性を入力する必要があります。属性 associationMap は LinkedHashMap を受け入れます。キー値ペアをこのマップに指定します。キーは java 文字列リテラルです。ユーザーが関連付けを選択すると、このキー文字列リテラルはテキストパラメータとして actionMethod に返されます。値はドロップダウンリストに表示されるローカライズされた文字列です。コンポーネントは LinkedHashMap を使用して、ドロップダウンリストに表示されている間にキー値ペアが追加される順番を保持します。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/components" prefix="jca"%>
<%@ page import="java.util.LinkedHashMap"%>
<%@ page import = "com.ptc.windchill.enterprise.picker.principal. PrincipalBean" %>
<%
LinkedHashMap associationMap = new LinkedHashMap();
associationMap.put("GUEST", "Guest");
associationMap.put("MEMBERS", "Members");
associationMap.put("PROJECT MANAGER", "Project Manager");
%>
<c:set var="associationMap" value="<%= associationMap %>"/>
<c:set var="participantType" value="<%= PrincipalBean.USER %>"/>
<jca:participantPicker
actionClass="com.ptc.netmarkets.principal.CustomPrincipalCommands"
actionMethod="addPrincipal"
participantType="${participantType}"
emailAllowed="true"
defaultAssociation="GUEST"
associationMap="${associationMap}"
associationLabel="Add to Role"
>
</jca:participantPicker>
以下の図のように、上記のコードは関連付けドロップダウンをレンダリングします。
上記の例では、役割を参加者に追加します。目的の参加者を参加者リストに移動し、関連付けリストから役割を選択して「OK」をクリックします。actionMethod コードは以下のようになります。
public class CustomPrincipalCommands {
public static FormResult addPrincipal(NmCommandBean cb) throws WTException {
FormResult result = new FormResult(FormProcessingStatus.SUCCESS);
result.setNextAction(FormResultAction.REFRESH_OPENER);
String principals = cb.getTextParameter(PrincipalBean.PARAM_SELECTED _PRINCIPALS);
if (principals == null) {
result.setStatus(FormProcessingStatus.FAILURE);
return result;
}
ArrayList<String> selectedPrincipals = new ArrayList<String>();
int start = 0;
int pos = principals.indexOf("#", start);
while (pos != -1) {
String principal = principals.substring(start, pos);
selectedPrincipals.add(principal);
start = pos + 1;
pos = principals.indexOf("#", start);
}
String role = cb.getTextParameter(PrincipalBean.PARAM_ASSOCIATION);
ArrayList result = NmRoleHelper.service.addUsersToRole(cb, role, selectedPrincipals);
return result;
}
}
上記のコードでハイライトされているように、選択した関連付けをテキストパラメータから抽出できます。