You need to sign in to do that
Don't have an account?
sagar rathi
test class for following...
<apex:page controller="mycontroller">
<apex:pageBlock >
<apex:form >
<apex:actionFunction name="ObjectFileds" action="{!ObjectFields}"/>
<!--apex:commandButton value="Show Table" action="{!ShowTable}"/-->
<apex:pageBlockSection >
<apex:pageBlockSectionItem >
<apex:outputLabel value="Select Object"/>
<apex:selectList size="1" value="{!SelectedObject}" onchange="ObjectFileds();">
<apex:selectOption itemLabel="--None--" itemValue="--None--"/>
<apex:selectoptions value="{!supportedObject}" />
</apex:selectlist>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="thePage" >
<apex:outputLabel value="Select Field" />
<apex:outputpanel id="out">
<apex:selectList multiselect="true" size="5" value="{!SelectedFields}">
<apex:selectOption itemLabel="--None--" itemValue="--None--"/>
<apex:selectoptions value="{!fieldLableAPI}" />
</apex:selectlist>
</apex:outputpanel>
</apex:pageBlockSectionItem>
<apex:pageblockTable value="{!fieldInfo}" var="item" >
<!-- <apex:column value="{!item.name}" headerValue="Name"/>
<apex:column value="{!item.Label}" headerValue="Label"/>
<apex:column value="{!item.Type}" headerValue="Type"/> -->
<apex:repeat value="{!displayProperties}" var="f">
<apex:column value="{!item[f]}"/>
</apex:repeat> -->
</apex:pageblockTable>
</apex:pageBlockSection>
<br/>
<apex:commandButton value="Customize" action="{!customize}"/>
</apex:form>
</apex:pageBlock>
</apex:page>
----------------------------
public with Sharing class mycontroller
{
public List<selectoption> supportedObject {get; set;}
public String SelectedObject {get; set;}
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
//Set<String> objectKeys = gd.keySet();
public List<SelectOption> fieldLableAPI {get; set;}
public List<String> SelectedFields {get; set;}
public List<sObject> ObjectList {get; set;}
public PageReference savePage;
//public List<Schema.DescribeFieldResult> fieldInfo{get;set;}
public List<String> selectedProperties{get;set;}
public Set<String> selectedNames = new Set<String>{'Name'};
public mycontroller()
{
supportedObject = new List<selectoption>() ;
SelectedObject = '--None--' ;
fieldLableAPI = new List<SelectOption>() ;
SelectedFields = new List<String>() ;
ObjectList = new List<sObject>() ;
selectedProperties = new List<String>();
for(Schema.SObjectType item : ProcessInstance.TargetObjectId.getDescribe().getReferenceTo())
{
if(item.getDescribe().Custom)
{
supportedObject.add(new SelectOption(item.getDescribe().getName(), item.getDescribe().getLabel() ));
}
}
}
public void ObjectFields()
{
fieldLableAPI.clear();
if(SelectedObject != '--None--')
{
Schema.SObjectType systemObjectType = gd.get(SelectedObject);
Schema.DescribeSObjectResult r = systemObjectType.getDescribe();
Map<String, Schema.SObjectField> M = r.fields.getMap();
for(Schema.SObjectField fieldAPI : M.values())
{
if(fieldAPI.getdescribe().Iscustom())
{
fieldLableAPI.add(new SelectOption(fieldAPI.getDescribe().getName() , fieldAPI.getDescribe().getLabel())) ;
}
}}
else
{
fieldLableAPI.clear();
//fieldLableAPI=null;
}
}
public Schema.DescribeFieldResult[] getFieldInfo(){
DescribeFieldResult[] sobFieldDescribes = new DescribeFieldResult[]{};
if(SelectedObject=='--None--'){
return null;
}
else{
Schema.SObjectType sobType = gd.get(SelectedObject);
System.debug('P---'+sobType);
DescribeSObjectResult sobDescribe = sobType.getDescribe();
Map<String, Schema.SObjectField> fields = sobDescribe.fields.getMap();
for(String s:selectedFields){
Schema.SobjectField sobField = fields.get(s);
DescribeFieldResult sobFieldDescribe = sobField.getDescribe();
sobFieldDescribes.add(sobFieldDescribe);
}
return sobFieldDescribes;
}
}
public PageReference showTable(){
getFieldInfo();
return null;
}
public PageReference customize(){
savePage = ApexPages.currentPage();
return Page.objPage2new;
}
public PageReference show(){
//getFieldInfo();
getDisplayProperties();
return savePage;
}
public List<String> getDisplayProperties(){
List<String> displayProp = new List<String>(selectedProperties);
System.debug('!!!----'+selectedProperties);
displayProp.sort();
// getFieldInfo();
return displayProp;
}
}
second vf page
<apex:page controller="mycontroller">
<apex:form >
<apex:pageBlock title="Select Properties:">
<apex:selectList value="{!selectedProperties}" size="4" multiselect="true">
<apex:selectOption itemLabel="Name" itemValue="Name"/>
<apex:selectOption itemLabel="Label" itemValue="Label"/>
<apex:selectOption itemLabel="Type" itemValue="Type"/>
<apex:selectOption itemLabel="Length" itemValue="Length"/>
</apex:selectList>
<apex:pageBlockButtons >
<apex:commandButton value="ShowProp" action="{!show}"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
<apex:pageBlock >
<apex:form >
<apex:actionFunction name="ObjectFileds" action="{!ObjectFields}"/>
<!--apex:commandButton value="Show Table" action="{!ShowTable}"/-->
<apex:pageBlockSection >
<apex:pageBlockSectionItem >
<apex:outputLabel value="Select Object"/>
<apex:selectList size="1" value="{!SelectedObject}" onchange="ObjectFileds();">
<apex:selectOption itemLabel="--None--" itemValue="--None--"/>
<apex:selectoptions value="{!supportedObject}" />
</apex:selectlist>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="thePage" >
<apex:outputLabel value="Select Field" />
<apex:outputpanel id="out">
<apex:selectList multiselect="true" size="5" value="{!SelectedFields}">
<apex:selectOption itemLabel="--None--" itemValue="--None--"/>
<apex:selectoptions value="{!fieldLableAPI}" />
</apex:selectlist>
</apex:outputpanel>
</apex:pageBlockSectionItem>
<apex:pageblockTable value="{!fieldInfo}" var="item" >
<!-- <apex:column value="{!item.name}" headerValue="Name"/>
<apex:column value="{!item.Label}" headerValue="Label"/>
<apex:column value="{!item.Type}" headerValue="Type"/> -->
<apex:repeat value="{!displayProperties}" var="f">
<apex:column value="{!item[f]}"/>
</apex:repeat> -->
</apex:pageblockTable>
</apex:pageBlockSection>
<br/>
<apex:commandButton value="Customize" action="{!customize}"/>
</apex:form>
</apex:pageBlock>
</apex:page>
----------------------------
public with Sharing class mycontroller
{
public List<selectoption> supportedObject {get; set;}
public String SelectedObject {get; set;}
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
//Set<String> objectKeys = gd.keySet();
public List<SelectOption> fieldLableAPI {get; set;}
public List<String> SelectedFields {get; set;}
public List<sObject> ObjectList {get; set;}
public PageReference savePage;
//public List<Schema.DescribeFieldResult> fieldInfo{get;set;}
public List<String> selectedProperties{get;set;}
public Set<String> selectedNames = new Set<String>{'Name'};
public mycontroller()
{
supportedObject = new List<selectoption>() ;
SelectedObject = '--None--' ;
fieldLableAPI = new List<SelectOption>() ;
SelectedFields = new List<String>() ;
ObjectList = new List<sObject>() ;
selectedProperties = new List<String>();
for(Schema.SObjectType item : ProcessInstance.TargetObjectId.getDescribe().getReferenceTo())
{
if(item.getDescribe().Custom)
{
supportedObject.add(new SelectOption(item.getDescribe().getName(), item.getDescribe().getLabel() ));
}
}
}
public void ObjectFields()
{
fieldLableAPI.clear();
if(SelectedObject != '--None--')
{
Schema.SObjectType systemObjectType = gd.get(SelectedObject);
Schema.DescribeSObjectResult r = systemObjectType.getDescribe();
Map<String, Schema.SObjectField> M = r.fields.getMap();
for(Schema.SObjectField fieldAPI : M.values())
{
if(fieldAPI.getdescribe().Iscustom())
{
fieldLableAPI.add(new SelectOption(fieldAPI.getDescribe().getName() , fieldAPI.getDescribe().getLabel())) ;
}
}}
else
{
fieldLableAPI.clear();
//fieldLableAPI=null;
}
}
public Schema.DescribeFieldResult[] getFieldInfo(){
DescribeFieldResult[] sobFieldDescribes = new DescribeFieldResult[]{};
if(SelectedObject=='--None--'){
return null;
}
else{
Schema.SObjectType sobType = gd.get(SelectedObject);
System.debug('P---'+sobType);
DescribeSObjectResult sobDescribe = sobType.getDescribe();
Map<String, Schema.SObjectField> fields = sobDescribe.fields.getMap();
for(String s:selectedFields){
Schema.SobjectField sobField = fields.get(s);
DescribeFieldResult sobFieldDescribe = sobField.getDescribe();
sobFieldDescribes.add(sobFieldDescribe);
}
return sobFieldDescribes;
}
}
public PageReference showTable(){
getFieldInfo();
return null;
}
public PageReference customize(){
savePage = ApexPages.currentPage();
return Page.objPage2new;
}
public PageReference show(){
//getFieldInfo();
getDisplayProperties();
return savePage;
}
public List<String> getDisplayProperties(){
List<String> displayProp = new List<String>(selectedProperties);
System.debug('!!!----'+selectedProperties);
displayProp.sort();
// getFieldInfo();
return displayProp;
}
}
second vf page
<apex:page controller="mycontroller">
<apex:form >
<apex:pageBlock title="Select Properties:">
<apex:selectList value="{!selectedProperties}" size="4" multiselect="true">
<apex:selectOption itemLabel="Name" itemValue="Name"/>
<apex:selectOption itemLabel="Label" itemValue="Label"/>
<apex:selectOption itemLabel="Type" itemValue="Type"/>
<apex:selectOption itemLabel="Length" itemValue="Length"/>
</apex:selectList>
<apex:pageBlockButtons >
<apex:commandButton value="ShowProp" action="{!show}"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
Sergey Trusov
Create instance of ypur controller and invoke your methods