From ERDDelayedObjectCreationAssignment:

    /**
    * Static constructor required by the EOKeyValueUnarchiver
     * interface. If this isn't implemented then the default
     * behavior is to construct the first super class that does
     * implement this method. Very lame.
     * @param eokeyvalueunarchiver to be unarchived
     * @return decoded assignment of this class
     */    
    public static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver 
eokeyvalueunarchiver)  {
        return new ERDDelayedObjectCreationAssignment(eokeyvalueunarchiver);
    }

You may need to override the other constructor too. Lots of boilerplate with 
these things, unfortunately.

On Dec 9, 2014, at 3:34 PM, James Cicenia <ja...@jimijon.com> wrote:

> It never fires  :-(
> 
> public class DelayedCustomReportKeysAssignment extends ERDDelayedAssignment{
>       public DelayedCustomReportKeysAssignment(EOKeyValueUnarchiver u) {
>               super(u);
>               // TODO Auto-generated constructor stub
>       }
> 
>       static final long serialVersionUID = 1L;
> 
>     public Object fireNow(D2WContext c) {
>       String keyPath = "session.objectStore." + c.entity().name() + 
> "_reportKeys";
>       Object keys = c.valueForKeyPath(keyPath);
>       return keys;
>     }
> 
> }
> 
> 
> 
>> On Dec 9, 2014, at 4:28 PM, Ramsey Gurley <rgur...@smarthealth.com> wrote:
>> 
>> Put a breakpoint on the line
>> 
>> return keys;
>> 
>> It sounds like keys is a string, not an array.
>> 
>> On Dec 9, 2014, at 3:17 PM, James Cicenia <ja...@jimijon.com> wrote:
>> 
>>> 
>>> Uh… that first rule.
>>> 
>>> I created my DelayedAssignment that extended ERDDelayedAssignment and 
>>> implemented fireNow
>>> 
>>> I put in a rule to for displayPropertyKeys but it crashes on  =  “”
>>> 
>>> 100 : pageConfiguration like ‘ListCustom*' => displayPropertyKeys = "" 
>>> [DelayedCustomReportKeysAssignment]
>>> 
>>> java.lang.ClassCastException: java.lang.String cannot be cast to 
>>> com.webobjects.foundation.NSArray
>>> 
>>> 
>>> 
>>>> On Dec 9, 2014, at 3:52 PM, Ramsey Gurley <rgur...@smarthealth.com> wrote:
>>>> 
>>>> :-)
>>>> 
>>>> 100 : task = ‘list’ and entity.userInfo.availableKeys.count > 0 => 
>>>> displayPropertyKeys = "” [MyDelayedAssignment]
>>>> 
>>>> MyDelayedAssignment.java
>>>> 
>>>> public Object fireNow(D2WContext c) {
>>>>    String keyPath = “session.objectStore.” + c.pageName + “_availableKeys”;
>>>>    Object keys = c.valueForKeyPath(keyPath);
>>>>    //TODO Do something if keys is null
>>>>    return keys;
>>>> }
>>>> 
>>>> On Dec 9, 2014, at 2:41 PM, James Cicenia <ja...@jimijon.com> wrote:
>>>> 
>>>>> Is there a generic way to get the PageConfiguration and then the delayed 
>>>>> response?
>>>>> Or
>>>>> Do I have to create a 
>>>>> 90 : pageConfiguration = 'ListCustomCategory' => displayPropertyKeys = 
>>>>> "session.objectStore.ListCustomCategory_reportKeys" 
>>>>> [er.directtoweb.ERDDelayedKeyValueAssignment]
>>>>> for each Entity?
>>>>> 
>>>>> Anyway, this method does work so I will definitely go this route.
>>>>> thanks
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> On Dec 9, 2014, at 3:13 PM, Ramsey Gurley <rgur...@smarthealth.com> 
>>>>>> wrote:
>>>>>> 
>>>>>> Yep, it’s a full blown NSKeyValueCodingAdditions object backed by the 
>>>>>> same dictionary that holds the page cache I believe.
>>>>>> 
>>>>>> On Dec 9, 2014, at 2:06 PM, James Cicenia <ja...@jimijon.com> wrote:
>>>>>> 
>>>>>>> OK -
>>>>>>> 
>>>>>>> Though I added the cover methods to all entities, so I will still go 
>>>>>>> with that method vs. user info and eomodeler.
>>>>>>> 
>>>>>>> Now what does the syntax 
>>>>>>> "session.objectStore.<pageConfiguration>_availableKeys” mean?
>>>>>>> 
>>>>>>> Is objectStore a custom dictionary in your Session?
>>>>>>> 
>>>>>>> 
>>>>>>>> On Dec 9, 2014, at 2:53 PM, Ramsey Gurley <rgur...@smarthealth.com> 
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Just keep in mind that while the context may be one of many instances, 
>>>>>>>> the rule cache is global. It might seem to work fine for you in 
>>>>>>>> Eclipse. Can you say that when multiple users are accessing the same 
>>>>>>>> page concurrently on the same app instance? It works great, until it 
>>>>>>>> doesn’t :-)
>>>>>>>> 
>>>>>>>> Were I doing this, I would put the keys in the userInfo like you were 
>>>>>>>> doing. I would then take the selected values from the custom page and 
>>>>>>>> stuff it in say, 
>>>>>>>> session.objectStore.<pageConfiguration>_availableKeys. Then I would 
>>>>>>>> have a custom delayed assignment which pulled those keys back out of 
>>>>>>>> the session and provided them to the displayPropertyKeys RHS key.
>>>>>>>> 
>>>>>>>> On Dec 9, 2014, at 1:36 PM, James Cicenia <ja...@jimijon.com> wrote:
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> I am using D2W except for on custom screens like my column picker.
>>>>>>>>> I am using two wobrowsers for the user to pick columns and some 
>>>>>>>>> ajaxsubmitbuttons
>>>>>>>>> 
>>>>>>>>> Typical:
>>>>>>>>> 
>>>>>>>>> Leftlist   <<-->> RightList
>>>>>>>>> 
>>>>>>>>> Then some buttons:
>>>>>>>>> 
>>>>>>>>> PDF  Excel  Screen
>>>>>>>>> 
>>>>>>>>> So since I am generating a new “List” with the buttons, the setting 
>>>>>>>>> of the d2wcontext directly works fine.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Dec 9, 2014, at 2:21 PM, Ramsey Gurley <rgur...@smarthealth.com> 
>>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Using D2W? In this case, you could make a rule per entity if that’s 
>>>>>>>>>> what you need.
>>>>>>>>>> 
>>>>>>>>>> 100: entity.name=‘Blah’ => availableKeys = {“name”=“Name”; “-DATES-“ 
>>>>>>>>>> = “— Dates —“;} [Assignment]
>>>>>>>>>> 
>>>>>>>>>> Or store in the userInfo like you were doing
>>>>>>>>>> 
>>>>>>>>>> 100: *true* => availableKeys = entity.userInfo.availableKeys 
>>>>>>>>>> [ERDKeyValueAssignment]
>>>>>>>>>> 
>>>>>>>>>> As you noted, entering data via EOModeler for userInfo is a bit of a 
>>>>>>>>>> pain. You may want to get the userInfo started and then edit the 
>>>>>>>>>> entity.plist directly in a text editor instead.
>>>>>>>>>> 
>>>>>>>>>> On Dec 9, 2014, at 9:22 AM, James Cicenia <ja...@jimijon.com> wrote:
>>>>>>>>>> 
>>>>>>>>>>> I want to run a method called availableKeys which just returns an 
>>>>>>>>>>> NSArray of keypaths for that Entity.
>>>>>>>>>>> 
>>>>>>>>>>> I will be creating a picker of keys that are pre determined. I was 
>>>>>>>>>>> going to use the UserInfo but it made EOModeler act a bit funny.
>>>>>>>>>>> So I am doing something like:
>>>>>>>>>>> 
>>>>>>>>>>>     public NSMutableDictionary availableKeys(){
>>>>>>>>>>>         if(availableKeys == null){
>>>>>>>>>>>             availableKeys.takeValueForKeyPath("Name", "name”);
>>>>>>>>>>>             availableKeys.takeValueForKeyPath("--- Dates ---", 
>>>>>>>>>>> "-DATES-");
>>>>>>>>>>>             availableKeys.takeValueForKeyPath("Active Date", 
>>>>>>>>>>> "activeDt");
>>>>>>>>>>>         }
>>>>>>>>>>>         return availableKeys;
>>>>>>>>>>>     }
>>>>>>>>>>> 
>>>>>>>>>>> So in my “Generic” pick list component I want to pass in the 
>>>>>>>>>>> displayGroup, let them pick the columns of the report, and then 
>>>>>>>>>>> process.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On Dec 9, 2014, at 10:14 AM, Ramsey Gurley 
>>>>>>>>>>>> <rgur...@smarthealth.com> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> EOEntity entity = 
>>>>>>>>>>>> EOModelGroup.defaultModelGroup().entityNamed(entityName);
>>>>>>>>>>>> Class class = _NSUtilities.classWithName(entity.className());
>>>>>>>>>>>> Method method = class.getMethod(methodName, parameterTypes);
>>>>>>>>>>>> method.invoke(null, parameters); //null target for static methods
>>>>>>>>>>>> 
>>>>>>>>>>>> You could do it through java’s reflection APIs, but that sounds 
>>>>>>>>>>>> really fishy. Maybe if you explain what you are trying to 
>>>>>>>>>>>> accomplish, we could offer better insight. For instance, you may 
>>>>>>>>>>>> be better served using the clazz pattern if you want static 
>>>>>>>>>>>> methods you can override.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> On Dec 9, 2014, at 8:37 AM, James Cicenia <ja...@jimijon.com> 
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I have a string that is an EntityName.
>>>>>>>>>>>>> I want to run that entity’s static class method.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> do I have to do this?:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>             EOEnterpriseObject myClass = 
>>>>>>>>>>>>> EOUtilities.createAndInsertInstance( ec, entityName) ;
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I really don’t want to create an instance.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>> James
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>>>>>>>>>>>>> 
>>>>>>>>>>>>> This email sent to rgur...@smarthealth.com
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to