cores = new Stack<Core>();
Core core = new Core(new ResourceLoaderFactory(), this);
cores.push(core);
core.registerService(ValueConvertorRegister.class,
new ValueConvertorRegister());
core.registerMetaclassManager(IConstants.XWT_NAMESPACE,
new MetaclassManager(null, null, this));
core.registerMetaclass(new BindingMetaclass(this),
IConstants.XWT_NAMESPACE);
core.registerMetaclass(new BindingMetaclass(MultiBinding.class, this),
IConstants.XWT_NAMESPACE);
core.registerMetaclass(new TableEditorMetaclass(core.getMetaclass(
ControlEditor.class, IConstants.XWT_NAMESPACE), this),
IConstants.XWT_NAMESPACE);
registerConvertor(ObjectToString.instance);
registerConvertor(DateToString.instance);
registerConvertor(EnumToString.instance);
registerConvertor(StringToInteger.instance);
// It is not supported by eclipse 3.4.1
registerConvertor(StringToNumberConverter.class, "toBigDecimal");
registerConvertor(StringToNumberConverter.class, "toByte", false);
registerConvertor(StringToNumberConverter.toLong(false));
// It is not supported by eclipse 3.4.1
registerConvertor(StringToNumberConverter.class, "toShort", false);
registerConvertor(StringToNumberConverter.toFloat(false));
registerConvertor(StringToNumberConverter.toDouble(false));
registerConvertor(NumberToStringConverter.fromInteger(false));
// It is not supported by eclipse 3.4.1
registerConvertor(NumberToStringConverter.class, "fromBigDecimal");
registerConvertor(NumberToStringConverter.class, "fromByte", false);
registerConvertor(NumberToStringConverter.fromLong(false));
// It is not supported by eclipse 3.4.1
registerConvertor(NumberToStringConverter.class, "fromShort", false);
registerConvertor(NumberToStringConverter.fromFloat(false));
registerConvertor(NumberToStringConverter.fromDouble(false));
registerConvertor(StringToBoolean.instance);
registerConvertor(ObjectToBoolean.instance);
registerConvertor(SelectionToBoolean.instance);
registerConvertor(CollectionToBoolean.instance);
registerConvertor(CollectionToInteger.instance);
registerConvertor(StringToIntArray.instance);
registerConvertor(BindingToObject.instance);
registerConvertor(StringToColor.instance);
registerConvertor(StringToFont.instance);
registerConvertor(StringToImage.instance);
registerConvertor(StringToPoint.instance);
registerConvertor(StringToRectangle.instance);
registerConvertor(StringToURL.instance);
registerConvertor(StringToType.instance);
registerConvertor(StringToFormAttachment.instance);
registerConvertor(StringToIValidationRule.instance);
registerConvertor(StringToIValueConverter.instance);
registerConvertor(ListToIObservableCollection.instance);
registerConvertor(SetToIObservableCollection.instance);
registerConvertor(ObjectToISelection.instance);
registerConvertor(ListToSet.instance);
registerConvertor(IStatusToString.instance);
registerConvertor(IStatusToBoolean.instance);
ValueConvertorRegister convertorRegister = (ValueConvertorRegister) core
.getService(ValueConvertorRegister.class);
convertorRegister.register(String.class, float.class,
StringToNumberConverter.toFloat(true));
convertorRegister.register(String.class, int.class,
StringToInteger.instance);
// It is not supported by eclipse 3.4.1
// convertorRegister.register(String.class, short.class,
// StringToNumberConverter.toShort(true));
registerConvertor(convertorRegister, String.class, short.class,
StringToNumberConverter.class, "toShort", true);
convertorRegister.register(String.class, long.class,
StringToNumberConverter.toLong(true));
// It is not supported by eclipse 3.4.1
// convertorRegister.register(String.class, byte.class,
// StringToNumberConverter.toByte(true));
registerConvertor(convertorRegister, String.class, byte.class,
StringToNumberConverter.class, "toByte", true);
convertorRegister.register(String.class, boolean.class,
StringToBoolean.instance);
convertorRegister.register(String.class, double.class,
StringToNumberConverter.toDouble(true));
convertorRegister.register(float.class, String.class,
NumberToStringConverter.fromFloat(true));
convertorRegister.register(int.class, String.class,
NumberToStringConverter.fromInteger(true));
// It is not supported by eclipse 3.4.1
// convertorRegister.register(short.class, String.class,
// NumberToStringConverter.fromShort(true));
registerConvertor(convertorRegister, short.class, String.class,
NumberToStringConverter.class, "fromShort", true);
convertorRegister.register(long.class, String.class,
NumberToStringConverter.fromLong(true));
// It is not supported by eclipse 3.4.1
// convertorRegister.register(byte.class, String.class,
// NumberToStringConverter.fromByte(true));
registerConvertor(convertorRegister, byte.class, String.class,
NumberToStringConverter.class, "fromByte", true);
convertorRegister.register(double.class, String.class,
NumberToStringConverter.fromDouble(true));
Class<?> type = org.eclipse.swt.browser.Browser.class;
IMetaclass browserMetaclass = (IMetaclass) registerMetaclass(type);
browserMetaclass.addProperty(new DynamicProperty(type, String.class,