-1. You've managed to string together 50 method invocations. This is
poor coding practice. You try to improve readability with indentation,
but you've just ruined yourself for any sort of IDE formatting. The
method names are also highly non-standard.

All this seems to be is a new (and, in my opinion, very obscure)
syntax without any real functional improvements. I just don't see any
advantages over using the existing Panels.



On Fri, Oct 24, 2008 at 6:04 PM, Sony Mathew <[EMAIL PROTECTED]> wrote:
> Hello again, I am still looking for a sponsor for AxisPanel.  I would
> appreciate any feedback - good or bad.
>
> I am currently evaluating GWT for our team as we would like to make the jump
> over to Rich UI.  Other frameworks we are evaluating include Flex and
> Laszlo.  At a minimum we needed to demonstrate that we can layout our
> current web-pages easily with a few sprinkles of rich widgets here and
> there.
>
> The drawbacks several developers pointed out immediately were 1) verbosity
> of the Java code 2) Layout structure not clear from the Java code and 3)
> Layout modifications required tedious wrapping in additional panels to
> achieve desired look.  The last point was the most painful - needing to come
> up with more variable names new wrapper panels, updating existing panel
> insertions, moving Style names around etc.
>
> At this point GWT was pretty much knocked off the evaluation list in favor
> of XML declarative Flex or Laszlo. The idea of being able to stay in Java
> for the whole development cycle appealed to me greatly - but not at the cost
> of overall productivity.  But since I had this bias for Java and felt a
> powerful OO language like Java should be able to provide better
> expressiveness than an XML declarative equivalent - I decided to create the
> AxisPanel (I usually leave such things to experts).
>
> AxisPanel was a bigger hit than I had first expected.  I was able to
> transform the web-pages quickly.  Verbosity decreased to a minimum - more
> succinct than XML or HTML equivalents.  Clarity in structure is immediate as
> x / y indicates the direction of widgets and indentation shows nesting.
> Modifications in styles and structure can be done in a snap as every x/y
> panel can be styled and new ones added quickly.  In most cases we could
> layout a whole page in one Java expression.  I would like to push this
> concept out to Swing and other OO UI frameworks as well.
>
> AxisPanel definitely could be optimized (I put it together quick) - e.g.
> currently it uses a series of Vertical/HorizontalPanels - but could be
> optimized to use the DOM API directly for more efficient output.
>
> I would appreciate any feedback - good or bad.  Please see email below and
> attached java files for details on AxisPanel.
>
> Thanks
> Sony
>
> ---------- Forwarded message ----------
> From: Sony Mathew <[EMAIL PROTECTED]>
> Date: Wed, Oct 8, 2008 at 11:32 AM
> Subject: Looking for Incubator sponsor for AxisPanel.
> To: Google-Web-Toolkit-Contributors@googlegroups.com
>
>
> GWT makes it easy to create and listen to the widgets that the user
> interacts with (like buttons, textboxes, etc.) but when designing a UI one
> can spend a considerable amount of time in layout of these interactive
> widgets - positioning and spacing them just right. GWT does provide many
> layout Panels but their usage creates extremely verbose code that is hard to
> grasp after the layout is written.
>
> AxisPanel provides a simple concise way to layout a complex UI using short
> continous expressions that place your widgets in either the X or Y axis
> allowing you to recursively create a layout of any degree of complexity.
> Every intermediate X or Y axis panel is stylable and customizable on the fly
> within the same expression. AxisPanel can shrink a page length of Java code
> to one easy-to-read expression which enables easy experimentation until your
> layout is achieved. Allows you to focus your time/energy on the interesting
> dynamics that GWT handles so beautifully and less on the not-so-interesting
> layout details. AxisPanel is also more concise than its equivalent HTML or
> Declarative XML type layouts.
>
> Sample Usage:
>
>   AxisPanel p = new AxisPanel();
>   p.css("search").size(800,600).align(0,0).space(10).border(1)
>       .y().css("options").size(0.4,1.0).space(10).align(-1,0)
>           .x("Enter your Search here:").q()
>           .x(searchBox,searchButton).size(-10,-10).border(1).q()
>           .q()
>       .y().size(-10,-10).align(0,0).space(20).border(1)
>           .x().css("header").size(10,200).align(0,0).border(1)
>              .x(textbox2, label2).q()
>              .y(textbox3, button3).q()
>              .q()
>           .x().css("help").border(1).size(100,20)
>               .x(helpLabel, helpSearchBox, helpHyperLink).q()
>               .y(textbox5, button5).q()
>               .q()
>           .x(searchResultsTable).css("results").size("100%","100%").q()
>           .y(textbox6,button6).q()
>           .q()
>
>
> How to Read:
>
> AxisPanel
> The root panel and the starting target to which all additions go. The
> AxisPanel is a VerticalPanel (Y Axis) to start with.
> .y(Widget...)
> Adds a VerticalPanel (Y Axis) to current target panel with the given
> Widgets. Switches target to this new Y Axis Panel and all further actions
> are directed to this Panel. The added widgets will line up vertically (Y
> Axis) within this new Panel.
> .x(Widget...)
> Adds a HorizontalPanel (X Axis) to current target panel with the given
> Widgets. Switches target to this new X Axis Panel and all further actions
> are directed to this Panel. The added widgets will line up horizontally (X
> Axis) within this new Panel. .x(String) is convenience shortcut for .x(new
> Label(String)).
> .css(String), size(int,int), border(int), space(int) etc.
> Add css class, size, borderWidth, spacing etc. to the target widget.
> size() is overloaded e.g. negative and double values are relative to
> parent's size.
> .q()
> Done adding to the current target Panel. Switches target back to parent
> panel in use before this panel. Every x() or y() axis additions should end
> with a q(). But You do NOT close the root AxisPanel with a q() since The
> expression can be restarted on another line/loc.
> indentation
> All children are indented.
>
> Author: Sony MathewAttachments:
> I've attached the following files:
> AxisPanel.java : The new panel.
> AxisStyle.java : A helper class.
> AxisPanelDemo.java : A demo panel that uses AxisPanel.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to