[jsword-devel] [sword-devel] Web Front-end for JSword (iPhone targeted)
DM Smith
dmsmith555 at yahoo.com
Sat Apr 19 10:20:07 MST 2008
On Apr 19, 2008, at 12:43 PM, Greg Hellings wrote:
> On Sat, Apr 19, 2008 at 8:42 AM, DM Smith <dmsmith555 at yahoo.com>
> wrote:
>> On Apr 19, 2008, at 5:22 AM, Greg Hellings wrote:
>>
>>> I've thrown together a quick AJAX-based front-end for JSword. I'm
>>> aiming to make it look and work nice for iPhone users. We'll see if
>>> it works out. Right now it works fine in Safari on the desktop, and
>>> also in the iPhone simulator. In the simulator the display of
>>> non-ASCII characters seems to fail (specifically the WLC and AraSVD
>>> modules with Hebrew and Arabic). I don't know if that's the same on
>>> the devices, as I don't have access to one at this time, however,
>>> they
>>> work fine in desktop Safari.
>>
>> Super. Great start!
>>
>> I'm doing the same. :) But I'm not trying to actually create a
>> product.
>>
>> My goal is to create *a* working tutorial for Safari, IE and Firefox.
>> Right now, it does not work on Safari. I haven't tried it on IE.
>
> I get essentially the same error in IE7 as I got in Safari "
> 'undefined' is not an object."
Hmm. More work to do. :)
> Then again, my own page has IE7 issues
> it seems, the CSS for :hover doesn't appear to be supported in IE7 or
> Mozilla, while it works fine in Safari. Likely this is because the
> items are not actually links, and the :hover style is, I believe,
> targeted at anchor tags specifically. However, that styling is aimed
> at just making it more obvious to desktop users - iPhone has no
> concept of mouseover/hover.
This can be solved with a small piece of JavaScript that adds a class
style on mouse enter and removes it on mouse out.
See: http://www.alistapart.com/articles/dropdowns
You'll need to adapt their code.
>
>
>>
>> For more details see my post on jsword-devel:
>>
>> http://www.crosswire.org/pipermail/jsword-devel/2008-April/
>> 002453.html
>
> I read through it. It seems most of the problem you're encountering
> is with client-side XSL transformations. I don't know what exactly
> you're doing with the XML on the client side. My version is just
> sending the output of getRawText(user_key) across the wire. I'd like
> to send the transformed HTML, but I get a NullPointerExcepion when I
> invoke ConverterFactory.getConverter() from my servlet. When I
> iterate over the Converters that it recognizes, the only one is the
> ConfigurableSwingConverter, but even trying to retrieve that Converter
> throws the exception on line 55 of ConverterFactory.java.
Try including the bibledesktop*.jar. It is in there.
> If I
> understood more of how to pull the pure XML from the module and where
> to find the XSLT, I could do the transformation client-side with GWT's
> built-in XSL processor, as it would only make sense for me to be
> displaying HTML and not RawText in a browser window.
See o.c.jsword.bridge.DwrBridge and o.c.jsword.examples.APIExample
for, well, examples.
>
>
>>
>>
>>>
>>>
>>> There are still some rough edges with the interface - primarily it
>>> doesn't properly detect the books that are in a module at any given
>>> moment. It does detect chapters-in-book and verses-in-chapter,
>>> though. For now, you just have to assume that if you get to the
>>> verse
>>> display and there is no text (and no error box), then that module
>>> must
>>> not support that verse/book. There are also additional GUI tweaks
>>> that will be needed to smooth the functioning of it, but this is
>>> just
>>> a quickly hobbled together patch-up.
>>
>>
>> One of the things that I think that is needed in JSword is that the
>> global key list actually reflect the content of the module. For
>> Bibles
>> and commentaries, it assumes Gen-Rev. I'll probably do the same thing
>> I did for dictionaries there too.
>
> I had tried that method (get the global key list, then try the
> .contains() method) and to my surprise, it told me that all of the
> Bible was available in the LXX. I likewise tried catching exceptions
> from the .getKey() method, but that seems to only throw them if the
> Key doesn't exist in the Bible at all, rather than if it doesn't exist
> in this module. However, having each Bible support the
> .booksInModule() as well as its own implementation of
> .chaptersInBook() and .versesInChapter() would allow for ease of use
> if alternate versification ever pops up. Currently the BibleInfo
> class works fine for the latter two, but I can't figure out any way to
> narrow down the books available. It sounds like this is a "ToDo" on
> your list, though.
Books available can be done *today* by checking chapter 1, verse 1 of
each book.
More information about the jsword-devel
mailing list