[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [platform-swt-dev] From Swing to SWT
|
Typo in my message
> One more thing, is that I am not really too
> concerned about accomodating AWT and SWT either.
Should read
> One more thing, is that I am not really too
> concerned about accomodating AWT and Swing either.
> -----Original Message-----
> From: platform-swt-dev-admin@xxxxxxxxxxx
> [mailto:platform-swt-dev-admin@xxxxxxxxxxx] On Behalf Of Brad O'Hearne
> Sent: Friday, January 17, 2003 7:59 AM
> To: platform-swt-dev@xxxxxxxxxxx
> Subject: RE: [platform-swt-dev] From Swing to SWT
>
>
> > -- all the business logic belongs outside the UI
>
> Just a note -- from a textbook standpoint, yes, this is the
> case. But depending on how you are defining the term
> "business logic" it isn't this simple. What about things
> like field-level validation? That is essentially
> "business-logic" too (it is enforcing data-integrity). Sure
> its trivial, but stuff like this across a large form make it
> time-consuming and a huge pain in the butt to create --
> visual builders
> *greatly* simplify adding / editing these types (a la Visual
> Studio). You can't really push this stuff into the middle
> tier, or else you now have traded field-level validation for
> form-level validation, which is no more functional than a web
> page. If you even attempted field-level validation through
> the middle-tier, you are going to crush the network with
> traffic, and your app will not scale.
>
> I'm with Lane here, I think the lack of solid GUI builders
> for Java is the glaring competitive weakness vs. MS, hence my
> excitement over SWT and Eclipse (and Conga). And following,
> I really think it would behoove the SWT dev effort to
> consider making needed changes to allow more effective GUI
> building. One more thing, is that I am not really too
> concerned about accomodating AWT and SWT either. Focus on SWT.
>
> BradO
>
> > -----Original Message-----
> > From: platform-swt-dev-admin@xxxxxxxxxxx
> > [mailto:platform-swt-dev-admin@xxxxxxxxxxx] On Behalf Of
> > Scott Stanchfield
> > Sent: Friday, January 17, 2003 6:20 AM
> > To: platform-swt-dev@xxxxxxxxxxx
> > Subject: RE: [platform-swt-dev] From Swing to SWT
> >
> >
> > The real solution is that we're all smart folks, and learning
> > a separate UI toolkit really isn't a big deal. Creating
> > adapters will only lead to minimized utilitization of the
> > target toolkit features -- the end UI can't be as effective
> > as if it were just programmed usin the target toolkit.
> >
> > The right way to do things (IMHO) is:
> >
> > 1) refactor your app (if necessary) so that the UI is "thin"
> > -- all the business logic belongs outside the UI
> >
> > 2) learn SWT (more below)
> >
> > 3) Create a completely new UI in SWT that uses the same
> > business logic. If you use the same design/layout of the old
> > UI, this should be very straightforward/quick.
> >
> > I can hear the screams already, but think about it. How long
> > does it take to program a UI? The design/layout is really the
> > hard part. Once you learn a UI toolkit, programming UIs is
> > really pretty trivial.
> >
> > On learning SWT (when one knows Swing)
> > The missing piece here is a guide mapping "if you did X in
> > Swing, you do Y in SWT". I'd like to write such a thing, but
> > I don't have the time... Of course, once my UI builder is
> > done, that'll ease things a bit, as the builder can worry
> > about how to create the objects (constructors with args or
> > not), not the programmer.
> >
> > -- Scott
> >
> > ==============================================================
> > Scott Stanchfield scott@xxxxxxxxxxxx http://javadude.com
> >
> > Lead author of "Effective VisualAge for Java, Version 3"
> > http://javadude.com/evaj
> >
> > VisualAge for Java Tips and Tricks http://javadude.com/vaj
> > Visit for Java Enlightenment! http://www.jguru.com
> > ==============================================================
> >
> > > -----Original Message-----
> > > From: platform-swt-dev-admin@xxxxxxxxxxx
> > > [mailto:platform-swt-dev-admin@xxxxxxxxxxx]On Behalf Of
> > Brad O'Hearne
> > > Sent: Thursday, January 16, 2003 11:01 AM
> > > To: platform-swt-dev@xxxxxxxxxxx
> > > Subject: RE: [platform-swt-dev] From Swing to SWT
> > >
> > >
> > > Lane,
> > >
> > > I am sure you have already considered this (and hence the
> > "hard to do"
> > > conclusion), but it seems that the answer for both Swing
> > and SWT is an
> > > abstraction layer that wraps around both Swing and SWT.
> > For example,
> > > the problem with having no default constructors in SWT
> > could possibly
> > > be handled by a custom factory class. The builder invokes
> > the factory
> > > class without parameters, and the factory class creates the actual
> > > widget, using whichever constructor is appropriate. This
> > effectively
> > > gives a parameterless interface to the builder, while allowing the
> > > existing parameterized constructors to be used.
> Likewise, it seems
> > > like get/set property methods could also be a class wrapper
> > around the
> > > actual widget. This is all probably a pain, yes, and
> alleviated by
> > > simply changing the design of the widgets themselves, but it is a
> > > possible answer. I guess a nice side benefit is that
> your builder
> > > would be completely agnostic to the underlying widget
> > implementation
> > > -- the interface is the same for AWT, Swing, SWT, or whatever new
> > > implementation might come along. Because the interface is
> > a wrapper
> > > around the widget library, there also is a separation
> > between widget
> > > implementation and builder needs, which for maintenance of
> > the widget
> > > library is probably a nice division of labor. A simple set
> > of classes
> > > that demonstrate this follow:
> > >
> > > e.g.
> > >
> > > public class BuilderWidget {
> > >
> > > public BuilderWidget(o.e..swt.Widget w) {
> > > this.widget = w
> > > }
> > >
> > > private o.e..swt.Widget widget;
> > >
> > > public void setProperty(Object val) {
> > > ...
> > > }
> > >
> > > public void getProperty(String name) {
> > > ...
> > > }
> > >
> > > }
> > >
> > > public interface BuilderWidgetFactory {
> > >
> > > public BuilderWidget create(String widgetType);
> > >
> > > }
> > >
> > > public class SWTBuilderWidgetFactory implements
> > BuilderWidgetFactory {
> > >
> > > public BuilderWidget create(String widgetType) {
> > > ...
> > > //create the new SWT widget w
> > > return new BuilderWidget(w);
> > > }
> > >
> > > }
> > >
> > > Have you done something like this already? Just an idea...
> > >
> > > BradO
> > >
> > >
> > > > -----Original Message-----
> > > > From: platform-swt-dev-admin@xxxxxxxxxxx
> > > > [mailto:platform-swt-dev-admin@xxxxxxxxxxx] On Behalf Of Lane
> > > > Sharman
> > > > Sent: Wednesday, January 15, 2003 7:25 PM
> > > > To: platform-swt-dev@xxxxxxxxxxx
> > > > Subject: Re: [platform-swt-dev] From Swing to SWT
> > > >
> > > >
> > > > Michael,
> > > >
> > > > I have been studying this problem for a while and do not see any
> > > > clean solution. The problem is that neither j.a.Component &
> > > > Container, nor o.e..swt.Widget and its descendants
> > implement a meta
> > > > data interface which makes inspection of properties of a widget
> > > > possible. Thus a conversion tool or a Builder are hard
> to do for
> > > > both Swing and SWT!
> > > >
> > > > I have written a short expose on the subject of
> property and meta
> > > > data in a GUI and there is a JSR on this very topic.
> > > >
> > > > http://opendoors.com/conga/2.2/docs/property/siframes.html
> > > > is a little presentation I wrote on the importance of the
> > property
> > > > exchange pattern which allows two objects that have no prior
> > > > knowledge of one another to establish a protocol (aka
> > Interface) to
> > > > exchange structured information. This is your case. You need a
> > > > translator that has a protocol map that can look at the dynamic
> > > > state of your Swing app
> > > > (not the static code) and then use that property information
> > > > to map to a
> > > > corresponding SWT tool.
> > > >
> > > > I really wish I could tweak the base class of the SWT to
> > make it a
> > > > little more GUI builder friendly along the lines of what
> > I work with
> > > > in Conga.
> > > >
> > > > Everytime I study the base class of SWT, I become more
> > frustrated.
> > > > For example, it is very important that every widget
> have a local,
> > > > relative name. There is no setName(), getName(). There is no
> > > > setProperties(ProperyList),
> getProperties(PropertyList). Sigghhh.
> > > >
> > > > -lane
> > > >
> > > > Michael Privat wrote:
> > > >
> > > > >Hi all,
> > > > >
> > > > >I would be very interested to hear some opinions regarding a
> > > > process to
> > > > >convert a swing based application to a SWT based application. I
> > > > >know there is some effort to create a standard SWT_AWT
> and vice
> > > > >versa container to allow mixing the two toolkits but I am
> > > > >interested in knowing if there are any patterns one
> might try to
> > > > >follow when converting to minimize the effort.
> > > > >
> > > > >Cheers
> > > > >Michael
> > > > >
> > > > >
> > > > >
> > > >
> > > > --
> > > > Lane Sharman
> > > > http://opendoors.com Conga, GoodTimes and Application Hosting
> > > > Services http://opendoors.com/lane.pdf BIO
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > platform-swt-dev mailing list platform-swt-dev@xxxxxxxxxxx
> > > > http://dev.eclipse.org/mailman/listinfo/platfo> rm-swt-dev
> > > >
> > >
> > >
> > > _______________________________________________
> > > platform-swt-dev mailing list
> > > platform-swt-dev@xxxxxxxxxxx
> > > http://dev.eclipse.org/mailman/listinfo/platform-swt-dev
> > >
> >
> >
> > _______________________________________________
> > platform-swt-dev mailing list
> > platform-swt-dev@xxxxxxxxxxx
> > http://dev.eclipse.org/mailman/listinfo/platfo> rm-swt-dev
> >
>
>
> _______________________________________________
> platform-swt-dev mailing list
> platform-swt-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/platform-swt-dev
>