[brailleblaster] Re: Create Style

Hanxiao: I think it would be better to save the style name in the file
using a fixed label, for example:
styleName=xxx
instead of picking up the label text from the widget. Because we have
localization the label will change with the language. Besides, this is
not something that is visible to the user interface. If you agree I
can change the code in the method that saves the values to the file.

François.

On Fri, Aug 3, 2012 at 8:08 AM, François Ouellette <braille@xxxxxxx> wrote:
> Hanxiao: I have pushed your latest changes. I corrected an issue with
> saving a style with a blank name. However the side effect is that even
> with the Cancel button you cannot leave the style name field blank,
> but this is because you use a FocusListener that triggers every time
> we live the field. Not a big deal, I guess.
>
> François.
>
> On Thu, Aug 2, 2012 at 11:17 PM, Hanxiao Fu <hxfu829@xxxxxxxxx> wrote:
>> Hi Francois,
>>
>> Good to hear. I've updated createStyle. This inlcudes the changes you made,
>> and should fix the problems Vic found. Can you please check and push it to
>> the repository?
>>
>> Thanks,
>> Hanxiao
>>
>>
>>
>> On Fri, Aug 3, 2012 at 9:55 AM, François Ouellette <braille@xxxxxxx> wrote:
>>>
>>> Hi team, I pushed Hanxiao's stuff, there are 3 new files, changes to 3
>>> existing java files and also changes to language properties files, as
>>> I added localization to the labels and messages.
>>>
>>> Enjoy.
>>>
>>> François.
>>>
>>> On Thu, Aug 2, 2012 at 8:02 AM, François Ouellette <braille@xxxxxxx>
>>> wrote:
>>> > John and Hanxiao: I will indeed do this later today.
>>> >
>>> > François
>>> >
>>> > On Thu, Aug 2, 2012 at 3:07 AM, John J. Boyer <john@xxxxxxxxxxxxxx>
>>> > wrote:
>>> >> Hi Hanxiao,
>>> >>
>>> >> Thanks for the new classes. I'll let Francois check the changes tgo
>>> >> DocumentManager, BBMenu, etc. since he is more familiar with the recent
>>> >> changes than I am.
>>> >>
>>> >> Francois, if this looks good, please commit.
>>> >>
>>> >> John
>>> >>
>>> >> On Thu, Aug 02, 2012 at 02:10:28PM +0800, Hanxiao Fu wrote:
>>> >>> Hi John,
>>> >>>
>>> >>> I've modified BBMenu and DocumentManager, and  add a class called
>>> >>> StyleManager, which is a field of Document Manager. It likes other
>>> >>> classes,
>>> >>> take dm as a parameter in the constructor. This will be the core class
>>> >>> that
>>> >>> supports styling. This will separate most of my code from Francios'
>>> >>> work. If it sounds okay to you, can you please push the change to the
>>> >>> repository, and the java files I sent yesterday, too? I've included
>>> >>> them in
>>> >>> the attachment too. Let me know if anything.
>>> >>>
>>> >>> Thanks,
>>> >>> Hanxiao
>>> >>>
>>> >>>
>>> >>> On Thu, Aug 2, 2012 at 11:45 AM, John J. Boyer
>>> >>> <john.boyer@xxxxxxxxxxxxxxxxx
>>> >>> > wrote:
>>> >>>
>>> >>> > Hanxiao,
>>> >>> >
>>> >>> > Great work! I hope that splitting editing from DocumentManager won't
>>> >>> > be
>>> >>> > too difficult. It seems to me that this would simplify things for
>>> >>> > both
>>> >>> > Francois and you. Francois did mentionn that some of the editing
>>> >>> > might
>>> >>> > be moved to the views. Other parts will be in new style classes, as
>>> >>> > you
>>> >>> > mentioned.
>>> >>> >
>>> >>> > John
>>> >>> >
>>> >>> > On Thu, Aug 02, 2012 at 11:29:48AM +0800, Hanxiao Fu wrote:
>>> >>> > > Hi Vic,
>>> >>> > > Glad to hear about the accessbility. I will fix the issues you
>>> >>> > > found
>>> >>> > ASAP.
>>> >>> > > Nice catches by the way.
>>> >>> > >
>>> >>> > > Michael,
>>> >>> > > 1. In the loadProperties, I don't know if using Combo over Text
>>> >>> > > will be a
>>> >>> > > good choice. To me, Combo is just a Text field with a drop-down
>>> >>> > > list.Because for the fields using Text now accept only integers,
>>> >>> > > it
>>> >>> > doesn't
>>> >>> > > seem to be necessary that we set up a drop-down list contains
>>> >>> > > bunch of
>>> >>> > > numbers for users to select. However, it might be helpful if the
>>> >>> > drop-down
>>> >>> > > list contains the values that have been entered in the very field
>>> >>> > > before,
>>> >>> > > like a sticky form. What do you say?
>>> >>> > >  2. Code style. I do try to pay attention to follow Java
>>> >>> > > conventions when
>>> >>> > > coding, but sometimes I'm a little bit careless. I will try my
>>> >>> > > best to
>>> >>> > make
>>> >>> > > my code follow the convention and comment when necessary, but I
>>> >>> > > think
>>> >>> > what
>>> >>> > > you mentioned that static variable names should be all capitalized
>>> >>> > > isn't
>>> >>> > > part of the convention I know. Did you mean there was a final
>>> >>> > > variable
>>> >>> > that
>>> >>> > > should've been in all capitals?
>>> >>> > >  3. The MDI feature was initially implemented by me. I have to
>>> >>> > > admit
>>> >>> > that I
>>> >>> > > sometimes find my own way to implement features. Not that I don't
>>> >>> > > respect
>>> >>> > > others' model, but just don't know in which way they are
>>> >>> > > practicing. As a
>>> >>> > > result, I do have a tendcy to overcomplicate the code. Sorry if it
>>> >>> > > has
>>> >>> > > caused the following work to be more complicated than what it
>>> >>> > > should be.
>>> >>> > > That's why I really want you guys to look into my codes.  About
>>> >>> > > the MDI,
>>> >>> > > can you send me the link of the blog post you talking about, which
>>> >>> > > describes the event model of SWT and MDI? If needed, I can rewrite
>>> >>> > > the
>>> >>> > MDI
>>> >>> > > code.
>>> >>> > > Francois,
>>> >>> > > The code I sent earlier already mearged with the most updated
>>> >>> > > revision at
>>> >>> > > the time. Since some files are involved both our works, it is
>>> >>> > > inevitable
>>> >>> > > one of us has to deal with the merging, or, like John said, I can
>>> >>> > > split
>>> >>> > the
>>> >>> > > code related to the editing out from DocumentManager, so most
>>> >>> > > conflicts
>>> >>> > > will be avoided. I don't know what the code will be like
>>> >>> > > eventually, if
>>> >>> > the
>>> >>> > > editing, including styles, will be splitted out from
>>> >>> > > DocumentManager
>>> >>> > > eventually anyway, I can certainly start to split them up now.
>>> >>> > >
>>> >>> > > Thanks,
>>> >>> > > Hanxiao
>>> >>> > >
>>> >>> > >
>>> >>> > > On Thu, Aug 2, 2012 at 7:04 AM, François Ouellette
>>> >>> > > <braille@xxxxxxx>
>>> >>> > wrote:
>>> >>> > >
>>> >>> > > > Michael: Because we have in reality one active display object
>>> >>> > > > with one
>>> >>> > > > or more shells the ctrl key events are dispatched to the display
>>> >>> > > > and
>>> >>> > > > therefore all shells. There is no way we can split the events.
>>> >>> > > > The
>>> >>> > > > event loop seems indeed a bit overcomplicated, but I did not
>>> >>> > > > want to
>>> >>> > > > break it trying to simplify, so if it's not broken, I don't fix
>>> >>> > > > it! It
>>> >>> > > > deals with an index that checks how many shells are active and
>>> >>> > > > make
>>> >>> > > > sure we access that shell's document in an array, and uses event
>>> >>> > > > numbers that in turn call the appropriate methods. When a shell
>>> >>> > > > receives an event it is not possible to know if has focus, this
>>> >>> > > > only
>>> >>> > > > works for widgets. Anyways, I can disable the ctrl key listener
>>> >>> > > > so we
>>> >>> > > > only deal with the hot keys. There is still a bit of cleanup to
>>> >>> > > > do in
>>> >>> > > > the properties files, some menu items have the same shortcut
>>> >>> > > > character
>>> >>> > > > in the same group.
>>> >>> > > >
>>> >>> > > > François
>>> >>> > > >
>>> >>> > > > On Wed, Aug 1, 2012 at 5:46 PM, Michael Whapples
>>> >>> > > > <mwhapples@xxxxxxx>
>>> >>> > > > wrote:
>>> >>> > > > > Hello,
>>> >>> > > > > I seem to just puzzle over why this is such an issue, but may
>>> >>> > > > > be
>>> >>> > that's
>>> >>> > > > > because I have worked on some GTK applications which have a
>>> >>> > > > > similar
>>> >>> > event
>>> >>> > > > > model.
>>> >>> > > > >
>>> >>> > > > > So why cannot BrailleBlaster respect the event model of SWT
>>> >>> > > > > and do
>>> >>> > MDI in
>>> >>> > > > > the way as described in that blog post?
>>> >>> > > > >
>>> >>> > > > > The event loop code in DocumentManager.java looks far more
>>> >>> > complicated
>>> >>> > > > than
>>> >>> > > > > it should be, surely some of that logic should be performed in
>>> >>> > > > > the
>>> >>> > event
>>> >>> > > > > handling code. There again may be I am missing something due
>>> >>> > > > > to the
>>> >>> > code
>>> >>> > > > > being overly complex and may be there is something which needs
>>> >>> > > > > doing
>>> >>> > > > there,
>>> >>> > > > > I am sure not all of it needs to be done in the event loop
>>> >>> > > > > though.
>>> >>> > > > >
>>> >>> > > > > Why doesn't the event code handling the ctrl shortcuts not
>>> >>> > > > > check
>>> >>> > whether
>>> >>> > > > its
>>> >>> > > > > the active window before running the action?
>>> >>> > > > >
>>> >>> > > > > As another alternative to having separate windows for
>>> >>> > > > > documents, why
>>> >>> > not
>>> >>> > > > use
>>> >>> > > > > tabs (I guess I am thinking in terms of Eclipse RCP when I say
>>> >>> > > > > this,
>>> >>> > but
>>> >>> > > > why
>>> >>> > > > > not a stack view)?
>>> >>> > > > >
>>> >>> > > > > Just some thoughts.
>>> >>> > > > >
>>> >>> > > > > Michael Whapples
>>> >>> > > > > On 01/08/2012 22:23, François Ouellette wrote:
>>> >>> > > > >>
>>> >>> > > > >> John and Vic: regarding the MDI issue and key commands,
>>> >>> > > > >> everything
>>> >>> > > > >> works fine if we use the Hot Key feature (for example ALT F
>>> >>> > > > >> to open
>>> >>> > > > >> the file menu, then C to close which correspond to letters we
>>> >>> > > > >> pick
>>> >>> > in
>>> >>> > > > >> the properties files. It's just that the CTRL key shortcuts
>>> >>> > > > >> cannot
>>> >>> > be
>>> >>> > > > >> used with the current structure, which I think is not too
>>> >>> > > > >> serious an
>>> >>> > > > >> issue.
>>> >>> > > > >>
>>> >>> > > > >> François.
>>> >>> > > > >>
>>> >>> > > > >> On Wed, Aug 1, 2012 at 3:45 PM, John J. Boyer
>>> >>> > > > >> <john.boyer@xxxxxxxxxxxxxxxxx> wrote:
>>> >>> > > > >>>
>>> >>> > > > >>> Hi Francois,
>>> >>> > > > >>>
>>> >>> > > > >>> Yes, we do need to understand how everythhing fits together
>>> >>> > > > >>> before
>>> >>> > > > >>> moving forward. Perhaps Hanxiao could look at splitting the
>>> >>> > > > >>> editing
>>> >>> > > > >>> functions, which of course include styles, off from
>>> >>> > > > >>> DocumentManager
>>> >>> > > > into
>>> >>> > > > >>> a separate class.
>>> >>> > > > >>>
>>> >>> > > > >>> The MDI seems to be ok except for the shortcut keys.
>>> >>> > > > >>> However,
>>> >>> > creating
>>> >>> > > > >>> new instances of BrailleBlaster probably wouldn't take up
>>> >>> > > > >>> much more
>>> >>> > > > >>> memory than theMDI does now. It might be the beter approach.
>>> >>> > > > >>> We do
>>> >>> > need
>>> >>> > > > >>> to give priority to editing, as Keith pointed out.
>>> >>> > > > >>>
>>> >>> > > > >>> John
>>> >>> > > > >>>
>>> >>> > > > >>> On Wed, Aug 01, 2012 at 02:49:56PM -0400, Fran�ois Ouellette
>>> >>> > > > >>> wrote:
>>> >>> > > > >>>>
>>> >>> > > > >>>> Hanxiao: If Vic says it's good it must be really good!
>>> >>> > > > >>>> (grin...).
>>> >>> > I
>>> >>> > > > >>>> can take time to look at your interface but I would have to
>>> >>> > > > >>>> temporarily break my Eclipse setup to replace some files
>>> >>> > > > >>>> with
>>> >>> > yours,
>>> >>> > > > >>>> unless I copy everything on the side for this test. One way
>>> >>> > > > >>>> or
>>> >>> > another
>>> >>> > > > >>>> it will require some manipulation.
>>> >>> > > > >>>>
>>> >>> > > > >>>> John: I guess the next step would be for Hanxiao to pull
>>> >>> > > > >>>> the
>>> >>> > latest
>>> >>> > > > >>>> version of all the files and merge his changes, manually or
>>> >>> > > > >>>> with
>>> >>> > > > >>>> mercurial. This could then be pushed and integrated to the
>>> >>> > > > >>>> BB
>>> >>> > package.
>>> >>> > > > >>>> I will not update anything until we have a clear
>>> >>> > > > >>>> understanding of
>>> >>> > how
>>> >>> > > > >>>> we go forward.
>>> >>> > > > >>>>
>>> >>> > > > >>>> François.
>>> >>> > > > >>>>
>>> >>> > > > >>>> On Wed, Aug 1, 2012 at 2:21 PM, Vic Beckley <
>>> >>> > vic.beckley3@xxxxxxxxx>
>>> >>> > > > >>>> wrote:
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Hanxiao,
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> The accessibility features are working fantastically! The
>>> >>> > > > >>>>> field
>>> >>> > names
>>> >>> > > > >>>>> are
>>> >>> > > > >>>>> spoken for all fields. The field data in all fields is
>>> >>> > > > >>>>> spoken
>>> >>> > > > >>>>> perfectly.
>>> >>> > > > >>>>> Tabbing both forwards and backwards is working just fine
>>> >>> > > > >>>>> all the
>>> >>> > way
>>> >>> > > > >>>>> around
>>> >>> > > > >>>>> the dialog. NVDA even speaks the group names. Window-Eyes
>>> >>> > doesn’t do
>>> >>> > > > >>>>> that
>>> >>> > > > >>>>> but speaks everything else perfectly. Great job!
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> The only problem I saw was that you can’t delete the data
>>> >>> > > > >>>>> in the
>>> >>> > > > >>>>> numeric
>>> >>> > > > >>>>> fields to enter a new value. You have to enter the new
>>> >>> > > > >>>>> value
>>> >>> > with the
>>> >>> > > > >>>>> old
>>> >>> > > > >>>>> value still in the edit box and then delete the old value.
>>> >>> > > > >>>>> If the
>>> >>> > > > edit
>>> >>> > > > >>>>> box
>>> >>> > > > >>>>> is empty you get an error that only numerical values are
>>> >>> > > > >>>>> allowed
>>> >>> > in
>>> >>> > > > >>>>> this
>>> >>> > > > >>>>> field with an OK button.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Also, the group name “attirbutes” is spelled wrong. It
>>> >>> > > > >>>>> should be
>>> >>> > > > >>>>> “attributes.”
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> This is no big deal, but escape won’t close the dialog.
>>> >>> > > > >>>>> Cancel
>>> >>> > works
>>> >>> > > > >>>>> fine.
>>> >>> > > > >>>>> Alt-F4 works fine. I’m just in the habit of using escape
>>> >>> > > > >>>>> to get
>>> >>> > out
>>> >>> > > > of
>>> >>> > > > >>>>> dialogs. It usually works.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> The Create button should be set as the default button.
>>> >>> > > > >>>>> This way
>>> >>> > if
>>> >>> > > > you
>>> >>> > > > >>>>> changed a number of options and didn’t want to tab all
>>> >>> > > > >>>>> around the
>>> >>> > > > >>>>> dialog to
>>> >>> > > > >>>>> get to the Create button you could just press enter and
>>> >>> > > > >>>>> this
>>> >>> > would
>>> >>> > > > >>>>> activate
>>> >>> > > > >>>>> it.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Again, great job!
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Best regards from Ohio, U.S.A.,
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Vic
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> E-mail: vic.beckley3@xxxxxxxxx
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> From: brailleblaster-bounce@xxxxxxxxxxxxx
>>> >>> > > > >>>>> [mailto:brailleblaster-bounce@xxxxxxxxxxxxx] On Behalf Of
>>> >>> > Hanxiao Fu
>>> >>> > > > >>>>> Sent: Wednesday, August 01, 2012 10:05 AM
>>> >>> > > > >>>>> To: brailleblaster@xxxxxxxxxxxxx
>>> >>> > > > >>>>> Subject: [brailleblaster] Re: Create Style
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Hi Vic,
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Please place the java file in the
>>> >>> > > > >>>>> Brailleblaster\src\main\org\brailleblaster\wordprocessor
>>> >>> > > > >>>>> and
>>> >>> > replace
>>> >>> > > > >>>>> the one
>>> >>> > > > >>>>> I sent earlier. This should enable you to compile it.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Hi Francois,
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Yes, I do need to synchronize my local files with those in
>>> >>> > > > >>>>> the
>>> >>> > > > >>>>> repository. I
>>> >>> > > > >>>>> see you have pushed a lot of changes, and added a whole
>>> >>> > > > >>>>> lot of
>>> >>> > new
>>> >>> > > > >>>>> features
>>> >>> > > > >>>>> recently. Good work! Can you please take some time on
>>> >>> > > > >>>>> checking
>>> >>> > out my
>>> >>> > > > >>>>> updates? Your suggestion can be really helpful.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Thanks,
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Hanxiao
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> On Wed, Aug 1, 2012 at 7:49 PM, François Ouellette <
>>> >>> > braille@xxxxxxx>
>>> >>> > > > >>>>> wrote:
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> Thanks Hanxiao. This is where we need to synchronize our
>>> >>> > > > >>>>> work to
>>> >>> > > > avoid
>>> >>> > > > >>>>> clashing on changes. Lots of work has been put recently to
>>> >>> > > > >>>>> DocumentManager and related classes in order to implement
>>> >>> > > > >>>>> file
>>> >>> > > > >>>>> management functions. I guess you should merge your work
>>> >>> > > > >>>>> with
>>> >>> > others'
>>> >>> > > > >>>>> so we can continue to add functionality.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> François.
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>>>> On Wed, Aug 1, 2012 at 6:27 AM, Hanxiao Fu
>>> >>> > > > >>>>> <hxfu829@xxxxxxxxx>
>>> >>> > > > wrote:
>>> >>> > > > >>>>>>
>>> >>> > > > >>>>>> Hi all,
>>> >>> > > > >>>>>>
>>> >>> > > > >>>>>> I have integrated the style creation function I sent to
>>> >>> > > > >>>>>> the list
>>> >>> > > > >>>>>> recently
>>> >>> > > > >>>>>> into BB. Please test it. To use the attachment:
>>> >>> > > > >>>>>>
>>> >>> > > > >>>>>> Back up any uncommited work.
>>> >>> > > > >>>>>> Place BBini.java in
>>> >>> > > > >>>>>> Brailleblaster\src\main\org\brailleblaster
>>> >>> > > > >>>>>> Place the other four java files in
>>> >>> > > > >>>>>> Brailleblaster\src\main\org\brailleblaster\wordprocessor
>>> >>> > > > >>>>>> Run ant in the root dir, you should be good to go
>>> >>> > > > >>>>>>
>>> >>> > > > >>>>>> This adds a create style menu item in edit menu, which
>>> >>> > > > >>>>>> opens a
>>> >>> > new
>>> >>> > > > >>>>>> window.
>>> >>> > > > >>>>>> I've added accessibles into it, but I don't know how to
>>> >>> > > > >>>>>> test the
>>> >>> > > > >>>>>> accessibility, so please tell me how the labels and
>>> >>> > > > >>>>>> fields
>>> >>> > work. By
>>> >>> > > > >>>>>> clicking
>>> >>> > > > >>>>>> the "create" button, a properties file containing the
>>> >>> > > > >>>>>> style
>>> >>> > > > >>>>>> information
>>> >>> > > > >>>>>> just
>>> >>> > > > >>>>>> filled in will be created in your local machine. Now it
>>> >>> > > > >>>>>> doesn't
>>> >>> > do
>>> >>> > > > >>>>>> anything
>>> >>> > > > >>>>>> else, but I'm working on selecting and applying styles.
>>> >>> > > > >>>>>> Please
>>> >>> > let
>>> >>> > > > me
>>> >>> > > > >>>>>> know
>>> >>> > > > >>>>>> if anything.
>>> >>> > > > >>>>>>
>>> >>> > > > >>>>>> Thanks,
>>> >>> > > > >>>>>> Hanxiao
>>> >>> > > > >>>>>
>>> >>> > > > >>>>>
>>> >>> > > > >>> --
>>> >>> > > > >>> John J. Boyer; President, Chief Software Developer
>>> >>> > > > >>> Abilitiessoft, Inc.
>>> >>> > > > >>> http://www.abilitiessoft.com
>>> >>> > > > >>> Madison, Wisconsin USA
>>> >>> > > > >>> Developing software for people with disabilities
>>> >>> > > > >>>
>>> >>> > > > >>>
>>> >>> > > > >
>>> >>> > > > >
>>> >>> > > >
>>> >>> > > >
>>> >>> >
>>> >>> > --
>>> >>> > John J. Boyer; President, Chief Software Developer
>>> >>> > Abilitiessoft, Inc.
>>> >>> > http://www.abilitiessoft.com
>>> >>> > Madison, Wisconsin USA
>>> >>> > Developing software for people with disabilities
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> John J. Boyer, Executive Director
>>> >> GodTouches Digital Ministry, Inc.
>>> >> http://www.godtouches.org
>>> >> Madison, Wisconsin, USA
>>> >> Peace, Love, Service
>>> >>
>>> >>
>>>
>>

Other related posts: