catch up with branch development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/mavenizing_started b/mavenizing_started
deleted file mode 100644
index e69de29..0000000
--- a/mavenizing_started
+++ /dev/null
diff --git a/org.eclipse.osbp.autowireHelper/src/org/eclipse/osbp/autowirehelper/AutowireHelper.xtend b/org.eclipse.osbp.autowireHelper/src/org/eclipse/osbp/autowirehelper/AutowireHelper.xtend
index 73de8cb..152ed50 100644
--- a/org.eclipse.osbp.autowireHelper/src/org/eclipse/osbp/autowirehelper/AutowireHelper.xtend
+++ b/org.eclipse.osbp.autowireHelper/src/org/eclipse/osbp/autowirehelper/AutowireHelper.xtend
@@ -304,6 +304,8 @@
 						suspect = type.createPerspectiveComboBox(it)
 					} else if (properties.exists[key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_PRINTSERVICE)]) {
 						suspect = type.createPrintServiceComboBox(it)
+					} else if (properties.exists[key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_I18N)]) {
+						suspect = type.createI18nComboBox(it)
 					} else if (properties.exists[key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_THEME)]) {
 						suspect = type.createThemeComboBox(it)
 					} else if (properties.exists[key.equalsIgnoreCase(functionImagePicker)]) {
@@ -817,6 +819,17 @@
 		suspect
 	}
 
+	def YTypedSuspect createI18nComboBox(JvmType type, OperationInfo info) {
+		val suspect = YECviewFactory.eINSTANCE.createYTypedSuspect
+		suspect.tags += ILayoutingStrategy.TAG__I18N_COMBO
+		suspect.type = typeof(String)
+		suspect.typeQualifiedName = typeof(String).name
+		if (info.readonly) {
+			suspect.tags += "readonly"
+		}
+		suspect
+	}
+
 	def YTypedSuspect createEnumOptionsGroup(JvmType type, OperationInfo info) {
 		val suspect = YECviewFactory.eINSTANCE.createYTypedSuspect
 		suspect.tags += ILayoutingStrategy.TAG__ENUM_OPTIONS
@@ -831,7 +844,7 @@
 
 	def YTypedSuspect createBeanReferenceField(JvmType type, OperationInfo info) {
 		var YTypedSuspect suspect = null
-		var suspectType = computer.loadClass(uiLayout.eResource.resourceSet, type.qualifiedName)
+		var suspectType = computer.loadClass(uiLayout?.eResource?.resourceSet, type?.qualifiedName)
 		var captionProperty = BeanHelper.findCaptionProperty(suspectType)
 		var captionDescription = BeanHelper.findDescriptionProperty(suspectType)
 		if (captionProperty !== null || captionDescription !== null) {
@@ -876,7 +889,7 @@
 		// Not used! Has to be removed!
 		// var typeRef = info.field.type
 		// var JvmDeclaredType argType
-		if (typeInCollection.type instanceof JvmDeclaredType) {
+		if (typeInCollection?.type instanceof JvmDeclaredType) {
 			val castedType = typeInCollection.type as JvmDeclaredType
 
 			// TODO get props from JVMType
diff --git a/org.eclipse.osbp.autowireHelper/xtend-gen/org/eclipse/osbp/autowirehelper/AutowireHelper.java b/org.eclipse.osbp.autowireHelper/xtend-gen/org/eclipse/osbp/autowirehelper/AutowireHelper.java
index 376d82e..2654ef9 100644
--- a/org.eclipse.osbp.autowireHelper/xtend-gen/org/eclipse/osbp/autowirehelper/AutowireHelper.java
+++ b/org.eclipse.osbp.autowireHelper/xtend-gen/org/eclipse/osbp/autowirehelper/AutowireHelper.java
@@ -530,20 +530,28 @@
                                   suspect = this.createPrintServiceComboBox(type, it);
                                 } else {
                                   final Function1<AutowireUtil.Pair, Boolean> _function_8 = (AutowireUtil.Pair it_1) -> {
-                                    return Boolean.valueOf(it_1.key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_THEME));
+                                    return Boolean.valueOf(it_1.key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_I18N));
                                   };
                                   boolean _exists_5 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_8);
                                   if (_exists_5) {
-                                    suspect = this.createThemeComboBox(type, it);
+                                    suspect = this.createI18nComboBox(type, it);
                                   } else {
                                     final Function1<AutowireUtil.Pair, Boolean> _function_9 = (AutowireUtil.Pair it_1) -> {
-                                      return Boolean.valueOf(it_1.key.equalsIgnoreCase(functionImagePicker));
+                                      return Boolean.valueOf(it_1.key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_THEME));
                                     };
                                     boolean _exists_6 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_9);
                                     if (_exists_6) {
-                                      suspect = this.createIconComboBox(type, it);
+                                      suspect = this.createThemeComboBox(type, it);
                                     } else {
-                                      suspect = this.createTextField(type, it);
+                                      final Function1<AutowireUtil.Pair, Boolean> _function_10 = (AutowireUtil.Pair it_1) -> {
+                                        return Boolean.valueOf(it_1.key.equalsIgnoreCase(functionImagePicker));
+                                      };
+                                      boolean _exists_7 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_10);
+                                      if (_exists_7) {
+                                        suspect = this.createIconComboBox(type, it);
+                                      } else {
+                                        suspect = this.createTextField(type, it);
+                                      }
                                     }
                                   }
                                 }
