[jsword-devel] EditSite and BeanPanel
Joe Walker
joseph.walker at gmail.com
Mon Aug 22 15:13:40 MST 2005
Another advantage of 2: You can configure it with more than just Strings?
On 8/22/05, DM Smith <dmsmith555 at yahoo.com> wrote:
> We use a BeanPanel to represent the editable fields of the various
> Installers, which at this point is just the HTTP installer.
> The fields come out in a random order. They should be in an order that
> is appropriate for the Installer.
>
> I would like some input before I make changes.
>
> Any thoughts on how to change the code. I see a couple of possibilities:
> 1) Create an interface BeanOrdering with a single method "String[]
> ordering()" that the installers will implement.
> The BeanPanel would call this to figure out which order to display
> the fields in.
> 2) Don't use BeanPanel but create an interface class SiteEditor which
> would have an implementation per installer.
> A SiteEditorFactory would be able to create an appropriate
> SiteEditor from the installer type (e.g. sword-http, sword-ftp).
>
> There are advantages and disadvantages to both.
> Advantages of 1)
> Fairly simple to implement in "client" classes.
> Disadvantages of 1)
> Ordering the fields in BeanPanel is not trivial, but only needs to be
> figured out once.
> Not obvious how the code works.
> The class is not really all that general purpose. (The setters and
> getters must use either String or Integer, no other work.)
> I found it hard to debug when trying to figure out why a setter that
> didn't take a string didn't work and that I needed to add support for
> another data type.
>
> Advantages of 2)
> Code is similar to other patterns in JSword.
> The code is pretty obvious.
> Disadvantages of 2)
> Lot more code.
> Need to write a SiteEditor for each Installer.
>
> I am inclined to do 2).
>
>
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel
>
More information about the jsword-devel
mailing list