From 5610b9b6aa89a07eb497f6a34723ab6296e5bad7 Mon Sep 17 00:00:00 2001 From: "Christian G. Warden" Date: Sun, 20 Apr 2014 12:24:29 -0700 Subject: [PATCH] Include picklistValues in describe result Include the picklistValues attribute with each field returned with describe. For Picklist, MultiPicklist, and Combobox fields, return the picklist options; otherwise, return an empty array. --- RemoteTKController.cls | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/RemoteTKController.cls b/RemoteTKController.cls index 859cd3a..7e3419e 100644 --- a/RemoteTKController.cls +++ b/RemoteTKController.cls @@ -86,6 +86,26 @@ public class RemoteTKController { return null; } + private static List picklistOptions(Schema.DescribeFieldResult field) { + List picklistOptions = new List(); + Schema.DisplayType fieldType = field.getType(); + if (fieldType != Schema.DisplayType.Picklist && + fieldType != Schema.DisplayType.MultiPicklist && + fieldType != Schema.DisplayType.Combobox) { + return picklistOptions; + } + List picklistValues = field.getPicklistValues(); + for (Schema.PicklistEntry picklistValue: picklistValues) { + Map picklistOption = new Map(); + picklistOption.put('value', picklistValue.getValue()); + picklistOption.put('label', picklistValue.getValue()); + picklistOption.put('active', picklistValue.isActive()); + picklistOption.put('defaultValue', picklistValue.isDefaultValue()); + picklistOptions.add(picklistOption); + } + return picklistOptions; + } + @remoteAction public static String describe(String objtype) { // Just enough to make the sample app work! @@ -113,7 +133,8 @@ public class RemoteTKController { if (!references.isEmpty()) { field.put('referenceTo', references); } - + field.put('picklistValues', picklistOptions(descField)); + fields.add(field); }