Re: adding a component to a D2W page
Re: adding a component to a D2W page
- Subject: Re: adding a component to a D2W page
- From: David LeBer <email@hidden>
- Date: Mon, 10 Sep 2012 15:21:21 -0400
Ted,
You don't need the WOComponentContent (unless you plan on wrapping content with your 'instructions' component).
You probably want to use something more descriptive than 'compName', i.e: headerInstructionComponentName.
Some thoughts:
If you can eliminate the dependency on pushing a value into the d2wContext that would be cleaner (i.e: reduce the squickness I feel).
1. Wrap the instruction switch component with a conditional that is controlled by rules. With a default rule to keep it hidden and a specific rule to show it on the pages where it needs to light up.
2. Replace the fixed text with localized text keyed off the page configuration name. Some think like: "[PageConfigurationName][TabName]InstructionText" (i.e: EditUserOverviewInstructionText). So you only need one 'Instruction' component, and the text can change based on the page config and tab (if you're using them). You could make this value overrideable by a value in the rules or pushing a value in the d2wContext if you absolutely needed to.
D
--
David LeBer
Codeferous Software
On 2012-09-10, at 1:29 PM, Theodore Petrosky <email@hidden> wrote:
> I must be doing something wrong because it worked so easily.
>
> I created a component "AgendaInstructions" with:
>
> these are the agenda instructions From the AgendaInstructions component!!!
> <webobject name=ComponentContent></webobject>
>
> in the html and:
>
> ComponentContent: WOComponentContent {
> }
>
> in the wod.
>
> in the method that returns the page:
> page.d2wContext().takeValueForKey("AgendaInstructions", "compName");
>
> in my ListRepetition component:
>
> <webobject name = "InstructionComponent"/>
>
> InstructionComponent : WOSwitchComponent {
> WOComponentName = d2wContext.compName;
> }
>
> Is there anything more I 'should' be doing? It seemed too easy.
>
> Ted
>
>
> --- On Mon, 9/10/12, David LeBer <email@hidden> wrote:
>
>> From: David LeBer <email@hidden>
>> Subject: Re: adding a component to a D2W page
>> To: "email@hidden Development" <email@hidden>
>> Date: Monday, September 10, 2012, 12:48 PM
>> WOSwitchComponent is your friend.
>>
>> Look at the templates, they are used everywhere.
>>
>> D
>>
>> --
>> David LeBer
>> Codeferous Software
>>
>> On 2012-09-10, at 12:21 PM, Theodore Petrosky <email@hidden>
>> wrote:
>>
>>> ok this is what I figured out so far:
>>>
>>> 10 : (look = 'ERModernLook' and (task = 'list' or task
>> = 'select' or (task = 'edit' and subTask = 'list'))) =>
>> repetitionComponentName = "ERMDSimpleListPageRepetition"
>> [com.webobjects.directtoweb.Assignment]
>>>
>>> from that rule, I see that if we are creating a
>> ListPage, this rule says to use
>> "ERMDSimpleListPageRepetition".
>>>
>>> So I created my own framework, and created a component
>> "TPMDSimpleListPageRepetition" copying the html, wod, java
>> where they belonged.
>>>
>>> then I created a rule:
>>>
>>> 10 : (look = 'ERModernLook' and (task = 'list' or task
>> = 'select' or (task = 'edit' and subTask = 'list'))) =>
>> repetitionComponentName = "TPMDSimpleListPageRepetition"
>> [com.webobjects.directtoweb.Assignment]
>>>
>>> and my D2W app is using my ListPageRep.
>>>
>>> so my next step was to create a WOString at the top of
>> my new shiny component: <webobject name =
>> "CopyOnTop"/> and in the wod:
>>>
>>> CopyOnTop : WOString {
>>> value = d2wContext.topCopy;
>>> }
>>>
>>> so that in my method that calls in the listPage I
>> added:
>>>
>>> page.d2wContext().takeValueForKey("This is some copy
>> Call Reports", "topCopy");
>>>
>>> and it gives me what I want. I can just wrap it in a
>> div and the stylist and go to town.
>>>
>>> but, can I add a WOComponent instead of the WOString?
>> If yes, the bindings are not obvious. I will keep looking
>> maybe a solution will jump out and bite me.
>>>
>>> adding a component would be handier, easier if I had a
>> few paragraphs of information to add.
>>>
>>> Ted
>>>
>>>
>>> --- On Wed, 9/5/12, Jesse Tayler <email@hidden>
>> wrote:
>>>
>>>> From: Jesse Tayler <email@hidden>
>>>> Subject: Re: adding a component to a D2W page
>>>> To: "Theodore Petrosky" <email@hidden>
>>>> Date: Wednesday, September 5, 2012, 11:01 AM
>>>> I'm pretty sure you are getting
>>>> confused but I'm not looking at it either.
>>>>
>>>> so, the factory is just going to return whatever
>> list page a
>>>> rule somewhere tells it to, right?
>>>>
>>>> so, there's not "the" list page, there's some rule
>> that's
>>>> saying with this entity, and this task, use this
>> page.
>>>>
>>>> so, whatever your tab menu is doing, it's calling a
>> rule to
>>>> get the list page --
>>>>
>>>> you might have to write six rules to get the list
>> page to
>>>> fire when you want, but it doesn't matter how many
>> pages you
>>>> create - you're the programmer!
>>>>
>>>> now, if you're lost on this - try writing some
>> rules that do
>>>> something you can see clearly on screen in the same
>> context
>>>> -- this will help you see what rules are firing and
>> what
>>>> level of specificity you need to override whatever
>> is
>>>> currently firing.
>>>>
>>>> sometimes you can even find the rule that's firing
>> in some
>>>> framework and copy it, raise the priority and
>> change the
>>>> page name to your page.
>>>>
>>>> see where I'm going on that?
>>>>
>>>> hope that sheds some light --
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sep 5, 2012, at 10:44 AM, Theodore Petrosky
>> <email@hidden>
>>>> wrote:
>>>>
>>>>> this is what I thought however:
>>>>>
>>>>> lpi =
>>>>
>> D2W.factory().listPageForEntityNamed(CallReport.ENTITY_NAME,
>>>> session());
>>>>>
>>>>> This is the page I need to target. the list
>> page.
>>>>>
>>>>> when I click a tab in the menu, it fires off a
>> method
>>>> to return a listPage.
>>>>>
>>>>> and it seems that I would have to create 6
>> different
>>>> listPages as the markup to add is different for
>> each tab.
>>>>>
>>>>> Ted
>>>>>
>>>>> --- On Wed, 9/5/12, Jesse Tayler <email@hidden>
>>>> wrote:
>>>>>
>>>>>> From: Jesse Tayler <email@hidden>
>>>>>> Subject: Re: adding a component to a D2W
>> page
>>>>>> To: "Theodore Petrosky" <email@hidden>
>>>>>> Date: Wednesday, September 5, 2012, 10:16
>> AM
>>>>>> hmm -- I doubt it --
>>>>>>
>>>>>> I think I'm saying make a list page called
>>
>>>>>>
>>>>>> TedsCoolListPage.wo
>>>>>>
>>>>>> Inherit from whatever list page you are
>> using now.
>>>>>>
>>>>>> copy all WOD and HTML from the page you are
>> using
>>>> now.
>>>>>>
>>>>>> add whatever you need.
>>>>>>
>>>>>> write rule to make TedsCoolListPage the
>> component
>>>> you use on
>>>>>> that list, instead of whatever you are
>> using.
>>>>>>
>>>>>> make sense?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sep 5, 2012, at 6:15 AM, Theodore
>> Petrosky
>>>> <email@hidden>
>>>>>> wrote:
>>>>>>
>>>>>>> I have six tabs. I want to subclass the
>> List*
>>>> page so
>>>>>> that I can fly in some markup before the
>> table.
>>>>>>>
>>>>>>> It seems to me that this method
>> requires 6
>>>> 'subclasses'
>>>>>> of the List* page.
>>>>>>>
>>>>>>> Is this what you are thinking?
>>>>>>>
>>>>>>> Ted
>>>>>>>
>>>>>>> --- On Tue, 9/4/12, Jesse Tayler <email@hidden>
>>>>>> wrote:
>>>>>>>
>>>>>>>> From: Jesse Tayler <email@hidden>
>>>>>>>> Subject: Re: adding a component to
>> a D2W
>>>> page
>>>>>>>> To: "Theodore Petrosky" <email@hidden>
>>>>>>>> Date: Tuesday, September 4, 2012,
>> 11:43 PM
>>>>>>>> oh, I'd just take the html and wod
>>>>>>>> bindings from the page you are
>> subclassing,
>>>> you can
>>>>>> subclass
>>>>>>>> or not in java, but write a rule to
>> use
>>>> that
>>>>>> component.
>>>>>>>>
>>>>>>>> edit html and add at will….
>>>>>>>>
>>>>>>>> might be more simple than you are
>> realizing
>>>> --
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sep 4, 2012, at 11:01 PM,
>> Theodore
>>>> Petrosky
>>>>>> <email@hidden>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Jesse,
>>>>>>>>>
>>>>>>>>> would you be interested in
>> showing me
>>>> how to
>>>>>> use the
>>>>>>>> subclassing technique? I really
>> don't know
>>>> where to
>>>>>> begin
>>>>>>>> and it is time I learned something
>> new.
>>>>>>>>>
>>>>>>>>> I would be happy to
>> document/record a
>>>> session
>>>>>> and make
>>>>>>>> it available. There may be others
>> in the
>>>> same
>>>>>> boat.
>>>>>>>>>
>>>>>>>>> Ted
>>>>>>>>>
>>>>>>>>> --- On Tue, 9/4/12, Jesse
>> Tayler <email@hidden>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> From: Jesse Tayler <email@hidden>
>>>>>>>>>> Subject: Re: adding a
>> component to
>>>> a D2W
>>>>>> page
>>>>>>>>>> To: "Theodore Petrosky"
>> <email@hidden>
>>>>>>>>>> Cc: "WebObjects
>> Development" <email@hidden>
>>>>>>>>>> Date: Tuesday, September 4,
>> 2012,
>>>> 12:54 PM
>>>>>>>>>> hi ted -
>>>>>>>>>>
>>>>>>>>>> is this something you can
>> add to
>>>> your page
>>>>>>>> wrapper?
>>>>>>>>>>
>>>>>>>>>> if maybe that's not a
>> great
>>>> solution,
>>>>>>>>>>
>>>>>>>>>> in the past, when I have
>> designed
>>>> complex
>>>>>> D2W apps,
>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I end up subclassing pages
>> and
>>>> often make
>>>>>> container
>>>>>>>> elements
>>>>>>>>>> like a 'panel' to handle
>>>> arrangement of
>>>>>> property
>>>>>>>> level
>>>>>>>>>> components and also to
>> report
>>>> things or
>>>>>> add
>>>>>>>> standard UI
>>>>>>>>>> elements at that level.
>>>>>>>>>>
>>>>>>>>>> modern look has so many
>> goodies
>>>> today, but
>>>>>>>> subclassing and
>>>>>>>>>> using your own page (or
>> panel)
>>>> level
>>>>>> components is
>>>>>>>> a common
>>>>>>>>>> way to add something like a
>> special
>>>> error
>>>>>> message
>>>>>>>> or
>>>>>>>>>> standard UI element that is
>> not
>>>> part of
>>>>>> the
>>>>>>>> underlying
>>>>>>>>>> system.
>>>>>>>>>>
>>>>>>>>>> maybe that helps --
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sep 4, 2012, at 12:43
>> PM,
>>>> Theodore
>>>>>> Petrosky
>>>>>>>> <email@hidden>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> I have a D2w app. they
>> want to
>>>> add
>>>>>> some
>>>>>>>> instructional
>>>>>>>>>> text to the top of the page
>> (under
>>>> the
>>>>>> Menubar).
>>>>>>>> Obviously,
>>>>>>>>>> the text will change for
>> each tab
>>>> that is
>>>>>>>> selected.
>>>>>>>>>>>
>>>>>>>>>>> How do I add this
>> markup in? or
>>>> How do
>>>>>> I create
>>>>>>>> the
>>>>>>>>>> hook so a component can fly
>> in here
>>>> as
>>>>>> needed?
>>>>>>>>>>>
>>>>>>>>>>> Ted
>>>>>>>>>>>
>>>>>>>>
>>>> _______________________________________________
>>>>>>>>>>> Do not post admin
>> requests to
>>>> the list.
>>>>>> They
>>>>>>>> will be
>>>>>>>>>> ignored.
>>>>>>>>>>> Webobjects-dev mailing
>> list
>>>>>>
>>>>>>>> (email@hidden)
>>>>>>>>>>> Help/Unsubscribe/Update
>> your
>>>>>> Subscription:
>>>>>>>>>>>
>>>>>>>>>>> This email sent to email@hidden
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be
>> ignored.
>>> Webobjects-dev mailing list (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>>
>> --
>> David LeBer
>> Codeferous Software
>>
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be
>> ignored.
>> Webobjects-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden