go to http://oracle.in.th

Monday, August 17, 2009

XWT: version ใหม่ของ SWT ที่น่ามอง

XWT นั้นเป็น SWT ธรรมดาตัวหนึ่งเพียงแต่ว่าแยกส่วนของ view ออกมาไว้ใน xml ส่วน model และ controller นั้นยังอยู่ใน code java เหมือนเดิม ซึ่งโดยปกติที่เราเขียน SWT ถึงแม้ว่าเราเขียนใน code java ทั้งหมดแต่เราก็สามารถแยก model, view และ controller ออกได้เองอยู่แล้ว เพียงแต่ XWT นั้นช่วยทำให้มันเห็นเด่นชัดมากขึ้นนั้นเอง

การ design หน้า view ของ XWT

<Shell xmlns="http://www.eclipse.org/xwt/presentation"
  xmlns:x="http://www.eclipse.org/xwt">
  <Shell.layout>
    <FillLayout/>
  </Shell.layout>
  <Button text="Hello, world!">
  </Button>
</Shell>


* This source code was highlighted with Source Code Highlighter.


แทนที่การ design หน้า view ของ SWT

Shell parent = new Shell();
parent.setLayout(new FillLayout());
Button button = new Button(parent, SWT.NONE);
button.setText("Hello, world!");


* This source code was highlighted with Source Code Highlighter.

จะเห็นว่ามันง่ายมากขึ้นและสามารถ maintain ได้ง่ายขึ้น แต่สำหรับคนที่มองว่าการเขียน xml เป็นเรื่องยุ่งยากให้เราลองมองว่า xml นี้มันเหมือนกับ html ธรรมดา

ซึ่งก่อนที่ eclipse จะทำ XWT ออกมาก็มี plug-in ต่างๆมากมายที่รองรับการเขียนในส่วนของ view ของ SWT ต่างๆในรูปของ xml ไม่ว่าจะเป็น swtxml, CookSwt: XML to SWT GUI, และอื่นๆอีกมากมาย และดูเหมือนในตอนนี้ผมรู้สึกว่า plug-in ของเจ้าอื่นๆยังใช้ง่ายกว่าอีก (หรือเพราะว่ามันเป็นแค่ RT อยู่ทำให้มันขัดใจได้ขนาดนี้) แน่นอนว่า eclipse ทำมาทั้งทีจะแค่นี้ได้อย่างไร โดยผู้ออกแบบนั้นต้องการที่จะให้ XWT นั้นเป็นสื่อกลางของ UI ทั้งหมดที่พร้อมจะ port ไปเป็นอะไรก็แล้วแต่โดยที่ในรูปด้านล่างจะยกตัวอย่างของ SWT และ JFace และดูเหมือนว่าในจะรองรับการ port ออกมาเป็น web ด้วยซึ่งถ้าเป็นเช่นนั้นจริงถือว่าเป็นการเปิดตลาดของ RIA ขึ้นเหมือนกับของ sun ที่เปิดตลาด RIA ด้วย Java FX (มันคล้ายกับ Java มี Swing แต่ Eclipse ออก SWT มาใช้แทน)

ภาพ UI จากที่ port จาก XWT เป็น web


ภาพ UI จากที่ port จาก XWT เป็น swt


โดย vendor ที่เริ่มต้น project นี้คือ soyatec ซึ่งมีหลาย project ซึ่งที่ผมใช้อยู่นั้นคือ euml2 และยังมีอื่นๆอีกเช่น eFace และ eBPMN



โดยแนวคิดนี้ดูเหมือนจะคล้ายกับ XAML ของ M$ มากโดยถ้าหากมันสวยดังรูปที่ demo มาจริงๆหละก็อาจจะมาแทนที่ Java FX เลยก็ได้และเป็นคู่แข่งกับ Flex และ Silverlight ได้อย่างสูสีแต่ ณ ตอนนี้ที่สามารถลองเขียนและ demo ได้จริงนั้นเป็นเพียงแค่ XWT -> SWT เท่านั้นซึ่งผมลองเล่นดูแล้วมันค่อนข้างที่ไม่เหมือนกับภาพด้านบนที่มัน Demo เลยให้ความรู้สึกเหมือน Swing กับ SWT ปกติ ซึ่งอาจเป็นเพราะว่ายังเป็นแค่ RT เท่านั้น

Update :: XWT ที่สามารถ run ทั้งใน desktop application หรือที่ port ออกมาเป็น web application ได้สวยนั้นเพราะว่าใน desktop application นั้นมันจะแปลง XWT เป็น Flex ส่วน web application นั้น XWT จะแปลงเป็น GWT นั้นเอง
RAP ขอโทษครับผิดผลาดอย่างแรง

Update 2 :: ไปลองเล่น demo จริงๆของ XWT ที่ port เป็น RAP ที่นี่


Ref : http://wiki.eclipse.org/E4/XWT, http://dev.eclipse.org/blogs/yvesyang/2008/11/28/xwt-declarative-ui-designed-for-eclipse/, http://wiki.eclipse.org/E4

ปล. http://sourceforge.net/projects/xwt, http://www.xwt.org/ ดูเหมือนว่าจะเป็นคนละ project และไม่เกี่ยวข้องกับ XWT ของ Eclipse เลย
ข้อเขียนนี้ช่วยฉัน:  

No comments:

Post a Comment