IdeaStandardSetController クラス
IdeaStandardSetController オブジェクトは、StandardSetController で提供される機能のほか、アイデア固有の機能を提供します。
名前空間
使用方法
上記のメソッドのほか、IdeaStandardSetController クラスは StandardSetController に関連付けられたメソッドを継承します。
インスタンス化
IdeaStandardSetController オブジェクトはインスタンス化できません。アイデアの標準リストコントローラーを使用する場合は、カスタム拡張コントローラーのコンストラクターを介してインスタンスを���得できます。
例: プロファイルページの表示
次の例では、IdeaStandardSetController オブジェクトのカスタムリストコントローラーのコンストラクターでの使用方法を示します。
1public class MyIdeaProfileExtension {
2 private final ApexPages.IdeaStandardSetController ideaSetController;
3
4 public MyIdeaProfileExtension(ApexPages.IdeaStandardSetController controller) {
5 ideaSetController = (ApexPages.IdeaStandardSetController)controller;
6 }
7
8 public List<Idea> getModifiedIdeas() {
9 Idea[] ideas = ideaSetController.getIdeaList();
10 // modify ideas here
11 return ideas;
12 }
13
14}次の Visualforce マークアップは、上記の IdeaStandardSetController の例と <ideas:profileListOutputLink> コンポーネントによって、最新の回答、登録されたアイデア、ユーザーに関連する投票の一覧を表示するプロファイルページがどのように表示されるかを示します。この例では特定のユーザー ID を識別しないため、ページには現在ログインしているユーザーのプロファイルページが自動的に表示されます。この例が機能するためには、ページ名を profilePage にする必要があります。
1<!-- page named profilePage -->
2<apex:page standardController="Idea" extensions="MyIdeaProfileExtension" recordSetVar="ideaSetVar">
3 <apex:pageBlock >
4 <ideas:profileListOutputLink sort="recentReplies" page="profilePage">
5 Recent Replies</ideas:profileListOutputLink>
6 |
7 <ideas:profileListOutputLink sort="ideas" page="profilePage">Ideas Submitted
8 </ideas:profileListOutputLink>
9 |
10 <ideas:profileListOutputLink sort="votes" page="profilePage">Ideas Voted
11 </ideas:profileListOutputLink>
12 </apex:pageBlock>
13 <apex:pageBlock >
14 <apex:dataList value="{!modifiedIdeas}" var="ideadata">
15 <ideas:detailoutputlink ideaId="{!ideadata.id}" page="viewPage">
16 {!ideadata.title}</ideas:detailoutputlink>
17 </apex:dataList>
18 </apex:pageBlock>
19</apex:page>前の例では、<ideas:detailoutputlink> コンポーネントは、特定のアイデアの詳細ページを表示する次の Visualforce マークアップにリンクします。この例が機能するためには、ページ名を viewPage にする必要があります。
1<!-- page named viewPage -->
2<apex:page standardController="Idea">
3 <apex:pageBlock title="Idea Section">
4 <ideas:detailOutputLink page="viewPage" ideaId="{!idea.id}">{!idea.title}
5 </ideas:detailOutputLink>
6 <br/><br/>
7 <apex:outputText>{!idea.body}</apex:outputText>
8 </apex:pageBlock>
9</apex:page>例: 上位のアイデアとコメント、最近のアイデアとコメント、最も人気のあるアイデアとコメントのリストを表示
次の例では、IdeaStandardSetController オブジェクトのカスタムリストコントローラーのコンストラクターでの使用方法を示します。
1public class MyIdeaListExtension {
2 private final ApexPages.IdeaStandardSetController ideaSetController;
3
4 public MyIdeaListExtension (ApexPages.IdeaStandardSetController controller) {
5 ideaSetController = (ApexPages.IdeaStandardSetController)controller;
6 }
7
8 public List<Idea> getModifiedIdeas() {
9 Idea[] ideas = ideaSetController.getIdeaList();
10 // modify ideas here
11 return ideas;
12 }
13}次の Visualforce マークアップは、上記の IdeaStandardSetController 例を <ideas:listOutputLink> コンポーネントと共に使用して、最近、上位、最も人気あるアイデアとコメントをどのように表示するかを示します。この例が機能するためには、ページ名を listPage にする必要があります。
1<!-- page named listPage -->
2<apex:page standardController="Idea" extensions="MyIdeaListExtension" recordSetVar="ideaSetVar">
3 <apex:pageBlock >
4 <ideas:listOutputLink sort="recent" page="listPage">Recent Ideas
5 </ideas:listOutputLink>
6 |
7 <ideas:listOutputLink sort="top" page="listPage">Top Ideas
8 </ideas:listOutputLink>
9 |
10 <ideas:listOutputLink sort="popular" page="listPage">Popular Ideas
11 </ideas:listOutputLink>
12 |
13 <ideas:listOutputLink sort="comments" page="listPage">Recent Comments
14 </ideas:listOutputLink>
15 </apex:pageBlock>
16 <apex:pageBlock >
17 <apex:dataList value="{!modifiedIdeas}" var="ideadata">
18 <ideas:detailoutputlink ideaId="{!ideadata.id}" page="viewPage">
19 {!ideadata.title}</ideas:detailoutputlink>
20 </apex:dataList>
21 </apex:pageBlock>
22</apex:page>前の例では、<ideas:detailoutputlink> コンポーネントは、特定のアイデアの詳細ページを表示する次の Visualforce マークアップにリンクします。このページの名前は viewPage にする必要があります。
1<!-- page named viewPage -->
2<apex:page standardController="Idea">
3 <apex:pageBlock title="Idea Section">
4 <ideas:detailOutputLink page="viewPage" ideaId="{!idea.id}">{!idea.title}
5 </ideas:detailOutputLink>
6 <br/><br/>
7 <apex:outputText>{!idea.body}</apex:outputText>
8 </apex:pageBlock>
9</apex:page>IdeaStandardSetController メソッド
IdeaStandardSetController のインスタンスメソッドを次に示します。
getIdeaList()
現在のページセットの参照のみアイデアのリストを返します。
署名
public Idea[] getIdeaList()
戻り値
型: Idea[]
使用方法
<ideas:listOutputLink>、<ideas:profileListOutputLink>、および <ideas:detailOutputLink> コンポーネントを使用して、アイデアリストや詳細ページのほか、プロファイルページを表示できます (下記の例を参照)。次に、このメソッドで返されるプロパティのリストを示します。
- Body
- Categories
- Category
- CreatedBy.CommunityNickname
- CreatedBy.Id
- CreatedDate
- Id
- LastCommentDate
- LastComment.Id
- LastComment.CommentBody
- LastComment.CreatedBy.CommunityNickname
- LastComment.CreatedBy.Id
- NumComments
- Status
- Title
- VoteTotal