On 20/01/07, Chipp Walters <[EMAIL PROTECTED]> wrote:

And Dave has demonstrated EXACTLY my problem with this. The simple fact
is,
I am creating grouped widgets, which I have differently named components
within, which I would like to be able to address.


I have gone through using names (the problem you have now) - then ids (don"t
work when you copy the object to another stack = new id, - id indexes
automatically updated - a pain - and at the moment I use long ids and
getprop handlers - which seems to be working OK. I am not quite sure hw to
use simple names at the moment - my inclination is to leave this up to the
user and allow them to rename them as they see fit to make it easy for them
to use the components in a natural way - the trick is then to have a "meta"
way to refer to the "views" and their classes.

Mark, your example also demonstrates the power of same named instances of
object. I guess it all boils down to each of us trying our best to create
reusable grouped components, each with the same codebase. A most difficult
task.


I have  a library of components I call views and a way of automatically
keeping  an index of all instances of  the views so that they can then be
all updated . I use newgroup and deletegroup messages  and search down
througn the groups for nested compnents.

For instance, take altFldHeader which creates column headers for fields.
( go URL "http://www.gadgetplugins.com/altplugins/altFldHeader.rev"; )

While it's been stable now for years, modifying old altFldHeaders still is
a
problem as each instance has all of the code embedded in the group. The
same
is true for many of my so called 'objects.' A benefit of this approach is
it's easy to do exception programming and track code as well with
everything
being neatly packaged in a group. A big drawback is when you want to
modify
the codebase, you have to replace each group, especially if you end up
adding a new control.


If you are looking at this Chipp - I'd appreciate some feedback on the way I
am doing it _ I've got a copy of altFldHeader  as a view that I made a while
back now as a test on principle.


Separating the 'object' into a GUI library group and a background library
has it's own set of problems as well. You need to carefully track what
libraries are still being used. For instanec, they have to be inited from
a
startup handler, so now you have at the minimum 3 different places for
custom object 'pieces': the library stack script, the GUI control group,
and
a piece of init code in startup.


At the moment "views" (the GUI control group) can use libraries - and
therefore have a dependency property for this. I think the only way is to
have a global database of keeping track of the connections such as these and
using system events to ensure they are kept up to date. That is a "model" of
these connections kept in memory.


You also need to be very careful using 'the
target' and if you have other system handlers, you'll need to make sure
they
don't interfere, as they're called ALL THE TIME, instead of only when
needed. I'm not crazy about this approach, unless you're coding something
like libURL


A naming convention like uRIP is the only way to go here at the moment for
libraries - I use over 20 libraries at the moment and have renamed all the
handlers (nearly) to fit the naming convention. I am intrigued at the moment
by how useful naming conventions are - as they also allow scripts to
auto-magically use the names to refer to other properties - I picked this up
from the MVC frameworks like RubyOnRails. For instance in you have a
property like "view_Colour" a script can automatically look for a property
called "view_Colours" to draw a menu or check for a legal value.
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to