apex
public with sharing class Apiget {
//表示用リストクラス
public List<apiname> apinameList{get;set;}
public list<IComparable> iComparaList{get;set;}
public with sharing class apiname {
//データ格納用クラス
public String objectLabel{get;set;}
public String objectName{get;set;}
public String objectkeyPrefix{get;set;}
public boolean custom{get;set;}
}
//コンストラクタ
public void Apiget(){
//全オブジェクト情報取得
MAP<string,Schema.SObjectType> sobMap =schema.getGlobalDescribe();
apinameList = new List<apiname>();
iComparaList = new list<IComparable>();
for(String sobStr : sobMap.keySet()){
apiname apnameclass = new apiname();
Schema.SObjectType sobType = sobMap.get(sobStr);
Schema.DescribeSObjectResult sobRes = sobType.getDescribe();
apnameclass.objectLabel = sobRes.label;
apnameclass.objectName = sobRes.name;
apnameclass.objectkeyPrefix = sobRes.keyPrefix;
apnameclass.custom = sobRes.custom;
iComparaList.add(new IComparable(apnameclass));
}
iComparaList.sort();
}
// ソート
public class IComparable implements Comparable {
public apiname oppy{get;set;}
public IComparable(apiname op) {
oppy = op;
}
public Integer compareTo(Object compareTo) {
// Cast argument to OpportunityWrapper
IComparable compareToOppy = (IComparable)compareTo;
Integer returnValue = 0;
if (oppy.custom ) {
returnValue = 0;
} else if (!oppy.custom) {
returnValue = 1;
}
return returnValue;
}
}
}
VisualForce
<apex:page controller="Apiget" action="{!Apiget}" >
<apex:form id="frm">
<apex:pageBlock >
<apex:pageBlockTable value="{!iComparaList}" var="item" id="theRepeat">
<apex:column value="{!item.oppy.custom}">
<apex:facet name="header">
カスタム区分
</apex:facet>
</apex:column>
<apex:column value="{!item.oppy.objectLabel}">
<apex:facet name="header">
ラベル名
</apex:facet>
</apex:column>
<apex:column value="{!item.oppy.objectName}">
<apex:facet name="header">
API名
</apex:facet>
</apex:column>
<apex:column value="{!item.oppy.objectkeyPrefix}">
<apex:facet name="header">
ID
</apex:facet>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>