Please note that with the newer releases of GWT, this project is now deprecated as many of the techniques used to add custom element parsers to UiBinder are now not possible.
It should also be noted that this open source project has no relation to Sencha Inc and their product GXT.
Much of the components in ExtGWT (GXT) were written before GWT 2.0, thus not having support for UiBinder.
This project utilizes the ability to add custom ElementParsers from the gwt-customuibinder project add a number of parsers that can handle GXT layouts and widgets.
This project also adds support for using GXT events from UiBinder.
To get started, check out the User's Guide.
2011-05-11 Announcement: gxt-uibinder is now in Maven Central
New Release: 1.0.0
- Closed Issues
2011-04-03 New Release: 0.11
- Closed Issues
- New Demos
- ComboBox
- Basic Toolbar
- Refactorings
- Refactored LayoutContainerParser to pull out a LayoutParserFactory rather than using a hard coded enum
- Refactored GenericLayoutParser to pull out a LayoutDataFieldFactory rather than using a hard coded enum
2011-03-27 New Release: 0.10
- Closed Issues
<form:item value="{msg.foo}" />
* added a type attribute so that SimpleComboBox items can be values other than String type.
- Misc
- Updated pom with gwt version 2.2.0
2011-03-20 New Release: 0.9
- Closed Issues
- New Demos
- CheckboxTreeView
- VBoxLayout
- AccordionLayout
- Misc
- Upgraded GXT in demo from 2.2.0 to 2.2.3
2011-03-15 New Release: 0.8
- New Demos
- HBoxLayout
- Basic Tree
- Defects
<gxt:layoutdata>
elements cause incorrect "add" ordering
- New Functionality
- ElementParser for ToggleButton. Allows attribute toggle="boolean", which will call toggle(boolean)
- Issue 10 - !HBoxLayout support
- !HBoxLayout was already there, but didn't support the nested !HBoxLayoutData elements, nor the ability set data on the Layout object itself.
- Issue 11 - Support for TreePanel
- Added very basic support. Just enough to construct with a store as constructor parameter
2011-03-06 Released version 0.7
- New Demo's
- Basic Grid
- Forms
- RowLayout
- CardLayout
- CenterLayout
- Portal
- Fixed Defect
- New functionality
- Added support for FormData
- Custom ElementParser for SliderField. Allows for single nested widget of type Slider
- Added support for CheckBoxGroup
- Modification of the ComponentParser to support Number property values.
- Deprecated rowLayoutOrientation attribute (for RowLayout containers) in favor of layoutOrientation
- Portal support with ability to setColumnWidth
2011-01-18 New Demo Site available! All gxt-uibinder examples can now be found at http://gxt-uibinder.appspot.com/
2011-01-18 Released version 0.6.
- New Functionality
- FlowLayout
- Html
- Ability to "addButton" on ContentPanel's by using child element
<gxt:buttons>
* Adding LayoutData abilities with nested
<xx:layoutdata>
child elements of LayoutContainers
- Reorganized repository layout to add new test project
- Added Simple Unit Tests
- AbsoluteLayout
- Adding demo pages
- BorderLayout
- ToolTips
- DatePicker
- Basic Tabs
- Slider
- Buttons
- ButtonAligning
- Added Simple Unit Tests
2011-01-12
- Started work on working Demo site very much like the Ext GWT Explorer, but with UiBinder source display
2011-01-03
- Back from the holidays. Starting development on Unit Tests
- For future refactorings, we need unit tests to guarantee that changes aren't breaking existing functionality
2010-12-21 Released version 0.5.
- New Functionality
- support for AbsoluteLayout
- support for RowLayout
- Added support for using styleAttribute="" for all Components
- Defect fix
- ElementParserUtil had defect in that it always assumed attributes are being consumed. Fixed by reversing order of attribute consumption.
2010-12-20 Released version 0.4.
- New functionality
- added maven pom file for easier jar builds
- Support setting ToolTipConfig to any component by nesting a
<ns:tooltipconfig />
element * FormLayout support * RadioGroup
- Update to existing functionality
- Added more Layout's for the LayoutContainer
2010-12-12 Released version 0.3.
- New support:
- Button menus
- ButtonGroup
2010-12-06 New Download available 0.2. Added support for basic Grids. See Grid for usage.
Here's a quick example usage:
UiBinder File:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:gxt="urn:import:com.extjs.gxt.ui.client.widget"
xmlns:menu="urn:import:com.extjs.gxt.ui.client.widget.menu">
<gxt:ContentPanel headerVisible="false" layout="FitLayout">
<gxt:topcomponent>
<menu:MenuBar borders="true">
<menu:MenuBarItem text="File">
<menu:Menu>
<menu:MenuItem text="New" ui:field="newMenuItem" />
<menu:MenuItem text="Open" ui:field="openMenuItem" />
<menu:MenuItem text="Save" ui:field="saveMenuItem" />
<menu:MenuItem text="Save As" ui:field="saveAsMenuItem" />
</menu:Menu>
</menu:MenuBarItem>
</menu:MenuBar>
</gxt:topcomponent>
<gxt:LayoutContainer layout="BorderLayout">
<gxt:center>
<gxt:LayoutContainer layout="FitLayout" ui:field="content" />
</gxt:center>
<gxt:south size="30">
<gxt:Label ui:field="status" />
</gxt:south>
</gxt:LayoutContainer>
</gxt:ContentPanel>
</ui:UiBinder>
Owner Class:
public class ApplicationShell extends Composite {
static interface Binder extends UiBinder<Widget, ApplicationShell> {}
private Binder BINDER = GWT.create(Binder.class);
@UiField LayoutContainer content;
@UiField Label status;
public ApplicationShell() {
initWidget(BINDER.createAndBindUi(this));
}
@GxtUiHandler(uiField="newMenuItem", eventType=GxtEvent.Select)
public void newMenuItemClicked(MenuEvent event) {
status.setText("new clicked");
}
@GxtUiHandler(uiField="openMenuItem", eventType=GxtEvent.Select)
public void openMenuItemClicked(MenuEvent event) {
status.setText("open clicked");
}
@GxtUiHandler(uiField={"saveMenuItem", "saveAsMenuItem"}, eventType=GxtEvent.Select)
public void saveOrSaveAsClicked(MenuEvent event) {
status.setText("save or save as clicked");
}
}