Class<?> type = org.eclipse.swt.browser.Browser.class;
IMetaclass browserMetaclass = (IMetaclass) registerMetaclass(type);
browserMetaclass.addProperty(new DynamicProperty(type, String.class,
PropertiesConstants.PROPERTY_URL));
IMetaclass buttonMetaclass = (IMetaclass) registerMetaclass(Button.class);
buttonMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,
IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));
registerMetaclass(org.eclipse.swt.widgets.Canvas.class);
registerMetaclass(org.eclipse.swt.widgets.Caret.class);
registerMetaclass(org.eclipse.swt.widgets.Combo.class);
registerMetaclass(org.eclipse.swt.widgets.Composite.class);
registerMetaclass(org.eclipse.swt.widgets.CoolBar.class);
registerMetaclass(org.eclipse.swt.widgets.CoolItem.class);
registerMetaclass(org.eclipse.swt.widgets.DateTime.class);
registerMetaclass(org.eclipse.swt.widgets.Decorations.class);
registerMetaclass(org.eclipse.swt.widgets.ExpandBar.class);
IMetaclass expandItemMetaclass = registerMetaclass(ExpandItem.class);
expandItemMetaclass.findProperty("control").addSetPostAction(
new ExpandItemHeightAction());
registerMetaclass(Group.class);
registerMetaclass(IME.class);
registerMetaclass(Label.class);
registerMetaclass(Link.class);
registerMetaclass(Listener.class);
registerMetaclass(List.class);
registerMetaclass(Menu.class);
IMetaclass menuItemMetaclass = (IMetaclass) registerMetaclass(MenuItem.class);
menuItemMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,
IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));
registerMetaclass(org.eclipse.swt.widgets.MessageBox.class);
registerMetaclass(org.eclipse.swt.widgets.ProgressBar.class);
registerMetaclass(org.eclipse.swt.widgets.Sash.class);
registerMetaclass(org.eclipse.swt.widgets.Scale.class);
registerMetaclass(org.eclipse.swt.widgets.ScrollBar.class);
registerMetaclass(org.eclipse.swt.widgets.Shell.class);
registerMetaclass(org.eclipse.swt.widgets.Slider.class);
registerMetaclass(org.eclipse.swt.widgets.Spinner.class);
registerMetaclass(org.eclipse.swt.widgets.TabFolder.class);
registerMetaclass(org.eclipse.swt.widgets.TabItem.class);
registerMetaclass(org.eclipse.swt.widgets.Table.class);
type = org.eclipse.swt.widgets.TableItem.class;
IMetaclass metaclass = (IMetaclass) registerMetaclass(type);
metaclass.addProperty(new TableItemProperty());
metaclass.addProperty(new TableItemEditorProperty());
metaclass.addProperty(new DynamicBeanProperty(TableItem.class,
String[].class, PropertiesConstants.PROPERTY_TEXTS,
PropertiesConstants.PROPERTY_TEXT));
registerMetaclass(TableItemProperty.Cell.class);
registerMetaclass(ControlEditor.class);
registerMetaclass(TableEditor.class);
IMetaclass TableEditorMetaclass = core.getMetaclass(TableEditor.class,
IConstants.XWT_NAMESPACE);
TableEditorMetaclass.addProperty(new TableEditorDynamicProperty());
type = org.eclipse.swt.widgets.TableColumn.class;
metaclass = (IMetaclass) registerMetaclass(type);
metaclass.addProperty(new TableColumnEditorProperty());
registerMetaclass(org.eclipse.swt.widgets.Text.class);
registerMetaclass(org.eclipse.swt.widgets.ToolBar.class);
registerMetaclass(org.eclipse.swt.widgets.ToolItem.class);
registerMetaclass(org.eclipse.swt.widgets.ToolTip.class);
registerMetaclass(org.eclipse.swt.widgets.Tracker.class);
registerMetaclass(org.eclipse.swt.widgets.Tray.class);
registerMetaclass(org.eclipse.swt.widgets.Tree.class);
registerMetaclass(org.eclipse.swt.widgets.TreeColumn.class);
registerMetaclass(org.eclipse.swt.widgets.TreeItem.class);
type = org.eclipse.swt.widgets.TreeItem.class;
metaclass = (IMetaclass) registerMetaclass(type);
metaclass.addProperty(new DynamicBeanProperty(TreeItem.class,
String[].class, PropertiesConstants.PROPERTY_TEXTS,
PropertiesConstants.PROPERTY_TEXT));
// registerMetaclass(org.eclipse.swt.layout.FillData.class);
registerMetaclass(org.eclipse.swt.layout.FillLayout.class);
registerMetaclass(org.eclipse.swt.layout.FormAttachment.class);
registerMetaclass(org.eclipse.swt.layout.FormData.class);
registerMetaclass(org.eclipse.swt.layout.FormLayout.class);
registerMetaclass(org.eclipse.swt.layout.GridData.class);
registerMetaclass(org.eclipse.swt.layout.GridLayout.class);
registerMetaclass(org.eclipse.swt.layout.RowData.class);
registerMetaclass(org.eclipse.swt.layout.RowLayout.class);
registerMetaclass(org.eclipse.swt.custom.StackLayout.class);
registerMetaclass(org.eclipse.swt.custom.CLabel.class);
registerMetaclass(org.eclipse.swt.custom.CCombo.class);
registerMetaclass(org.eclipse.swt.custom.CTabFolder.class);
registerMetaclass(org.eclipse.swt.custom.CTabItem.class);
registerMetaclass(org.eclipse.swt.custom.SashForm.class);
registerMetaclass(org.eclipse.swt.custom.StyledText.class);
registerMetaclass(org.eclipse.swt.custom.ScrolledComposite.class);
registerMetaclass(org.eclipse.swt.custom.TableTree.class);
registerMetaclass(org.eclipse.swt.custom.ViewForm.class);
registerMetaclass(org.eclipse.swt.custom.CBanner.class);
registerMetaclass(org.eclipse.swt.custom.TableCursor.class);
type = org.eclipse.swt.widgets.Widget.class;
metaclass = (IMetaclass) registerMetaclass(type);
metaclass.addProperty(new DataProperty(IConstants.XAML_DATA_CONTEXT,
IUserDataConstants.XWT_DATACONTEXT_KEY));
metaclass.addProperty(new DataProperty(IConstants.XAML_BINDING_CONTEXT,
IUserDataConstants.XWT_BINDING_CONTEXT_KEY));
metaclass.addProperty(new DataProperty(IConstants.XAML_TRIGGERS,
IUserDataConstants.XWT_TRIGGERS_KEY, TriggerBase[].class));
metaclass.addProperty(new StyleProperty());
registerEventGroup(type, new RadioEventGroup(IEventConstants.KEY_GROUP));
registerEventGroup(type, new RadioEventGroup(
IEventConstants.MOUSE_GROUP));
registerEventGroup(type, new RadioEventGroup(
IEventConstants.MOUSE_MOVING_GROUP));
registerEventGroup(type, new RadioEventGroup(
IEventConstants.FOCUS_GROUP));
registerEventGroup(type, new RadioEventGroup(
IEventConstants.EXPAND_GROUP));
registerEventGroup(type, new RadioEventGroup(
IEventConstants.WINDOW_GROUP));
registerEventGroup(type, new RadioEventGroup(
IEventConstants.ACTIVATION_GROUP));
registerEventGroup(type, new RadioEventGroup(IEventConstants.HARD_KEY));
type = org.eclipse.jface.viewers.Viewer.class;
metaclass = (IMetaclass) core.getMetaclass(type,
IConstants.XWT_NAMESPACE);
if (metaclass != null) {
IProperty property = metaclass.findProperty("Input");
metaclass.addProperty(new InputBeanProperty(property));
metaclass.addProperty(new DataProperty(
IConstants.XAML_DATA_CONTEXT,
IUserDataConstants.XWT_DATACONTEXT_KEY));
metaclass.removeProperty("selection");
metaclass.addProperty(new DataProperty(
PropertiesConstants.PROPERTY_BINDING_PATH,
IUserDataConstants.XWT_PROPERTY_DATA_KEY, String.class));
metaclass.addProperty(new DataProperty(
PropertiesConstants.PROPERTY_ITEM_TEXT,
IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY,
IBinding.class));
metaclass.addProperty(new DataProperty(
PropertiesConstants.PROPERTY_ITEM_IMAGE,
IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY,
IBinding.class));
metaclass.addProperty(new SingleSelectionBeanProperty(
PropertiesConstants.PROPERTY_SINGLE_SELECTION));