@@ -563,11 +571,11 @@
               } else {
                 boolean _isEnum = this._typeHelper.isEnum(type);
                 if (_isEnum) {
-                  final Function1<AutowireUtil.Pair, Boolean> _function_10 = (AutowireUtil.Pair it_1) -> {
+                  final Function1<AutowireUtil.Pair, Boolean> _function_11 = (AutowireUtil.Pair it_1) -> {
                     return Boolean.valueOf(it_1.key.toLowerCase().equals(ILayoutingStrategy.PROPERTY_OPTION_GROUP));
                   };
-                  boolean _exists_7 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_10);
-                  if (_exists_7) {
+                  boolean _exists_8 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_11);
+                  if (_exists_8) {
                     suspect = this.createEnumOptionsGroup(type, it);
                   } else {
                     suspect = this.createEnumComboBox(type, it);
@@ -575,10 +583,10 @@
                 } else {
                   boolean _isByteArray = this.isByteArray(type);
                   if (_isByteArray) {
-                    final Function1<AutowireUtil.Pair, Boolean> _function_11 = (AutowireUtil.Pair it_1) -> {
+                    final Function1<AutowireUtil.Pair, Boolean> _function_12 = (AutowireUtil.Pair it_1) -> {
                       return Boolean.valueOf(it_1.key.equals(ILayoutingStrategy.PROPERTY_KEY__FIELD_TYPE));
                     };
-                    AutowireUtil.Pair _findFirst_2 = IterableExtensions.<AutowireUtil.Pair>findFirst(properties, _function_11);
+                    AutowireUtil.Pair _findFirst_2 = IterableExtensions.<AutowireUtil.Pair>findFirst(properties, _function_12);
                     String _value_2 = null;
                     if (_findFirst_2!=null) {
                       _value_2=_findFirst_2.value;
@@ -595,18 +603,18 @@
                       suspect = this.createBeanReferenceField(type, it);
                     } else {
                       if (((it.getField() != null) && this._typeHelper.isCollection(it.getField()))) {
-                        final Function1<AutowireUtil.Pair, Boolean> _function_12 = (AutowireUtil.Pair it_1) -> {
+                        final Function1<AutowireUtil.Pair, Boolean> _function_13 = (AutowireUtil.Pair it_1) -> {
                           return Boolean.valueOf(it_1.key.toLowerCase().equals(ILayoutingStrategy.PROPERTY_GRID));
                         };
-                        boolean _exists_8 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_12);
-                        if (_exists_8) {
+                        boolean _exists_9 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_13);
+                        if (_exists_9) {
                           suspect = this.createGrid(type, it);
                         } else {
-                          final Function1<AutowireUtil.Pair, Boolean> _function_13 = (AutowireUtil.Pair it_1) -> {
+                          final Function1<AutowireUtil.Pair, Boolean> _function_14 = (AutowireUtil.Pair it_1) -> {
                             return Boolean.valueOf(it_1.key.equalsIgnoreCase(ILayoutingStrategy.PROPERTY_TABLE));
                           };
-                          boolean _exists_9 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_13);
-                          if (_exists_9) {
+                          boolean _exists_10 = IterableExtensions.<AutowireUtil.Pair>exists(properties, _function_14);
+                          if (_exists_10) {
                             suspect = this.createTableField(type, it);
                           }
                         }
@@ -1179,6 +1187,24 @@
     return _xblockexpression;
   }
   
+  public YTypedSuspect createI18nComboBox(final JvmType type, final OperationExtensions.OperationInfo info) {
+    YTypedSuspect _xblockexpression = null;
+    {
+      final YTypedSuspect suspect = YECviewFactory.eINSTANCE.createYTypedSuspect();
+      EList<String> _tags = suspect.getTags();
+      _tags.add(ILayoutingStrategy.TAG__I18N_COMBO);
+      suspect.setType(String.class);
+      suspect.setTypeQualifiedName(String.class.getName());
+      boolean _isReadonly = info.isReadonly();
+      if (_isReadonly) {
+        EList<String> _tags_1 = suspect.getTags();
+        _tags_1.add("readonly");
+      }
+      _xblockexpression = suspect;
+    }
+    return _xblockexpression;
+  }
+  
   public YTypedSuspect createEnumOptionsGroup(final JvmType type, final OperationExtensions.OperationInfo info) {
     YTypedSuspect _xblockexpression = null;
     {
@@ -1208,7 +1234,19 @@
     YTypedSuspect _xblockexpression = null;
     {
       YTypedSuspect suspect = null;
-      Class<?> suspectType = this.computer.loadClass(this.uiLayout.eResource().getResourceSet(), type.getQualifiedName());
+      Resource _eResource = null;
+      if (this.uiLayout!=null) {
+        _eResource=this.uiLayout.eResource();
+      }
+      ResourceSet _resourceSet = null;
+      if (_eResource!=null) {
+        _resourceSet=_eResource.getResourceSet();
+      }
+      String _qualifiedName = null;
+      if (type!=null) {
+        _qualifiedName=type.getQualifiedName();
+      }
+      Class<?> suspectType = this.computer.loadClass(_resourceSet, _qualifiedName);
       String captionProperty = BeanHelper.findCaptionProperty(suspectType);
       String captionDescription = BeanHelper.findDescriptionProperty(suspectType);
       if (((captionProperty != null) || (captionDescription != null))) {
@@ -1261,7 +1299,10 @@
       EList<String> _tags = suspect.getTags();
       _tags.add(tag);
       suspect.setTypeQualifiedName(typeInCollection.getType().getQualifiedName());
-      JvmType _type = typeInCollection.getType();
+      JvmType _type = null;
+      if (typeInCollection!=null) {
+        _type=typeInCollection.getType();
+      }
       if ((_type instanceof JvmDeclaredType)) {
         JvmType _type_1 = typeInCollection.getType();
         final JvmDeclaredType castedType = ((JvmDeclaredType) _type_1);