Code cleanup and hierarchy fixes.
Category for Executors added.
diff --git a/org.eclipse.scout.nls.sdk.services/plugin.xml b/org.eclipse.scout.nls.sdk.services/plugin.xml
index 50a4b6f..f3fb63a 100644
--- a/org.eclipse.scout.nls.sdk.services/plugin.xml
+++ b/org.eclipse.scout.nls.sdk.services/plugin.xml
@@ -41,13 +41,11 @@
point="org.eclipse.scout.sdk.ui.executor">
<executor
class="org.eclipse.scout.nls.sdk.services.ui.executor.TextProviderServiceDeleteExecutor"
- id="org.eclipse.scout.nls.sdk.services.ui.action.TextProviderServiceDeleteAction"
- order="0">
+ id="org.eclipse.scout.nls.sdk.services.ui.action.TextProviderServiceDeleteAction">
</executor>
<executor
class="org.eclipse.scout.nls.sdk.services.ui.executor.TextProviderServiceNewExecutor"
- id="org.eclipse.scout.nls.sdk.services.ui.action.TextProviderServiceNewAction"
- order="0">
+ id="org.eclipse.scout.nls.sdk.services.ui.action.TextProviderServiceNewAction">
</executor>
</extension>
</plugin>
diff --git a/org.eclipse.scout.nls.sdk/src/org/eclipse/scout/nls/sdk/internal/jdt/NlsFolder.java b/org.eclipse.scout.nls.sdk/src/org/eclipse/scout/nls/sdk/internal/jdt/NlsFolder.java
index 294be3b..61a57bc 100644
--- a/org.eclipse.scout.nls.sdk/src/org/eclipse/scout/nls/sdk/internal/jdt/NlsFolder.java
+++ b/org.eclipse.scout.nls.sdk/src/org/eclipse/scout/nls/sdk/internal/jdt/NlsFolder.java
@@ -31,5 +31,4 @@
public int getType() {
return m_type;
}
-
}
diff --git a/org.eclipse.scout.sdk.rap.ui/plugin.xml b/org.eclipse.scout.sdk.rap.ui/plugin.xml
index 9eb6d6a..41e23ab 100644
--- a/org.eclipse.scout.sdk.rap.ui/plugin.xml
+++ b/org.eclipse.scout.sdk.rap.ui/plugin.xml
@@ -75,8 +75,7 @@
point="org.eclipse.scout.sdk.ui.executor">
<executor
class="org.eclipse.scout.sdk.rap.ui.internal.executor.RapTargetNewExecutor"
- id="org.eclipse.scout.sdk.rap.ui.internal.action.RapTargetNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.rap.ui.internal.action.RapTargetNewAction">
</executor>
</extension>
</plugin>
diff --git a/org.eclipse.scout.sdk.rap/src/org/eclipse/scout/sdk/rap/operations/project/template/OutlineTemplateHomeFormCreateOperation.java b/org.eclipse.scout.sdk.rap/src/org/eclipse/scout/sdk/rap/operations/project/template/OutlineTemplateHomeFormCreateOperation.java
index a84cdd2..d70569f 100644
--- a/org.eclipse.scout.sdk.rap/src/org/eclipse/scout/sdk/rap/operations/project/template/OutlineTemplateHomeFormCreateOperation.java
+++ b/org.eclipse.scout.sdk.rap/src/org/eclipse/scout/sdk/rap/operations/project/template/OutlineTemplateHomeFormCreateOperation.java
@@ -180,7 +180,7 @@
source.append(validator.getTypeName(outlinesTableFieldTableSignature)).append(" table = getOutlinesTableField().getTable();").append(lineDelimiter);
String listTypeName = validator.getTypeName(SignatureCache.createTypeSignature(List.class.getName()));
String outlineTypeName = validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.IOutline));
- source.append(listTypeName).append('<').append(outlineTypeName).append("> outlines = getDesktop().getAvailableOutlines();").append(lineDelimiter);
+ source.append(listTypeName).append(Signature.C_GENERIC_START).append(outlineTypeName).append(Signature.C_GENERIC_END).append(" outlines = getDesktop().getAvailableOutlines();").append(lineDelimiter);
source.append("for (").append(outlineTypeName).append(" outline : outlines) {").append(lineDelimiter);
source.append("if (outline.isVisible() && outline.getRootNode() != null) {").append(lineDelimiter);
source.append(validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.ITableRow))).append(" row = table.createRow(new Object[]{outline, outline.getTitle()});").append(lineDelimiter);
@@ -284,7 +284,7 @@
ITypeSourceBuilder outlinesTableFieldBuilder = new TypeSourceBuilder(OUTLINE_TABLE_FIELD_NAME);
String genericTableFqn = new StringBuilder(mainBoxFqn).append('.').append(outlinesTableFieldBuilder.getElementName()).append('.').append(tableBuilder.getElementName()).toString();
outlinesTableFieldBuilder.setFlags(Flags.AccPublic);
- outlinesTableFieldBuilder.setSuperTypeSignature(SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.ITableField, mobileClient) + "<" + genericTableFqn.toString() + ">"));
+ outlinesTableFieldBuilder.setSuperTypeSignature(SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.ITableField, mobileClient) + Signature.C_GENERIC_START + genericTableFqn.toString() + Signature.C_GENERIC_END));
outlinesTableFieldBuilder.addAnnotationSourceBuilder(AnnotationSourceBuilderFactory.createOrderAnnotation(SdkProperties.ORDER_ANNOTATION_VALUE_STEP));
// method getConfiguredLabelVisible
@@ -361,7 +361,7 @@
outlineColumnBuilder.setFlags(Flags.AccPublic);
IType superType = RuntimeClasses.getSuperType(IRuntimeClasses.IColumn, mobileClient);
if (TypeUtility.isGenericType(superType)) {
- outlineColumnBuilder.setSuperTypeSignature(SignatureCache.createTypeSignature(superType.getFullyQualifiedName() + "<" + IRuntimeClasses.IOutline + ">"));
+ outlineColumnBuilder.setSuperTypeSignature(SignatureCache.createTypeSignature(superType.getFullyQualifiedName() + Signature.C_GENERIC_START + IRuntimeClasses.IOutline + Signature.C_GENERIC_END));
}
else {
outlineColumnBuilder.setSuperTypeSignature(SignatureCache.createTypeSignature(superType.getFullyQualifiedName()));
diff --git a/org.eclipse.scout.sdk.ui/plugin.xml b/org.eclipse.scout.sdk.ui/plugin.xml
index e68ed6a..7e6380d 100644
--- a/org.eclipse.scout.sdk.ui/plugin.xml
+++ b/org.eclipse.scout.sdk.ui/plugin.xml
@@ -1211,353 +1211,283 @@
point="org.eclipse.scout.sdk.ui.executor">
<executor
class="org.eclipse.scout.sdk.ui.executor.AttributeNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.AttributeNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.AttributeNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.BeanPropertyNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.BeanPropertyNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.BeanPropertyNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.BookmarkStorageServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.BookmarkStorageServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.BookmarkStorageServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.CalendarItemProviderNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.CalendarItemProviderNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.CalendarItemProviderNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.CalendarServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.CalendarServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.CalendarServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ClientServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ClientServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ClientServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.CodeNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.CodeNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.CodeNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.CodeTypeNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.CodeTypeNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.CodeTypeNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.DefaultTableColumnNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.DefaultTableColumnNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.DefaultTableColumnNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.DesktopMenuNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.DesktopMenuNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.DesktopMenuNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.EntityNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.EntityNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.EntityNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ExportScoutProjectExecutor"
- id="org.eclipse.scout.sdk.ui.action.ExportScoutProjectAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.ExportScoutProjectAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.FormDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.FormDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormFieldNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.FormFieldNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.FormFieldNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormHandlerNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.FormHandlerNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.FormHandlerNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.FormNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.FormNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.GroupBoxNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.GroupBoxNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.GroupBoxNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.KeyStrokeNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.KeyStrokeNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.KeyStrokeNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LibraryBundleNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.library.LibraryBundleNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.library.LibraryBundleNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LocalLookupCallNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.LocalLookupCallNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.LocalLookupCallNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LookupCallNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.LookupCallNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.LookupCallNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LookupServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.LookupServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.LookupServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.MenuNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.MenuNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.MenuNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.OutlineNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.OutlineNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.OutlineNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.PageLinkExecutor"
- id="org.eclipse.scout.sdk.ui.action.PageLinkAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.PageLinkAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.PageNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.PageNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.PageNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.PermissionNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.PermissionNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.PermissionNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ProcessServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ProcessServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ProcessServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.RadioButtonNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.RadioButtonNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.RadioButtonNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ScoutBundleNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ScoutBundleNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ScoutBundleNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ScoutProjectNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ScoutProjectNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ScoutProjectNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.SearchFormNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.SearchFormNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.SearchFormNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ServiceOperationNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ServiceOperationNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ServiceOperationNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.SharedContextBeanPropertyNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.SharedContextBeanPropertyNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.SharedContextBeanPropertyNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.SmartTableColumnNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.SmartTableColumnNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.SmartTableColumnNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.SmtpServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.SmtpServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.SmtpServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.SqlServiceNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.SqlServiceNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.SqlServiceNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TableColumnNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.TableColumnNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.TableColumnNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ToolbuttonNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ToolbuttonNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ToolbuttonNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.WizardNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.WizardNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.WizardNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.WizardStepNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.WizardStepNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.WizardStepNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ClassIdNewExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.ClassIdNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.ClassIdNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.CreateTemplateExecutor"
- id="org.eclipse.scout.sdk.ui.action.create.CreateTemplateAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.create.CreateTemplateAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.DeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.DeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.DeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormFieldDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.FormFieldDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.FormFieldDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LookupCallDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.LookupCallDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.LookupCallDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.MemberListDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.MemberListDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.MemberListDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.OutlineDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.OutlineDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.OutlineDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ServiceDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.ServiceDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.ServiceDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TableColumnDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.TableColumnDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.TableColumnDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.WizardStepDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.WizardStepDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.WizardStepDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormDataUpdateExecutor"
- id="org.eclipse.scout.sdk.ui.action.dto.FormDataUpdateAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.dto.FormDataUpdateAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.PageDataUpdateExecutor"
- id="org.eclipse.scout.sdk.ui.action.dto.PageDataUpdateAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.dto.PageDataUpdateAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LibrariesBundleUnlinkExecutor"
- id="org.eclipse.scout.sdk.ui.action.library.LibrariesBundleUnlinkAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.library.LibrariesBundleUnlinkAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.LibraryBundleLinkExecutor"
- id="org.eclipse.scout.sdk.ui.action.library.LibraryBundleLinkAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.library.LibraryBundleLinkAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TableColumnWidthsPasteExecutor"
- id="org.eclipse.scout.sdk.ui.action.TableColumnWidthsPasteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.TableColumnWidthsPasteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormFieldRenameExecutor"
- id="org.eclipse.scout.sdk.ui.action.rename.FormFieldRenameAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.rename.FormFieldRenameAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.PropertyBeansRenameExecutor"
- id="org.eclipse.scout.sdk.ui.action.rename.PropertyBeansRenameAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.rename.PropertyBeansRenameAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ServiceRenameExecutor"
- id="org.eclipse.scout.sdk.ui.action.rename.ServiceRenameAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.rename.ServiceRenameAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TableColumnRenameExecutor"
- id="org.eclipse.scout.sdk.ui.action.rename.TableColumnRenameAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.rename.TableColumnRenameAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TypeRenameExecutor"
- id="org.eclipse.scout.sdk.ui.action.rename.TypeRenameAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.rename.TypeRenameAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.WizardStepRenameExecutor"
- id="org.eclipse.scout.sdk.ui.action.rename.WizardStepRenameAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.rename.WizardStepRenameAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.ShowJavaReferencesExecutor"
- id="org.eclipse.scout.sdk.ui.action.ShowJavaReferencesAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.ShowJavaReferencesAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.FormDataSqlBindingValidateExecutor"
- id="org.eclipse.scout.sdk.ui.action.FormDataSqlBindingValidateAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.FormDataSqlBindingValidateAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TypeResolverPageDataExecutor"
- id="org.eclipse.scout.sdk.ui.action.dto.TypeResolverPageDataAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.dto.TypeResolverPageDataAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.WellformScoutTypeExecutor"
- id="org.eclipse.scout.sdk.ui.action.WellformScoutTypeAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.WellformScoutTypeAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.WellformExecutor"
- id="org.eclipse.scout.sdk.ui.action.WellformAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.WellformAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.MultipleUpdateFormDataExecutor"
- id="org.eclipse.scout.sdk.ui.action.dto.MultipleUpdateFormDataAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.dto.MultipleUpdateFormDataAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.TypeResolverFormDataExecutor"
- id="org.eclipse.scout.sdk.ui.action.dto.TypeResolverFormDataAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.dto.TypeResolverFormDataAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ui.executor.PageWithTableDeleteExecutor"
- id="org.eclipse.scout.sdk.ui.action.delete.PageWithTableDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ui.action.delete.PageWithTableDeleteAction">
</executor>
</extension>
</plugin>
diff --git a/org.eclipse.scout.sdk.ui/schema/executor.exsd b/org.eclipse.scout.sdk.ui/schema/executor.exsd
index c78d95d..cb8141e 100644
--- a/org.eclipse.scout.sdk.ui/schema/executor.exsd
+++ b/org.eclipse.scout.sdk.ui/schema/executor.exsd
@@ -17,8 +17,8 @@
</appinfo>
</annotation>
<complexType>
- <sequence minOccurs="0" maxOccurs="unbounded">
- <element ref="executor"/>
+ <sequence>
+ <element ref="executor" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="point" type="string" use="required">
<annotation>
@@ -71,10 +71,10 @@
</documentation>
</annotation>
</attribute>
- <attribute name="order" type="string" use="required">
+ <attribute name="category" type="string">
<annotation>
<documentation>
- The priority of the executor. Only the executor with the highest order number can be active for each Id. Must be an integer value.
+
</documentation>
</annotation>
</attribute>
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/executor/TableColumnWidthsPasteExecutor.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/executor/TableColumnWidthsPasteExecutor.java
index 79faf14..d3ed0cb 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/executor/TableColumnWidthsPasteExecutor.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/executor/TableColumnWidthsPasteExecutor.java
@@ -198,6 +198,7 @@
return IOUtility.getContent(reader, true);
}
catch (Exception e) {
+ ScoutSdkUi.logError("Unable to get content from clipboard", e);
return null;
}
}
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/executor/ExecutorExtensionPoint.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/executor/ExecutorExtensionPoint.java
index 60665cf..884d0f8 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/executor/ExecutorExtensionPoint.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/executor/ExecutorExtensionPoint.java
@@ -11,9 +11,9 @@
package org.eclipse.scout.sdk.ui.extensions.executor;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
-import java.util.NavigableMap;
-import java.util.TreeMap;
+import java.util.Set;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -23,9 +23,7 @@
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.scout.commons.CollectionUtility;
-import org.eclipse.scout.commons.CompositeObject;
import org.eclipse.scout.commons.StringUtility;
-import org.eclipse.scout.sdk.extensions.runtime.bundles.RuntimeBundles;
import org.eclipse.scout.sdk.ui.internal.ScoutSdkUi;
import org.eclipse.swt.widgets.Shell;
import org.osgi.framework.Bundle;
@@ -38,6 +36,7 @@
*/
public final class ExecutorExtensionPoint {
+ public static final String PROP_CURRENT_CATEGORY = ScoutSdkUi.PLUGIN_ID + ".propCurrentExecutorCategory";
public static final IExecutor EMPTY_EXECUTOR = new IExecutor() {
@Override
public Object run(Shell shell, IStructuredSelection selection, ExecutionEvent event) {
@@ -49,25 +48,28 @@
return true;
}
};
+ public static final String DEFAULT_CATEGORY = "Default";
public static final String EXTENSION_POINT_NAME = "executor";
public static final String TAG_NAME_EXECUTOR = "executor";
public static final String ATTRIB_NAME_CLASS = "class";
public static final String ATTRIB_NAME_ID = "id";
- public static final String ATTRIB_NAME_ORDER = "order";
+ public static final String ATTRIB_NAME_CATEGORY = "category";
public static final String ATTRIB_NAME_ACTIVE = "active";
private static final Object LOCK = new Object();
- private static volatile Map<String /* id */, NavigableMap<CompositeObject, Class<? extends IExecutor>>> executors = null;
+ private static volatile Map<String /* id */, Map<String /* category */, Class<? extends IExecutor>>> executors = null;
+ private static volatile Set<String> categories = null;
+ private static volatile String curCategory = null;
private ExecutorExtensionPoint() {
}
- private static Map<String, NavigableMap<CompositeObject, Class<? extends IExecutor>>> getExectutors() {
+ private static Map<String, Map<String, Class<? extends IExecutor>>> getExecutors() {
if (executors == null) {
synchronized (LOCK) {
if (executors == null) {
- Map<String, NavigableMap<CompositeObject, Class<? extends IExecutor>>> tmp = new HashMap<String, NavigableMap<CompositeObject, Class<? extends IExecutor>>>();
-
+ Map<String, Map<String, Class<? extends IExecutor>>> tmp = new HashMap<String, Map<String, Class<? extends IExecutor>>>();
+ Set<String> tmpCats = new HashSet<String>();
IExtensionRegistry reg = Platform.getExtensionRegistry();
IExtensionPoint xp = reg.getExtensionPoint(ScoutSdkUi.PLUGIN_ID, EXTENSION_POINT_NAME);
IExtension[] extensions = xp.getExtensions();
@@ -77,45 +79,47 @@
if (TAG_NAME_EXECUTOR.equals(element.getName())) {
String clazz = StringUtility.trim(element.getAttribute(ATTRIB_NAME_CLASS));
String id = StringUtility.trim(element.getAttribute(ATTRIB_NAME_ID));
- String order = StringUtility.trim(element.getAttribute(ATTRIB_NAME_ORDER));
+ String category = StringUtility.trim(element.getAttribute(ATTRIB_NAME_CATEGORY));
String active = StringUtility.trim(element.getAttribute(ATTRIB_NAME_ACTIVE));
- if (!StringUtility.isNullOrEmpty(clazz) && !StringUtility.isNullOrEmpty(id) && !StringUtility.isNullOrEmpty(order)) {
+ if (!StringUtility.isNullOrEmpty(clazz) && !StringUtility.isNullOrEmpty(id)) {
if (StringUtility.isNullOrEmpty(active) || "true".equalsIgnoreCase(active)) {
- Integer orderInt = RuntimeBundles.parseOrder(order);
- if (orderInt != null) {
- String contribPlugin = element.getContributor().getName();
- Bundle bundle = Platform.getBundle(contribPlugin);
- if (bundle != null) {
- try {
- @SuppressWarnings("unchecked")
- Class<? extends IExecutor> execClass = (Class<? extends IExecutor>) bundle.loadClass(clazz);
- NavigableMap<CompositeObject, Class<? extends IExecutor>> map = tmp.get(id);
- if (map == null) {
- map = new TreeMap<CompositeObject, Class<? extends IExecutor>>();
- tmp.put(id, map);
- }
- map.put(new CompositeObject(orderInt, execClass.getName()), execClass);
+ if (StringUtility.isNullOrEmpty(category)) {
+ category = DEFAULT_CATEGORY;
+ }
+ tmpCats.add(category);
+ String contribPlugin = element.getContributor().getName();
+ Bundle bundle = Platform.getBundle(contribPlugin);
+ if (bundle != null) {
+ try {
+ @SuppressWarnings("unchecked")
+ Class<? extends IExecutor> execClass = (Class<? extends IExecutor>) bundle.loadClass(clazz);
+ Map<String, Class<? extends IExecutor>> map = tmp.get(id);
+ if (map == null) {
+ map = new HashMap<String, Class<? extends IExecutor>>(3);
+ tmp.put(id, map);
}
- catch (ClassNotFoundException e) {
- ScoutSdkUi.logError("Unable to load class '" + clazz + "'. Executor for id '" + id + "' will be skipped.", e);
+ Class<? extends IExecutor> old = map.put(category, execClass);
+ if (old != null) {
+ ScoutSdkUi.logWarning("There are multiple executors with the same category registered for id '" + id + "'.");
}
}
- else {
- ScoutSdkUi.logError("Contributing bundle of executor '" + id + "' could not be found.");
+ catch (ClassNotFoundException e) {
+ ScoutSdkUi.logError("Unable to load class '" + clazz + "'. Executor for id '" + id + "' will be skipped.", e);
}
}
else {
- ScoutSdkUi.logError("Invalid order for executor with id '" + id + "': " + order);
+ ScoutSdkUi.logError("Contributing bundle of executor '" + id + "' could not be found.");
}
}
}
else {
- ScoutSdkUi.logError("Invalid executor extension from bundle '" + element.getContributor().getName() + "'. At least " + ATTRIB_NAME_CLASS + ", " + ATTRIB_NAME_ID + " and " + ATTRIB_NAME_ORDER + " must be specified.");
+ ScoutSdkUi.logError("Invalid executor extension from bundle '" + element.getContributor().getName() + "'. At least " + ATTRIB_NAME_CLASS + " and " + ATTRIB_NAME_ID + " must be specified.");
}
}
}
}
+ categories = CollectionUtility.hashSet(tmpCats);
executors = CollectionUtility.copyMap(tmp);
}
}
@@ -123,6 +127,44 @@
return executors;
}
+ public static Set<String> getAllCategories() {
+ getExecutors();
+ return CollectionUtility.hashSet(categories);
+ }
+
+ public static String getCurrentCategory() {
+ if (curCategory == null) {
+ synchronized (LOCK) {
+ if (curCategory == null) {
+ // read defaults
+ Set<String> allCategories = getAllCategories();
+ for (String c : allCategories) {
+ if (!DEFAULT_CATEGORY.equals(c)) {
+ curCategory = c;
+ break;
+ }
+ }
+ if (curCategory == null) {
+ curCategory = CollectionUtility.firstElement(allCategories);
+ }
+ }
+ }
+ }
+ return curCategory;
+ }
+
+ public static void setCurrentCategory(String newCategory) {
+ synchronized (LOCK) {
+ getExecutors();
+ if (categories.contains(newCategory)) {
+ curCategory = newCategory;
+ }
+ else {
+ curCategory = DEFAULT_CATEGORY;
+ }
+ }
+ }
+
/**
* Gets the executor for the given id.<br>
* Executors must be registered with this id using the extension point.
@@ -132,15 +174,21 @@
* found. Never returns null.
*/
public static IExecutor getExecutorFor(String id) {
- Map<String, NavigableMap<CompositeObject, Class<? extends IExecutor>>> allExectutors = getExectutors();
- NavigableMap<CompositeObject, Class<? extends IExecutor>> executorsForId = allExectutors.get(id);
+ Map<String, Map<String, Class<? extends IExecutor>>> allExectutors = getExecutors();
+ Map<String, Class<? extends IExecutor>> executorsForId = allExectutors.get(id);
if (executorsForId != null && !executorsForId.isEmpty()) {
- Class<? extends IExecutor> executorClass = executorsForId.lastEntry().getValue();
- try {
- return executorClass.newInstance();
+ Class<? extends IExecutor> executorClass = executorsForId.get(getCurrentCategory());
+ if (executorClass == null) {
+ // fallback to default if no executor is registered for the current category
+ executorClass = executorsForId.get(DEFAULT_CATEGORY);
}
- catch (Exception e) {
- ScoutSdkUi.logError("unable to create executor for id '" + id + "'.", e);
+ if (executorClass != null) {
+ try {
+ return executorClass.newInstance();
+ }
+ catch (Exception e) {
+ ScoutSdkUi.logError("unable to create executor for id '" + id + "'.", e);
+ }
}
}
ScoutSdkUi.logWarning("No executor found for id '" + id + "'.");
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/preferences/ScoutSdkPreferencePage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/preferences/ScoutSdkPreferencePage.java
index 42f7c93..9abc1a2 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/preferences/ScoutSdkPreferencePage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/extensions/preferences/ScoutSdkPreferencePage.java
@@ -10,11 +10,15 @@
******************************************************************************/
package org.eclipse.scout.sdk.ui.extensions.preferences;
+import java.util.Set;
+
import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.scout.sdk.Texts;
import org.eclipse.scout.sdk.extensions.classidgenerators.ClassIdGenerators;
import org.eclipse.scout.sdk.extensions.targetpackage.DefaultTargetPackage;
+import org.eclipse.scout.sdk.ui.extensions.executor.ExecutorExtensionPoint;
import org.eclipse.scout.sdk.ui.internal.ScoutSdkUi;
import org.eclipse.scout.sdk.workspace.dto.IDtoAutoUpdateManager;
import org.eclipse.ui.IWorkbench;
@@ -32,6 +36,7 @@
private BooleanFieldEditor m_updateFormDataAutomaticallyField;
private BooleanFieldEditor m_targetPackageConfigEnabledField;
private BooleanFieldEditor m_automaticallyCreateClassIdAnnotation;
+ private ComboFieldEditor m_executorCategories;
public ScoutSdkPreferencePage() {
super(GRID);
@@ -55,6 +60,17 @@
m_automaticallyCreateClassIdAnnotation = new BooleanFieldEditor(ClassIdGenerators.PROP_AUTOMATICALLY_CREATE_CLASS_ID_ANNOTATION, Texts.get("AutomaticallyCreateClassIdAnnotation"), getFieldEditorParent());
addField(m_automaticallyCreateClassIdAnnotation);
+
+ Set<String> allCategories = ExecutorExtensionPoint.getAllCategories();
+ String[][] values = new String[allCategories.size()][];
+ int i = 0;
+ for (String c : allCategories) {
+ values[i] = new String[]{c, c};
+ i++;
+ }
+ m_executorCategories = new ComboFieldEditor(ExecutorExtensionPoint.PROP_CURRENT_CATEGORY, Texts.get("CodeStyle"), values, getFieldEditorParent());
+ addField(m_executorCategories);
+ m_executorCategories.setEnabled(allCategories.size() > 1, getFieldEditorParent());
}
@Override
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/fields/proposal/javaelement/JavaElementAbstractTypeContentProvider.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/fields/proposal/javaelement/JavaElementAbstractTypeContentProvider.java
index 215872d..f3a5b25 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/fields/proposal/javaelement/JavaElementAbstractTypeContentProvider.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/fields/proposal/javaelement/JavaElementAbstractTypeContentProvider.java
@@ -45,15 +45,14 @@
@Override
protected Object[][] computeProposals() {
-
ITypeFilter filter = null;
IType[] mostlyUsed = null;
if (getFilter() == null) {
- filter = TypeFilters.getMultiTypeFilterAnd(TypeFilters.getPrimaryTypeFilter(), TypeFilters.getNotInTypes(m_mostlyUsed));
+ filter = TypeFilters.getMultiTypeFilterAnd(TypeFilters.getNotInTypes(m_mostlyUsed), TypeFilters.getNoSurroundingContextTypeFilter());
mostlyUsed = m_mostlyUsed;
}
else {
- filter = TypeFilters.getMultiTypeFilterAnd(TypeFilters.getPrimaryTypeFilter(), TypeFilters.getNotInTypes(m_mostlyUsed), getFilter());
+ filter = TypeFilters.getMultiTypeFilterAnd(TypeFilters.getNotInTypes(m_mostlyUsed), TypeFilters.getNoSurroundingContextTypeFilter(), getFilter());
// filter the mostly used
if (m_mostlyUsed != null) {
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/ScoutSdkUi.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/ScoutSdkUi.java
index b5b67a2..77cb4aa 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/ScoutSdkUi.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/ScoutSdkUi.java
@@ -28,6 +28,7 @@
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.DecorationOverlayIcon;
import org.eclipse.jface.viewers.IDecoration;
+import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.sdk.ScoutSdkCore;
import org.eclipse.scout.sdk.extensions.classidgenerators.ClassIdGenerators;
import org.eclipse.scout.sdk.extensions.targetpackage.DefaultTargetPackage;
@@ -35,6 +36,7 @@
import org.eclipse.scout.sdk.service.IMessageBoxService;
import org.eclipse.scout.sdk.sourcebuilder.comment.IJavaElementCommentBuilderService;
import org.eclipse.scout.sdk.ui.IScoutConstants;
+import org.eclipse.scout.sdk.ui.extensions.executor.ExecutorExtensionPoint;
import org.eclipse.scout.sdk.ui.internal.service.SwtMessageBoxService;
import org.eclipse.scout.sdk.ui.services.AstFlattenerProviderService;
import org.eclipse.scout.sdk.ui.services.JavaElementCommentBuilderService;
@@ -134,6 +136,9 @@
getPreferenceStore().setDefault(ClassIdGenerators.PROP_AUTOMATICALLY_CREATE_CLASS_ID_ANNOTATION, false);
ClassIdGenerators.setAutomaticallyCreateClassIdAnnotation(getPreferenceStore().getBoolean(ClassIdGenerators.PROP_AUTOMATICALLY_CREATE_CLASS_ID_ANNOTATION));
+ getPreferenceStore().setDefault(ExecutorExtensionPoint.PROP_CURRENT_CATEGORY, ExecutorExtensionPoint.getCurrentCategory());
+ ExecutorExtensionPoint.setCurrentCategory(getPreferenceStore().getString(ExecutorExtensionPoint.PROP_CURRENT_CATEGORY));
+
m_shutdownListener = new IWorkbenchListener() {
@Override
public boolean preShutdown(IWorkbench workbench, boolean forced) {
@@ -593,6 +598,12 @@
ClassIdGenerators.setAutomaticallyCreateClassIdAnnotation(automaticallyCreate.booleanValue());
}
}
+ else if (ExecutorExtensionPoint.PROP_CURRENT_CATEGORY.equals(event.getProperty())) {
+ String newCategory = (String) event.getNewValue();
+ if (StringUtility.hasText(newCategory)) {
+ ExecutorExtensionPoint.setCurrentCategory(newCategory);
+ }
+ }
}
}
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/fields/code/CodeIdField.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/fields/code/CodeIdField.java
index e23e04d..5b739aa 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/fields/code/CodeIdField.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/fields/code/CodeIdField.java
@@ -79,7 +79,7 @@
setValue(null);
}
- m_nextCodeIdField.setEnabled(enabled);
+ m_nextCodeIdField.setEnabled(enabled && super.isEnabled());
}
private String getGenericSignature() {
@@ -162,6 +162,7 @@
@Override
public void setEnabled(boolean enabled) {
if (m_nextCodeIdField != null) {
+ super.setEnabled(enabled);
m_nextCodeIdField.setEnabled(enabled);
}
}
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/outline/pages/AbstractScoutTypePage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/outline/pages/AbstractScoutTypePage.java
index b3d7e39..651e59c 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/outline/pages/AbstractScoutTypePage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/outline/pages/AbstractScoutTypePage.java
@@ -81,7 +81,7 @@
@Override
public int getQuality() {
int quality = IMarker.SEVERITY_INFO;
- if (getType().exists()) {
+ if (TypeUtility.exists(getType())) {
quality = ScoutSeverityManager.getInstance().getSeverityOf(getType());
}
return quality;
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/CodeNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/CodeNewWizardPage.java
index d1228c4..90689d2 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/CodeNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/CodeNewWizardPage.java
@@ -183,12 +183,7 @@
try {
setStateChanging(true);
m_superType = (IType) event.proposal;
- if (TypeUtility.isGenericType(getSuperType())) {
- m_genericTypeField.setEnabled(true);
- }
- else {
- m_genericTypeField.setEnabled(false);
- }
+ m_genericTypeField.setEnabled(TypeUtility.isGenericType(getSuperType()));
IType genericTypeOfSuperClass = getGenericTypeOfSuperClass();
if (TypeUtility.exists(genericTypeOfSuperClass)) {
@@ -275,7 +270,7 @@
op.setTypeName(getTypeName());
String sig = null;
if (getGenericSignature() != null && TypeUtility.isGenericType(getSuperType())) {
- sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/type/CodeTypeNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/type/CodeTypeNewWizardPage.java
index 278f216..5a3bf77 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/type/CodeTypeNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/code/type/CodeTypeNewWizardPage.java
@@ -36,6 +36,7 @@
import org.eclipse.scout.sdk.ui.fields.proposal.ContentProposalEvent;
import org.eclipse.scout.sdk.ui.fields.proposal.IProposalAdapterListener;
import org.eclipse.scout.sdk.ui.fields.proposal.ProposalTextField;
+import org.eclipse.scout.sdk.ui.fields.proposal.javaelement.AbstractJavaElementContentProvider;
import org.eclipse.scout.sdk.ui.fields.proposal.javaelement.JavaElementAbstractTypeContentProvider;
import org.eclipse.scout.sdk.ui.fields.proposal.signature.SignatureSubTypeProposalProvider;
import org.eclipse.scout.sdk.ui.internal.ScoutSdkUi;
@@ -65,24 +66,24 @@
private final IType iCodeType = TypeUtility.getType(IRuntimeClasses.ICodeType);
- private String m_nextCodeId;
- private String m_nextCodeIdSource;
- private INlsEntry m_nlsName;
- private String m_typeName;
- private String m_packageName;
- private IType m_superType;
- private IType m_defaultCodeType;
- private String m_genericSignature;
- private String m_genericCodeIdSignature;
- private List<ITypeParameter> m_superTypeParameters;
+ protected String m_nextCodeId;
+ protected String m_nextCodeIdSource;
+ protected INlsEntry m_nlsName;
+ protected String m_typeName;
+ protected String m_packageName;
+ protected IType m_superType;
+ protected IType m_defaultCodeType;
+ protected String m_genericSignature;
+ protected String m_genericCodeIdSignature;
+ protected List<ITypeParameter> m_superTypeParameters;
- private CodeIdField m_nextCodeIdField;
- private ProposalTextField m_nlsNameField;
- private StyledTextField m_typeNameField;
- private EntityTextField m_entityField;
- private ProposalTextField m_superTypeField;
- private ProposalTextField m_genericTypeField;
- private ProposalTextField m_genericCodeIdField;
+ protected CodeIdField m_nextCodeIdField;
+ protected ProposalTextField m_nlsNameField;
+ protected StyledTextField m_typeNameField;
+ protected EntityTextField m_entityField;
+ protected ProposalTextField m_superTypeField;
+ protected ProposalTextField m_genericTypeField;
+ protected ProposalTextField m_genericCodeIdField;
// process members
private final IScoutBundle m_sharedBundle;
@@ -108,7 +109,7 @@
@Override
protected void createContent(Composite parent) {
- int labelColWidthPercent = 35;
+ int labelColWidthPercent = 20;
final boolean isEnabled = getSharedBundle() != null;
m_nextCodeIdField = new CodeIdField(parent, getSharedBundle(), labelColWidthPercent);
m_nextCodeIdField.addModifyListener(new ModifyListener() {
@@ -173,15 +174,14 @@
m_entityField.setEnabled(isEnabled);
}
- final JavaElementAbstractTypeContentProvider contentProvider = new JavaElementAbstractTypeContentProvider(iCodeType, ScoutUtility.getJavaProject(getSharedBundle()), (ITypeFilter) null, m_defaultCodeType);
- m_superTypeField = getFieldToolkit().createJavaElementProposalField(parent, Texts.get("SuperType"), contentProvider, labelColWidthPercent);
+ m_superTypeField = getFieldToolkit().createJavaElementProposalField(parent, Texts.get("SuperType"), createSuperTypeContentProvider(), labelColWidthPercent);
- final SignatureSubTypeProposalProvider genericProposalProvider = new SignatureSubTypeProposalProvider(getGenericTypeOfSuperClass(IRuntimeClasses.TYPE_PARAM_CODETYPE__CODE_TYPE_ID), getSharedBundle().getJavaProject());
+ final SignatureSubTypeProposalProvider genericProposalProvider = new SignatureSubTypeProposalProvider(getGenericTypeOfSuperClass(IRuntimeClasses.TYPE_PARAM_CODETYPE__CODE_TYPE_ID), ScoutUtility.getJavaProject(getSharedBundle()));
m_genericTypeField = getFieldToolkit().createProposalField(parent, Texts.get("CodeTypeIdDatatype"), ProposalTextField.STYLE_DEFAULT, labelColWidthPercent);
m_genericTypeField.setContentProvider(genericProposalProvider);
m_genericTypeField.setLabelProvider(genericProposalProvider.getLabelProvider());
- final SignatureSubTypeProposalProvider genericCodeIdProposalProvider = new SignatureSubTypeProposalProvider(getGenericTypeOfSuperClass(IRuntimeClasses.TYPE_PARAM_CODETYPE__CODE_ID), getSharedBundle().getJavaProject());
+ final SignatureSubTypeProposalProvider genericCodeIdProposalProvider = new SignatureSubTypeProposalProvider(getGenericTypeOfSuperClass(IRuntimeClasses.TYPE_PARAM_CODETYPE__CODE_ID), ScoutUtility.getJavaProject(getSharedBundle()));
m_genericCodeIdField = getFieldToolkit().createProposalField(parent, Texts.get("DatatypeOfNestedCodeIds"), ProposalTextField.STYLE_DEFAULT, labelColWidthPercent);
m_genericCodeIdField.setContentProvider(genericCodeIdProposalProvider);
m_genericCodeIdField.setLabelProvider(genericCodeIdProposalProvider.getLabelProvider());
@@ -241,6 +241,8 @@
}
}
});
+ m_genericCodeIdField.setEnabled(isEnabled);
+ m_genericTypeField.setEnabled(isEnabled);
// layout
parent.setLayout(new GridLayout(1, true));
@@ -253,6 +255,10 @@
m_genericCodeIdField.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL));
}
+ protected AbstractJavaElementContentProvider createSuperTypeContentProvider() {
+ return new JavaElementAbstractTypeContentProvider(iCodeType, ScoutUtility.getJavaProject(getSharedBundle()), (ITypeFilter) null, m_defaultCodeType);
+ }
+
/**
* Enables/Disables and probably clears the generic type fields depending on which generics that are available on the
* selected super type class.
@@ -295,7 +301,7 @@
if (getGenericSignature() != null) {
StringBuilder fqn = new StringBuilder(getSuperType().getFullyQualifiedName());
if (m_superTypeParameters.size() > 0) {
- fqn.append('<');
+ fqn.append(Signature.C_GENERIC_START);
fqn.append(Signature.toString(getGenericSignature()));
if (m_superTypeParameters.size() > 1) {
fqn.append(", ");
@@ -303,12 +309,12 @@
if (m_superTypeParameters.size() > 2) {
fqn.append(", ");
fqn.append(IRuntimeClasses.ICode);
- fqn.append('<');
+ fqn.append(Signature.C_GENERIC_START);
fqn.append(Signature.toString(getGenericCodeIdSignature()));
- fqn.append('>');
+ fqn.append(Signature.C_GENERIC_END);
}
}
- fqn.append('>');
+ fqn.append(Signature.C_GENERIC_END);
sig = SignatureCache.createTypeSignature(fqn.toString());
}
else {
@@ -333,12 +339,12 @@
multiStatus.add(getStatusSuperType());
multiStatus.add(getStatusTargetPackge());
- if (m_genericTypeField != null && !m_genericTypeField.isDisposed() && m_genericTypeField.isEnabled()) {
+ if (m_genericTypeField != null && !m_genericTypeField.isDisposed() && m_genericTypeField.isEnabled() && m_genericTypeField.isVisible()) {
multiStatus.add(getStatusGenericType());
multiStatus.add(getStatusGenericTypeToSuperClass(getGenericSignature(), IRuntimeClasses.TYPE_PARAM_CODETYPE__CODE_TYPE_ID));
}
- if (m_genericCodeIdField != null && !m_genericCodeIdField.isDisposed() && m_genericCodeIdField.isEnabled()) {
+ if (m_genericCodeIdField != null && !m_genericCodeIdField.isDisposed() && m_genericCodeIdField.isEnabled() && m_genericCodeIdField.isVisible()) {
multiStatus.add(getStatusGenericCodeIdType());
multiStatus.add(getStatusGenericTypeToSuperClass(getGenericCodeIdSignature(), IRuntimeClasses.TYPE_PARAM_CODETYPE__CODE_ID));
}
@@ -397,15 +403,17 @@
}
protected IType getGenericTypeOfSuperClass(String typeArgName) {
- try {
- ITypeHierarchy superHierarchy = TypeUtility.getSupertypeHierarchy(getSuperType());
- String typeParamSig = SignatureUtility.resolveGenericParameterInSuperHierarchy(getSuperType(), superHierarchy, IRuntimeClasses.ICodeType, typeArgName);
- if (typeParamSig != null) {
- return TypeUtility.getTypeBySignature(typeParamSig);
+ if (TypeUtility.exists(getSuperType())) {
+ try {
+ ITypeHierarchy superHierarchy = TypeUtility.getSupertypeHierarchy(getSuperType());
+ String typeParamSig = SignatureUtility.resolveGenericParameterInSuperHierarchy(getSuperType(), superHierarchy, IRuntimeClasses.ICodeType, typeArgName);
+ if (typeParamSig != null) {
+ return TypeUtility.getTypeBySignature(typeParamSig);
+ }
}
- }
- catch (CoreException e) {
- ScoutSdkUi.logError(e);
+ catch (CoreException e) {
+ ScoutSdkUi.logError(e);
+ }
}
return null;
}
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/formfield/DefaultFormFieldNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/formfield/DefaultFormFieldNewWizardPage.java
index 28d1728..d5a41b0 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/formfield/DefaultFormFieldNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/formfield/DefaultFormFieldNewWizardPage.java
@@ -178,7 +178,7 @@
if (getSuperType() != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/listbox/ListBoxFieldNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/listbox/ListBoxFieldNewWizardPage.java
index c316786..42ee8f2 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/listbox/ListBoxFieldNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/listbox/ListBoxFieldNewWizardPage.java
@@ -261,7 +261,7 @@
if (getSuperType() != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobutton/RadioButtonNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobutton/RadioButtonNewWizardPage.java
index 238a52b..facb820 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobutton/RadioButtonNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobutton/RadioButtonNewWizardPage.java
@@ -227,7 +227,7 @@
if (getSuperType() != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobuttongroup/RadioButtonGroupFieldNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobuttongroup/RadioButtonGroupFieldNewWizardPage.java
index 2e4fda6..fc35b3e 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobuttongroup/RadioButtonGroupFieldNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/radiobuttongroup/RadioButtonGroupFieldNewWizardPage.java
@@ -159,7 +159,7 @@
if (getSuperType() != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/smartfield/SmartFieldNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/smartfield/SmartFieldNewWizardPage.java
index 7e8e6a0..fe41a00 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/smartfield/SmartFieldNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/smartfield/SmartFieldNewWizardPage.java
@@ -265,7 +265,7 @@
if (getSuperType() != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(getSuperType().getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/treebox/TreeBoxNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/treebox/TreeBoxNewWizardPage.java
index e41b586..dd7484c 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/treebox/TreeBoxNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/form/fields/treebox/TreeBoxNewWizardPage.java
@@ -15,6 +15,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
import org.eclipse.scout.sdk.Texts;
@@ -136,7 +137,7 @@
if (getSuperType() != null) {
String superTypeName = getSuperType().getFullyQualifiedName();
if (TypeUtility.isGenericType(getSuperType())) {
- superTypeName += "<" + Long.class.getName() + ">";
+ superTypeName += Signature.C_GENERIC_START + Long.class.getName() + Signature.C_GENERIC_END;
}
operation.setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeName));
}
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LocalLookupCallNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LocalLookupCallNewWizardPage.java
index 93c59fb..c07894e 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LocalLookupCallNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LocalLookupCallNewWizardPage.java
@@ -203,9 +203,9 @@
IType superTypeProp = getLookupCallSuperType();
if (superTypeProp != null) {
StringBuilder superType = new StringBuilder(superTypeProp.getFullyQualifiedName());
- superType.append('<');
+ superType.append(Signature.C_GENERIC_START);
superType.append(Signature.toString(getGenericTypeSignature()));
- superType.append('>');
+ superType.append(Signature.C_GENERIC_END);
op.setSuperTypeSignature(SignatureCache.createTypeSignature(superType.toString()));
}
op.validate();
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizard.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizard.java
index 385a740..89b8f6f 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizard.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizard.java
@@ -147,9 +147,9 @@
StringBuilder superType = new StringBuilder();
superType.append(RuntimeClasses.getSuperTypeName(IRuntimeClasses.ILookupCall, lookupCallBundle));
- superType.append('<');
+ superType.append(Signature.C_GENERIC_START);
superType.append(Signature.toString(m_page1.getGenericTypeSignature()));
- superType.append('>');
+ superType.append(Signature.C_GENERIC_END);
m_operation.setSuperTypeSignature(SignatureCache.createTypeSignature(superType.toString()));
@@ -174,9 +174,9 @@
IType superTypeProp = m_page1.getServiceSuperType();
if (superTypeProp != null) {
StringBuilder svcSuperTypeSig = new StringBuilder(superTypeProp.getFullyQualifiedName());
- svcSuperTypeSig.append('<');
+ svcSuperTypeSig.append(Signature.C_GENERIC_START);
svcSuperTypeSig.append(Signature.toString(m_page1.getGenericTypeSignature()));
- svcSuperTypeSig.append('>');
+ svcSuperTypeSig.append(Signature.C_GENERIC_END);
m_operation.setServiceSuperTypeSignature(SignatureCache.createTypeSignature(svcSuperTypeSig.toString()));
for (ServiceRegistrationDescription desc : getCheckedServiceRegistrations(m_page2.getTreeNodes(TYPE_SERVICE_REG_SERVER, true, true))) {
m_operation.addServiceRegistration(desc);
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizardPage.java
index 89d4430..f480bc9 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/lookupcall/LookupCallNewWizardPage.java
@@ -507,7 +507,6 @@
public P_LookupServiceStrategyButtonListener(LOOKUP_SERVICE_STRATEGY strategy) {
m_strategy = strategy;
-
}
@Override
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java
index bca43df..c189cb5 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java
@@ -126,7 +126,7 @@
protected boolean beforeFinish() throws CoreException {
m_operation = new LookupServiceNewOperation(m_locationWizardPage.getTextOfNode(TYPE_SERVICE_INTERFACE, true, true), m_locationWizardPage.getTextOfNode(TYPE_SERVICE_IMPLEMENTATION, true, true));
IType superType = m_serviceNewWizardPage.getSuperType();
- String genericPart = "<" + Signature.toString(m_serviceNewWizardPage.getGenericTypeSignature()) + ">";
+ String genericPart = Signature.C_GENERIC_START + Signature.toString(m_serviceNewWizardPage.getGenericTypeSignature()) + Signature.C_GENERIC_END;
if (superType != null) {
m_operation.setImplementationSuperTypeSignature(SignatureCache.createTypeSignature(superType.getFullyQualifiedName() + genericPart));
}
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/DefaultTableColumnNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/DefaultTableColumnNewWizardPage.java
index 8c7d7d7..ce77e02 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/DefaultTableColumnNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/DefaultTableColumnNewWizardPage.java
@@ -204,7 +204,7 @@
if (superTypeProp != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(superTypeProp.getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(superTypeProp.getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(superTypeProp.getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/SmartTableColumnNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/SmartTableColumnNewWizardPage.java
index c9630a8..1d5dc7d 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/SmartTableColumnNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/tablecolumn/SmartTableColumnNewWizardPage.java
@@ -316,7 +316,7 @@
if (superType != null) {
String sig = null;
if (getGenericSignature() != null) {
- sig = SignatureCache.createTypeSignature(superType.getFullyQualifiedName() + "<" + Signature.toString(getGenericSignature()) + ">");
+ sig = SignatureCache.createTypeSignature(superType.getFullyQualifiedName() + Signature.C_GENERIC_START + Signature.toString(getGenericSignature()) + Signature.C_GENERIC_END);
}
else {
sig = SignatureCache.createTypeSignature(superType.getFullyQualifiedName());
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/AbstractCachedTypeHierarchy.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/AbstractCachedTypeHierarchy.java
index 6dbf113..c4d566b 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/AbstractCachedTypeHierarchy.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/AbstractCachedTypeHierarchy.java
@@ -139,23 +139,28 @@
if (!isCreated()) {
synchronized (this) {
if (!isCreated()) {
+ HierarchyCache hierarchyCache = HierarchyCache.getInstance();
if (getBaseType() == null) {
- HierarchyCache.getInstance().removeCachedHierarchy(null);
+ hierarchyCache.removeCachedHierarchy(null);
throw new IllegalArgumentException("Type 'null' does not exist.");
}
- if (!getBaseType().exists() || !TypeUtility.exists(getBaseType().getJavaProject())) {
- // type does no longer exist: try new resolve
- IType tmp = TypeUtility.getType(getBaseType().getFullyQualifiedName());
- if (TypeUtility.exists(tmp) && TypeUtility.exists(tmp.getJavaProject())) {
- setBaseType(tmp);
- }
- else {
- // still does not exist
- HierarchyCache.getInstance().removeCachedHierarchy(getBaseType());
- throw new IllegalArgumentException("Type '" + getBaseType().getFullyQualifiedName() + "' does not exist");
+
+ // Always re-resolve the base IType to ensure we still have the most accurate
+ IType newBaseType = TypeUtility.getType(getBaseType().getFullyQualifiedName());
+ if (TypeUtility.exists(newBaseType) && TypeUtility.exists(newBaseType.getJavaProject())) {
+ if (!newBaseType.equals(getBaseType())) {
+ hierarchyCache.replaceCachedHierarchy(getBaseType(), newBaseType, this);
+ setBaseType(newBaseType);
}
}
+ else {
+ // base type does no longer exist -> remove
+ hierarchyCache.removeCachedHierarchy(getBaseType());
+ throw new IllegalArgumentException("Type '" + getBaseType().getFullyQualifiedName() + "' does not exist.");
+ }
+
revalidate();
+
m_created = getJdtHierarchy() != null;
if (!m_created) {
// re-validate failed. cancel
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java
index ada235f..f66a325 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java
@@ -10,7 +10,6 @@
******************************************************************************/
package org.eclipse.scout.sdk.util.internal.typecache;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -54,7 +53,7 @@
}
public synchronized List<ICacheableTypeHierarchyResult> getAllCachedHierarchies() {
- return CollectionUtility.arrayList(m_cachedHierarchyResults.values());
+ return getHierarchiesSafe();
}
@Override
@@ -109,6 +108,11 @@
m_cachedHierarchyResults.remove(type);
}
+ synchronized void replaceCachedHierarchy(Object oldKey, Object newKey, ICacheableTypeHierarchyResult hierarchyToAdd) {
+ m_cachedHierarchyResults.remove(oldKey);
+ m_cachedHierarchyResults.put(newKey, hierarchyToAdd);
+ }
+
@Override
public ITypeHierarchy getLocalTypeHierarchy(IRegion region) {
try {
@@ -135,7 +139,8 @@
@Override
public synchronized void invalidateAll() {
- for (ICacheableTypeHierarchyResult h : m_cachedHierarchyResults.values()) {
+ List<ICacheableTypeHierarchyResult> hierarchies = getHierarchiesSafe(); // get a copy to prevent ConcurrentModificationException
+ for (ICacheableTypeHierarchyResult h : hierarchies) {
if (h.isCreated()) {
h.invalidate();
}
@@ -143,7 +148,7 @@
}
private synchronized List<ICacheableTypeHierarchyResult> getHierarchiesSafe() {
- return new ArrayList<ICacheableTypeHierarchyResult>(m_cachedHierarchyResults.values());
+ return CollectionUtility.arrayList(m_cachedHierarchyResults.values());
}
private void handleTypeChange(IType t, ITypeHierarchy superTypeHierarchy) {
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/JavaResourceChangedEmitter.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/JavaResourceChangedEmitter.java
index 8d84213..cca1fe6 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/JavaResourceChangedEmitter.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/JavaResourceChangedEmitter.java
@@ -11,7 +11,6 @@
package org.eclipse.scout.sdk.util.internal.typecache;
import java.lang.ref.WeakReference;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -59,7 +58,7 @@
| IJavaElementDelta.F_ANNOTATIONS
| IJavaElementDelta.F_AST_AFFECTED;
- private static final JavaResourceChangedEmitter INSTANCE = new JavaResourceChangedEmitter(HierarchyCache.getInstance());
+ private static final JavaResourceChangedEmitter INSTANCE = new JavaResourceChangedEmitter(HierarchyCache.getInstance(), TypeCache.getInstance());
private final P_JavaElementChangedListener m_javaElementListener;
private final Object m_resourceLock;
@@ -69,6 +68,7 @@
private final Map<IType, List<WeakReference<IJavaResourceChangedListener>>> m_methodChangedListeners;
private final Object m_eventListenerLock;
private final HierarchyCache m_hierarchyCache;
+ private final TypeCache m_typeCache;
private final IBufferChangedListener m_sourceBufferListener;
public static ICompilationUnit[] getPendingWorkingCopies() {
@@ -77,7 +77,8 @@
}
}
- private JavaResourceChangedEmitter(HierarchyCache hierarchyCache) {
+ private JavaResourceChangedEmitter(HierarchyCache hierarchyCache, TypeCache typeCache) {
+ m_typeCache = typeCache;
m_hierarchyCache = hierarchyCache;
m_eventCollectors = new HashMap<ICompilationUnit, JdtEventCollector>();
m_eventListenerLock = new Object();
@@ -117,7 +118,7 @@
synchronized (m_eventListenerLock) {
List<WeakReference<IJavaResourceChangedListener>> listenerList = m_innerTypeChangedListeners.get(type);
if (listenerList == null) {
- listenerList = new ArrayList<WeakReference<IJavaResourceChangedListener>>();
+ listenerList = new LinkedList<WeakReference<IJavaResourceChangedListener>>();
m_innerTypeChangedListeners.put(type, listenerList);
}
listenerList.add(new WeakReference<IJavaResourceChangedListener>(listener));
@@ -147,7 +148,7 @@
synchronized (m_eventListenerLock) {
List<WeakReference<IJavaResourceChangedListener>> listenerList = m_methodChangedListeners.get(type);
if (listenerList == null) {
- listenerList = new ArrayList<WeakReference<IJavaResourceChangedListener>>();
+ listenerList = new LinkedList<WeakReference<IJavaResourceChangedListener>>();
m_methodChangedListeners.put(type, listenerList);
}
listenerList.add(new WeakReference<IJavaResourceChangedListener>(listener));
@@ -330,10 +331,10 @@
}
private void fireEvent(JdtEvent e) {
- // first notify hierarchies which could be used by other listeners
- if (m_hierarchyCache != null) {
- m_hierarchyCache.elementChanged(e);
- }
+ // first notify our caches which could be used by other listeners
+ m_typeCache.elementChanged(e);
+ m_hierarchyCache.elementChanged(e);
+
for (IJavaResourceChangedListener l : m_eventListeners.getListeners(IJavaResourceChangedListener.class)) {
try {
l.handleEvent(e);
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/TypeCache.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/TypeCache.java
index 02d448a..7352c28 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/TypeCache.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/TypeCache.java
@@ -26,6 +26,8 @@
import org.eclipse.core.resources.IResourceDeltaVisitor;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaElementDelta;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.Signature;
import org.eclipse.jdt.core.search.IJavaSearchConstants;
@@ -36,6 +38,7 @@
import org.eclipse.jdt.core.search.SearchRequestor;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.sdk.util.internal.SdkUtilActivator;
+import org.eclipse.scout.sdk.util.jdt.JdtEvent;
import org.eclipse.scout.sdk.util.type.TypeUtility;
import org.eclipse.scout.sdk.util.typecache.ITypeCache;
@@ -241,4 +244,28 @@
}
}
}
+
+ /**
+ * will be notified before events are passed through the event listener list from {@link JavaResourceChangedEmitter}
+ */
+ void elementChanged(JdtEvent e) {
+ switch (e.getEventType()) {
+ case IJavaElementDelta.ADDED:
+ case IJavaElementDelta.CHANGED: {
+ if (e.getElementType() == IJavaElement.JAVA_PROJECT) {
+ if ((e.getFlags() & IJavaElementDelta.F_OPENED) != 0 || e.getFlags() == 0) {
+ // a new java project has been created/imported/opened/added in the workspace
+ clearCache();
+ }
+ }
+ else if (e.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
+ if ((e.getFlags() & (IJavaElementDelta.F_ADDED_TO_CLASSPATH | IJavaElementDelta.F_REMOVED_FROM_CLASSPATH | IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED | IJavaElementDelta.F_REORDER)) != 0 || e.getFlags() == 0) {
+ // the classpath has been changed
+ clearCache();
+ }
+ }
+ break;
+ }
+ }
+ }
}
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/jdt/JdtUtility.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/jdt/JdtUtility.java
index da11613..fbbcc04 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/jdt/JdtUtility.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/jdt/JdtUtility.java
@@ -157,9 +157,7 @@
if (name.equals(p.getMemberName())) {
Object val = p.getValue();
if (val != null) {
- if (p.getValueKind() == IMemberValuePair.K_CHAR || p.getValueKind() == IMemberValuePair.K_STRING) {
- return "" + val;
- }
+ return "" + val;
}
}
}
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeFilters.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeFilters.java
index 4b5f046..c405206 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeFilters.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeFilters.java
@@ -80,6 +80,18 @@
}
}
};
+ private static final ITypeFilter NO_SURROUNDING_CONTEXT_TYPE_FILTER = new ITypeFilter() {
+ @Override
+ public boolean accept(IType type) {
+ try {
+ return type != null && !type.isAnonymous() && (type.getDeclaringType() == null || Flags.isStatic(type.getFlags()));
+ }
+ catch (JavaModelException e) {
+ SdkUtilActivator.logWarning("could not evalutate flags of type '" + type.getFullyQualifiedName() + "'.", e);
+ return false;
+ }
+ }
+ };
protected TypeFilters() {
}
@@ -294,6 +306,16 @@
return getNotInTypes(excludedSet);
}
+ /**
+ * Returns an {@link ITypeFilter} that accepts all {@link IType}s that have no surrounding context {@link IType}.<br>
+ * More formally: Accepts all {@link IType}s that are either static or primary types (= have no declaring type).
+ *
+ * @return an {@link ITypeFilter} that accepts all {@link IType}s that have no surrounding context {@link IType}.
+ */
+ public static ITypeFilter getNoSurroundingContextTypeFilter() {
+ return NO_SURROUNDING_CONTEXT_TYPE_FILTER;
+ }
+
public static ITypeFilter getNotInTypes(final Set<IType> excludedTypes) {
if (excludedTypes == null || excludedTypes.size() < 1) {
return null; // no filter required
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeUtility.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeUtility.java
index 80d392d..317b6d3 100644
--- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeUtility.java
+++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/type/TypeUtility.java
@@ -27,6 +27,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IClassFile;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IField;
import org.eclipse.jdt.core.IImportDeclaration;
@@ -353,7 +354,6 @@
public static IMethod getFirstMethod(IType type, IMethodFilter filter) {
try {
for (IMethod method : type.getMethods()) {
-
if (filter == null || filter.accept(method)) {
return method;
}
@@ -377,10 +377,7 @@
*/
public static IMethod getMethod(IType type, final String methodName) {
Set<IMethod> methods = getMethods(type, MethodFilters.getNameFilter(methodName));
- if (CollectionUtility.hasElements(methods)) {
- return CollectionUtility.firstElement(methods);
- }
- return null;
+ return CollectionUtility.firstElement(methods);
}
/**
@@ -611,24 +608,48 @@
* }<br>
* }<br>
* }<br>
- * // A.getTopLevelType() returns A<br>
- * // D.getTopLevelType() returns A
+ * // A.getPrimaryType() returns A<br>
+ * // D.getPrimaryType() returns A
* </code>
*
* @return the primary type of the compilation unit this type is declared in.
+ * @throws JavaModelException
*/
public static IType getPrimaryType(IJavaElement e) {
- if (e == null) {
+ if (!exists(e)) {
return null;
}
- IType surroundingType = (IType) e.getAncestor(IJavaElement.TYPE);
+
+ IType surroundingType = null;
+ if (e.getElementType() == IJavaElement.TYPE) {
+ surroundingType = (IType) e;
+ }
+ else if (e.getElementType() == IJavaElement.COMPILATION_UNIT) {
+ try {
+ IType[] types = ((ICompilationUnit) e).getTypes();
+ if (types != null && types.length == 1) {
+ surroundingType = types[0];
+ }
+ }
+ catch (JavaModelException e1) {
+ SdkUtilActivator.logError("Unable to retrieve types of icu '" + e.getElementName() + "'.", e1);
+ return null;
+ }
+ }
+ else if (e.getElementType() == IJavaElement.CLASS_FILE) {
+ surroundingType = ((IClassFile) e).getType();
+ }
+ else {
+ surroundingType = (IType) e.getAncestor(IJavaElement.TYPE);
+ }
+
if (!exists(surroundingType)) {
return null; // element is not within a type.
}
IType result = null;
IType tmp = surroundingType;
- while (exists(tmp)) {
+ while (tmp != null && tmp.exists()) {
result = tmp;
tmp = tmp.getDeclaringType();
}
diff --git a/org.eclipse.scout.sdk.ws.jaxws/plugin.xml b/org.eclipse.scout.sdk.ws.jaxws/plugin.xml
index 049419a..e5960d3 100644
--- a/org.eclipse.scout.sdk.ws.jaxws/plugin.xml
+++ b/org.eclipse.scout.sdk.ws.jaxws/plugin.xml
@@ -208,108 +208,87 @@
point="org.eclipse.scout.sdk.ui.executor">
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.AuthenticationHandlerNewWizardExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.AuthenticationHandlerNewWizardAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.AuthenticationHandlerNewWizardAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.BindingFileNewExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.BindingFileNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.BindingFileNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.BuildPropertiesEditExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.BuildPropertiesEditAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.BuildPropertiesEditAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.CleanupPhantomJarFileExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.CleanupPhantomJarFileAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.CleanupPhantomJarFileAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.ConsumerNewWizardExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.ConsumerNewWizardAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.ConsumerNewWizardAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.CredentialValidationStrategyNewExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.CredentialValidationStrategyNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.CredentialValidationStrategyNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.FileOpenExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.FileOpenAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.FileOpenAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.HandlerAddExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerAddAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerAddAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.HandlerChainFilterEditExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerChainFilterEditAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerChainFilterEditAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.HandlerChainNewExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerChainNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerChainNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.HandlerChainRemoveExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerChainRemoveAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerChainRemoveAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.HandlerNewWizardExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerNewWizardAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.HandlerNewWizardAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.JaxWsAliasChangeWizardExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.JaxWsAliasChangeWizardAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.JaxWsAliasChangeWizardAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.ProviderNewWizardExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.ProviderNewWizardAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.ProviderNewWizardAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.RepairExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.RepairAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.RepairAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.SessionFactoryNewExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.SessionFactoryNewAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.SessionFactoryNewAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.StubRebuildExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.StubRebuildAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.StubRebuildAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.TypeOpenExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.TypeOpenAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.TypeOpenAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.WsConsumerDeleteExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.WsConsumerDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.WsConsumerDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.WsProviderCodeFirstDeleteExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.WsProviderCodeFirstDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.WsProviderCodeFirstDeleteAction">
</executor>
<executor
class="org.eclipse.scout.sdk.ws.jaxws.executor.WsProviderDeleteExecutor"
- id="org.eclipse.scout.sdk.ws.jaxws.swt.action.WsProviderDeleteAction"
- order="0">
+ id="org.eclipse.scout.sdk.ws.jaxws.swt.action.WsProviderDeleteAction">
</executor>
</extension>
</plugin>
diff --git a/org.eclipse.scout.sdk/plugin.xml b/org.eclipse.scout.sdk/plugin.xml
index 61ad2a0..e961a6a 100644
--- a/org.eclipse.scout.sdk/plugin.xml
+++ b/org.eclipse.scout.sdk/plugin.xml
@@ -1030,6 +1030,15 @@
<bundle
symbolicName="org.eclipse.scout.rt.spec.client">
</bundle>
+ <bundle
+ symbolicName="org.eclipse.scout.rt.server.jms">
+ </bundle>
+ <bundle
+ symbolicName="org.eclipse.scout.rt.server.servlet25">
+ </bundle>
+ <bundle
+ symbolicName="org.eclipse.scout.rt.server.servlet31">
+ </bundle>
<!-- may be installed from the marketplace. -->
<bundle
symbolicName="com.bsiag.scout.rt.server.jdbc.mysql5117">
diff --git a/org.eclipse.scout.sdk/resources/texts/Texts.properties b/org.eclipse.scout.sdk/resources/texts/Texts.properties
index 66d92c4..ee0effb 100644
--- a/org.eclipse.scout.sdk/resources/texts/Texts.properties
+++ b/org.eclipse.scout.sdk/resources/texts/Texts.properties
@@ -66,6 +66,7 @@
ClientServicesNodePage=Services
CodeId=Code Id
CodeIdNotValid=Code Id is not valid for the given generic type.
+CodeStyle=Code Style
CodeType=Code Type
CodeTypeDoesNotMatchGeneric=The selected CodeType does not match the given generic type.
CodeTypeIdDatatype=Datatype of CodeType Id
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/codeid/CodeIdExtensionPoint.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/codeid/CodeIdExtensionPoint.java
index 02b12d8..8bbd68a 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/codeid/CodeIdExtensionPoint.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/codeid/CodeIdExtensionPoint.java
@@ -11,6 +11,8 @@
package org.eclipse.scout.sdk.extensions.codeid;
import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.TreeMap;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -20,6 +22,7 @@
import org.eclipse.core.runtime.Platform;
import org.eclipse.scout.commons.CollectionUtility;
import org.eclipse.scout.commons.CompositeObject;
+import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.sdk.extensions.codeid.parsers.ICodeIdParser;
import org.eclipse.scout.sdk.internal.ScoutSdk;
import org.eclipse.scout.sdk.util.signature.SignatureCache;
@@ -35,10 +38,10 @@
private static final String ATTRIB_PRIO = "priority";
private static final Object CODE_ID_PROV_LOCK = new Object();
- private static volatile ICodeIdProvider[] codeIdProviderExtensions;
+ private static volatile List<ICodeIdProvider> codeIdProviderExtensions;
private static final Object CODE_ID_PARSER_LOCK = new Object();
- private static HashMap<String, TreeMap<CompositeObject, ICodeIdParser>> codeIdParsers;
+ private static volatile Map<String, Map<CompositeObject, ICodeIdParser>> codeIdParsers;
private CodeIdExtensionPoint() {
}
@@ -46,32 +49,30 @@
/**
* @return all extensions in the prioritized order.
*/
- private static ICodeIdProvider[] getCodeIdProviderExtensions() {
- synchronized (CODE_ID_PROV_LOCK) {
- if (codeIdProviderExtensions == null) {
- TreeMap<CompositeObject, ICodeIdProvider> providers = new TreeMap<CompositeObject, ICodeIdProvider>();
- IExtensionRegistry reg = Platform.getExtensionRegistry();
- IExtensionPoint xp = reg.getExtensionPoint(ScoutSdk.PLUGIN_ID, EXTENSION_POINT_NAME);
- IExtension[] extensions = xp.getExtensions();
- for (IExtension extension : extensions) {
- IConfigurationElement[] providerElememts = extension.getConfigurationElements();
- for (int i = 0; i < providerElememts.length; i++) {
- IConfigurationElement providerElememt = providerElememts[i];
- if (CODE_ID_PROVIDER_EXT_NAME.equals(providerElememt.getName())) {
- String className = providerElememt.getAttribute(ATTRIB_CLASS);
-
- ScoutSdk.logInfo("found code id provider: " + className);
- try {
- ICodeIdProvider provider = (ICodeIdProvider) providerElememt.createExecutableExtension(ATTRIB_CLASS);
- providers.put(new CompositeObject(getPriority(providerElememt), i, provider), provider);
- }
- catch (Exception t) {
- ScoutSdk.logError("register code id provider: " + className, t);
+ private static List<ICodeIdProvider> getCodeIdProviderExtensions() {
+ if (codeIdProviderExtensions == null) {
+ synchronized (CODE_ID_PROV_LOCK) {
+ if (codeIdProviderExtensions == null) {
+ Map<CompositeObject, ICodeIdProvider> providers = new TreeMap<CompositeObject, ICodeIdProvider>();
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IExtensionPoint xp = reg.getExtensionPoint(ScoutSdk.PLUGIN_ID, EXTENSION_POINT_NAME);
+ IExtension[] extensions = xp.getExtensions();
+ for (IExtension extension : extensions) {
+ IConfigurationElement[] providerElememts = extension.getConfigurationElements();
+ for (IConfigurationElement providerElememt : providerElememts) {
+ if (CODE_ID_PROVIDER_EXT_NAME.equals(providerElememt.getName())) {
+ try {
+ ICodeIdProvider provider = (ICodeIdProvider) providerElememt.createExecutableExtension(ATTRIB_CLASS);
+ providers.put(new CompositeObject(getPriority(providerElememt), provider.getClass().getName()), provider);
+ }
+ catch (Exception t) {
+ ScoutSdk.logError("Error registering code id provider '" + providerElememt.getNamespaceIdentifier() + "'.", t);
+ }
}
}
}
+ codeIdProviderExtensions = CollectionUtility.arrayList(providers.values());
}
- codeIdProviderExtensions = providers.values().toArray(new ICodeIdProvider[providers.size()]);
}
}
return codeIdProviderExtensions;
@@ -89,46 +90,46 @@
return priority;
}
- private static HashMap<String, TreeMap<CompositeObject, ICodeIdParser>> getCodeIdParsers() {
- synchronized (CODE_ID_PARSER_LOCK) {
- if (codeIdParsers == null) {
- HashMap<String, TreeMap<CompositeObject, ICodeIdParser>> parsers = new HashMap<String, TreeMap<CompositeObject, ICodeIdParser>>();
- IExtensionRegistry reg = Platform.getExtensionRegistry();
- IExtensionPoint xp = reg.getExtensionPoint(ScoutSdk.PLUGIN_ID, EXTENSION_POINT_NAME);
- IExtension[] extensions = xp.getExtensions();
- for (IExtension extension : extensions) {
- IConfigurationElement[] codeIdElements = extension.getConfigurationElements();
- for (int i = 0; i < codeIdElements.length; i++) {
- IConfigurationElement parserElememt = codeIdElements[i];
- if (CODE_ID_PARSER_EXT_NAME.equals(parserElememt.getName())) {
- String className = parserElememt.getAttribute(ATTRIB_CLASS);
- String genericTypeSignature = SignatureCache.createTypeSignature(parserElememt.getAttribute(ATTRIB_GENERIC_TYPE));
- int prio = getPriority(parserElememt);
- ScoutSdk.logInfo("found code id parser: " + className);
-
- try {
- ICodeIdParser parser = (ICodeIdParser) parserElememt.createExecutableExtension(ATTRIB_CLASS);
- TreeMap<CompositeObject, ICodeIdParser> typeParsers = parsers.get(genericTypeSignature);
- if (typeParsers == null) {
- typeParsers = new TreeMap<CompositeObject, ICodeIdParser>();
- parsers.put(genericTypeSignature, typeParsers);
+ private static Map<String, Map<CompositeObject, ICodeIdParser>> getCodeIdParsers() {
+ if (codeIdParsers == null) {
+ synchronized (CODE_ID_PARSER_LOCK) {
+ if (codeIdParsers == null) {
+ Map<String, Map<CompositeObject, ICodeIdParser>> parsers = new HashMap<String, Map<CompositeObject, ICodeIdParser>>();
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IExtensionPoint xp = reg.getExtensionPoint(ScoutSdk.PLUGIN_ID, EXTENSION_POINT_NAME);
+ IExtension[] extensions = xp.getExtensions();
+ for (IExtension extension : extensions) {
+ for (IConfigurationElement parserElememt : extension.getConfigurationElements()) {
+ if (CODE_ID_PARSER_EXT_NAME.equals(parserElememt.getName())) {
+ String genericType = parserElememt.getAttribute(ATTRIB_GENERIC_TYPE);
+ if (StringUtility.hasText(genericType)) {
+ String genericTypeSignature = SignatureCache.createTypeSignature(genericType);
+ try {
+ int prio = getPriority(parserElememt);
+ ICodeIdParser parser = (ICodeIdParser) parserElememt.createExecutableExtension(ATTRIB_CLASS);
+ Map<CompositeObject, ICodeIdParser> typeParsers = parsers.get(genericTypeSignature);
+ if (typeParsers == null) {
+ typeParsers = new TreeMap<CompositeObject, ICodeIdParser>();
+ parsers.put(genericTypeSignature, typeParsers);
+ }
+ typeParsers.put(new CompositeObject(prio, parser.getClass().getName()), parser);
+ }
+ catch (Exception t) {
+ ScoutSdk.logError("Error registering code id parser '" + parserElememt.getNamespaceIdentifier() + "'.", t);
+ }
}
- typeParsers.put(new CompositeObject(prio, i, parser), parser);
- }
- catch (Exception t) {
- ScoutSdk.logError("register code id parser: " + className, t);
}
}
}
+ codeIdParsers = CollectionUtility.copyMap(parsers);
}
- codeIdParsers = parsers;
}
- return codeIdParsers;
}
+ return codeIdParsers;
}
public static ICodeIdParser getCodeIdParser(String genericType) {
- TreeMap<CompositeObject, ICodeIdParser> parsers = getCodeIdParsers().get(genericType);
+ Map<CompositeObject, ICodeIdParser> parsers = getCodeIdParsers().get(genericType);
if (parsers != null) {
return CollectionUtility.firstElement(parsers.values());
}
@@ -136,19 +137,17 @@
}
public static String getNextCodeId(IScoutBundle projectGroup, String genericSignature) {
- String value = null;
- ICodeIdProvider[] providers = getCodeIdProviderExtensions();
- for (ICodeIdProvider p : providers) {
+ for (ICodeIdProvider p : getCodeIdProviderExtensions()) {
try {
- value = p.getNextId(projectGroup, genericSignature);
+ String value = p.getNextId(projectGroup, genericSignature);
if (value != null) {
- break;
+ return value;
}
}
catch (Exception e) {
- ScoutSdk.logWarning("Exception in codeIdExtension '" + p.getClass().getName() + "'", e);
+ ScoutSdk.logWarning("Exception in codeIdExtension '" + p.getClass().getName() + "'.", e);
}
}
- return value;
+ return null;
}
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/runtime/bundles/RuntimeBundles.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/runtime/bundles/RuntimeBundles.java
index bd6cd2e..8b522c6 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/runtime/bundles/RuntimeBundles.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/extensions/runtime/bundles/RuntimeBundles.java
@@ -126,7 +126,7 @@
}
}
- public static Integer parseOrder(String order) {
+ private static Integer parseOrder(String order) {
try {
return Integer.parseInt(order);
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractDtoTypeSourceBuilder.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractDtoTypeSourceBuilder.java
index af51418..e6d1b05 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractDtoTypeSourceBuilder.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractDtoTypeSourceBuilder.java
@@ -252,7 +252,7 @@
TypeSourceBuilder propertyTypeBuilder = new TypeSourceBuilder(propName);
propertyTypeBuilder.setFlags(Flags.AccPublic | Flags.AccStatic);
String superTypeSig = SignatureCache.createTypeSignature(IRuntimeClasses.AbstractPropertyData);
- superTypeSig = DtoUtility.ENDING_SEMICOLON_PATTERN.matcher(superTypeSig).replaceAll("<" + unboxedSignature + ">;");
+ superTypeSig = DtoUtility.ENDING_SEMICOLON_PATTERN.matcher(superTypeSig).replaceAll(Signature.C_GENERIC_START + unboxedSignature + Signature.C_GENERIC_END + Signature.C_SEMICOLON);
propertyTypeBuilder.setSuperTypeSignature(superTypeSig);
IFieldSourceBuilder serialVersionUidBuilder = FieldSourceBuilderFactory.createSerialVersionUidBuilder();
propertyTypeBuilder.addSortedFieldSourceBuilder(SortedMemberKeyFactory.createFieldSerialVersionUidKey(serialVersionUidBuilder), serialVersionUidBuilder);
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractTableBeanSourceBuilder.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractTableBeanSourceBuilder.java
index a9db5aa..54bb8f4 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractTableBeanSourceBuilder.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/AbstractTableBeanSourceBuilder.java
@@ -384,7 +384,7 @@
addSortedMethodSourceBuilder(SortedMemberKeyFactory.createMethodAnyKey(createRowSourceBuilder), createRowSourceBuilder);
IMethodSourceBuilder getRowTypeSourceBuilder = MethodSourceBuilderFactory.createOverrideMethodSourceBuilder(this, "getRowType");
- getRowTypeSourceBuilder.setReturnTypeSignature(SignatureCache.createTypeSignature(Class.class.getName() + "<? extends " + IRuntimeClasses.AbstractTableRowData + ">"));
+ getRowTypeSourceBuilder.setReturnTypeSignature(SignatureCache.createTypeSignature(Class.class.getName() + Signature.C_GENERIC_START + "? extends " + IRuntimeClasses.AbstractTableRowData + Signature.C_GENERIC_END));
getRowTypeSourceBuilder.setMethodBodySourceBuilder(new IMethodBodySourceBuilder() {
@Override
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/CodeTypeNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/CodeTypeNewOperation.java
index 0f20548..691ea4d 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/CodeTypeNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/CodeTypeNewOperation.java
@@ -35,6 +35,9 @@
public class CodeTypeNewOperation extends PrimaryTypeNewOperation {
+ public static final String ID_FIELD_NAME = "ID";
+ public static final String GET_ID_METHOD_NAME = "getId";
+
private String m_nextCodeId;
private INlsEntry m_nlsEntry;
@@ -63,8 +66,9 @@
public void run(IProgressMonitor monitor, IWorkingCopyManager workingCopyManager) throws CoreException {
// serial version UID
addFieldSourceBuilder(FieldSourceBuilderFactory.createSerialVersionUidBuilder());
+
// field ID
- FieldSourceBuilder idFieldBuilder = new FieldSourceBuilder("ID") {
+ FieldSourceBuilder idFieldBuilder = new FieldSourceBuilder(ID_FIELD_NAME) {
@Override
public void createSource(StringBuilder source, String lineDelimiter, IJavaProject ownerProject, IImportValidator validator) throws CoreException {
super.createSource(source, lineDelimiter, ownerProject, validator);
@@ -73,7 +77,6 @@
}
}
};
-
if (StringUtility.isNullOrEmpty(getNextCodeId())) {
idFieldBuilder.setValue("null");
}
@@ -83,17 +86,10 @@
idFieldBuilder.setCommentSourceBuilder(CommentSourceBuilderFactory.createPreferencesFieldCommentBuilder());
idFieldBuilder.setFlags(Flags.AccPublic | Flags.AccStatic | Flags.AccFinal);
- IMethodSourceBuilder getIdSourceBuilder = MethodSourceBuilderFactory.createOverrideMethodSourceBuilder(getSourceBuilder(), "getId");
+ IMethodSourceBuilder getIdSourceBuilder = MethodSourceBuilderFactory.createOverrideMethodSourceBuilder(getSourceBuilder(), GET_ID_METHOD_NAME);
getIdSourceBuilder.setMethodBodySourceBuilder(MethodBodySourceBuilderFactory.createSimpleMethodBody("return ID;"));
-
idFieldBuilder.setSignature(getIdSourceBuilder.getReturnTypeSignature());
addFieldSourceBuilder(idFieldBuilder);
- // constructor
- IMethodSourceBuilder constructorSourceBuilder = MethodSourceBuilderFactory.createConstructorSourceBuilder(getElementName());
- constructorSourceBuilder.setCommentSourceBuilder(CommentSourceBuilderFactory.createPreferencesMethodCommentBuilder());
- constructorSourceBuilder.addExceptionSignature(SignatureCache.createTypeSignature(IRuntimeClasses.ProcessingException));
- constructorSourceBuilder.setMethodBodySourceBuilder(MethodBodySourceBuilderFactory.createSimpleMethodBody("super();"));
- addSortedMethodSourceBuilder(SortedMemberKeyFactory.createMethodConstructorKey(constructorSourceBuilder), constructorSourceBuilder);
// nls
if (getNlsEntry() != null) {
@@ -101,13 +97,23 @@
nlsSourceBuilder.setMethodBodySourceBuilder(MethodBodySourceBuilderFactory.createNlsEntryReferenceBody(getNlsEntry()));
addSortedMethodSourceBuilder(SortedMemberKeyFactory.createMethodGetConfiguredKey(nlsSourceBuilder), nlsSourceBuilder);
}
- // get id method
+ // get id method
addSortedMethodSourceBuilder(SortedMemberKeyFactory.createMethodAnyKey(getIdSourceBuilder), getIdSourceBuilder);
+ addConstructorSourceBuilders();
+
super.run(monitor, workingCopyManager);
}
+ protected void addConstructorSourceBuilders() {
+ IMethodSourceBuilder constructorSourceBuilder = MethodSourceBuilderFactory.createConstructorSourceBuilder(getElementName());
+ constructorSourceBuilder.setCommentSourceBuilder(CommentSourceBuilderFactory.createPreferencesMethodCommentBuilder());
+ constructorSourceBuilder.addExceptionSignature(SignatureCache.createTypeSignature(IRuntimeClasses.ProcessingException));
+ constructorSourceBuilder.setMethodBodySourceBuilder(MethodBodySourceBuilderFactory.createSimpleMethodBody("super();"));
+ addSortedMethodSourceBuilder(SortedMemberKeyFactory.createMethodConstructorKey(constructorSourceBuilder), constructorSourceBuilder);
+ }
+
public void setNextCodeId(String nextCodeId) {
m_nextCodeId = nextCodeId;
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/MenuNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/MenuNewOperation.java
index 37394e2..e7b9c38 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/MenuNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/MenuNewOperation.java
@@ -19,6 +19,7 @@
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
import org.eclipse.scout.sdk.extensions.runtime.classes.IRuntimeClasses;
@@ -103,7 +104,7 @@
String treeMenuTypeName = validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.TreeMenuType));
String valueFieldMenuTypeName = validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.ValueFieldMenuType));
- source.append("return ").append(collUtilityName).append(".<").append(iMenuTypeName).append("> hashSet(");
+ source.append("return ").append(collUtilityName).append(".").append(Signature.C_GENERIC_START).append(iMenuTypeName).append(Signature.C_GENERIC_END).append(" hashSet(");
if (superTypeHierarchy.contains(TypeUtility.getType(IRuntimeClasses.ITable))) {
source.append(tableMenuTypeName).append(".EmptySpace");
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/WizardStepNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/WizardStepNewOperation.java
index 0dd1e42..6f70c21 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/WizardStepNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/WizardStepNewOperation.java
@@ -16,6 +16,7 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.CompareUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
@@ -103,7 +104,7 @@
if (CompareUtility.equals(superTypeFqn, IRuntimeClasses.AbstractWizardStep)) {
// update generic in supertype signature
StringBuilder superTypeSigBuilder = new StringBuilder(superTypeFqn);
- superTypeSigBuilder.append("<").append(getForm().getFullyQualifiedName()).append(">");
+ superTypeSigBuilder.append(Signature.C_GENERIC_START).append(getForm().getFullyQualifiedName()).append(Signature.C_GENERIC_END);
wizardStepOp.setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeSigBuilder.toString()));
// execActivate method
IMethodSourceBuilder execActivateBuilder = MethodSourceBuilderFactory.createOverrideMethodSourceBuilder(wizardStepOp.getSourceBuilder(), "execActivate");
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/SearchFormFromTablePageHelper.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/SearchFormFromTablePageHelper.java
index 58944e7..9a1aa6b 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/SearchFormFromTablePageHelper.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/SearchFormFromTablePageHelper.java
@@ -18,6 +18,7 @@
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
import org.eclipse.scout.nls.sdk.model.util.Language;
import org.eclipse.scout.nls.sdk.model.workspace.NlsEntry;
@@ -194,7 +195,7 @@
if (TypeUtility.exists(codeTypeMethod)) {
final IType codeType = PropertyMethodSourceUtility.parseReturnParameterClass(PropertyMethodSourceUtility.getMethodReturnValue(codeTypeMethod), codeTypeMethod);
// listbox
- ITypeSourceBuilder listBoxBuilder = addFormField(fieldNamePlain + SdkProperties.SUFFIX_FORM_FIELD, nlsEntry, SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.IListBox, searchFormProject) + "<" + Long.class.getName() + ">"), orderNr, fieldOwnerFqn, fieldOwnerBuilder, fieldGetterOwnerBuilder);
+ ITypeSourceBuilder listBoxBuilder = addFormField(fieldNamePlain + SdkProperties.SUFFIX_FORM_FIELD, nlsEntry, SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.IListBox, searchFormProject) + Signature.C_GENERIC_START + Long.class.getName() + Signature.C_GENERIC_END), orderNr, fieldOwnerFqn, fieldOwnerBuilder, fieldGetterOwnerBuilder);
if (TypeUtility.exists(codeType)) {
// getConfiguredCodeType method
IMethodSourceBuilder getConfiguredCodeTypeBuilder = MethodSourceBuilderFactory.createOverrideMethodSourceBuilder(listBoxBuilder, "getConfiguredCodeType");
@@ -207,7 +208,7 @@
if (TypeUtility.exists(lookupCallMethod)) {
final IType lookupCall = PropertyMethodSourceUtility.parseReturnParameterClass(PropertyMethodSourceUtility.getMethodReturnValue(lookupCallMethod), lookupCallMethod);
// smartfield
- ITypeSourceBuilder smartFieldBuilder = addFormField(fieldNamePlain + SdkProperties.SUFFIX_FORM_FIELD, nlsEntry, SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.ISmartField, searchFormProject) + "<" + Long.class.getName() + ">"), orderNr, fieldOwnerFqn, fieldOwnerBuilder, fieldGetterOwnerBuilder);
+ ITypeSourceBuilder smartFieldBuilder = addFormField(fieldNamePlain + SdkProperties.SUFFIX_FORM_FIELD, nlsEntry, SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.ISmartField, searchFormProject) + Signature.C_GENERIC_START + Long.class.getName() + Signature.C_GENERIC_END), orderNr, fieldOwnerFqn, fieldOwnerBuilder, fieldGetterOwnerBuilder);
if (TypeUtility.exists(lookupCall)) {
// getConfiguredLookupCall method
IMethodSourceBuilder getConfiguredCodeTypeBuilder = MethodSourceBuilderFactory.createOverrideMethodSourceBuilder(smartFieldBuilder, "getConfiguredLookupCall");
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/CalendarFieldNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/CalendarFieldNewOperation.java
index 722d260..8b9edad 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/CalendarFieldNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/CalendarFieldNewOperation.java
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.CompareUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
@@ -95,7 +96,7 @@
newOp.addTypeSourceBuilder(calendarBuilder);
// update generic in super type signature
StringBuilder superTypeSigBuilder = new StringBuilder(superTypeFqn);
- superTypeSigBuilder.append("<").append(calendarBuilder.getFullyQualifiedName().replace('$', '.')).append(">");
+ superTypeSigBuilder.append(Signature.C_GENERIC_START).append(calendarBuilder.getFullyQualifiedName().replace('$', '.')).append(Signature.C_GENERIC_END);
newOp.setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeSigBuilder.toString()));
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/ListBoxFieldNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/ListBoxFieldNewOperation.java
index 9cd9ae8..0227544 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/ListBoxFieldNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/ListBoxFieldNewOperation.java
@@ -56,7 +56,7 @@
m_declaringType = declaringType;
m_formatSource = formatSource;
// default
- setSuperTypeSignature(SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.IListBox, getDeclaringType().getJavaProject()) + "<" + Long.class.getName() + ">"));
+ setSuperTypeSignature(SignatureCache.createTypeSignature(RuntimeClasses.getSuperTypeName(IRuntimeClasses.IListBox, getDeclaringType().getJavaProject()) + Signature.C_GENERIC_START + Long.class.getName() + Signature.C_GENERIC_END));
}
@Override
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/PlannerFieldNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/PlannerFieldNewOperation.java
index 58a9ace..0519217 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/PlannerFieldNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/PlannerFieldNewOperation.java
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.CompareUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
@@ -77,9 +78,9 @@
if (CompareUtility.equals(superTypeFqn, IRuntimeClasses.AbstractPlannerField)) {
// super type sig
StringBuilder superTypeSigBuilder = new StringBuilder(superTypeFqn);
- superTypeSigBuilder.append("<").append(getTypeName()).append(".").append(SdkProperties.TYPE_NAME_PLANNERFIELD_TABLE).append(",");
+ superTypeSigBuilder.append(Signature.C_GENERIC_START).append(getTypeName()).append(".").append(SdkProperties.TYPE_NAME_PLANNERFIELD_TABLE).append(",");
superTypeSigBuilder.append(getTypeName()).append(".").append(SdkProperties.TYPE_NAME_PLANNERFIELD_ACTIVITYMAP).append(",");
- superTypeSigBuilder.append(Long.class.getName()).append(",").append(Long.class.getName()).append(">");
+ superTypeSigBuilder.append(Long.class.getName()).append(",").append(Long.class.getName()).append(Signature.C_GENERIC_END);
newOp.setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeSigBuilder.toString()));
createPlannerTable(newOp.getSourceBuilder(), monitor, workingCopyManager);
createActivityMap(newOp.getSourceBuilder(), monitor, workingCopyManager);
@@ -137,8 +138,8 @@
|| CompareUtility.equals(superTypeFqn, IRuntimeClasses.AbstractExtensibleActivityMap)) {
// super type sig
StringBuilder superTypeSigBuilder = new StringBuilder(superTypeFqn);
- superTypeSigBuilder.append('<').append(Long.class.getName()).append(',');
- superTypeSigBuilder.append(Long.class.getName()).append('>');
+ superTypeSigBuilder.append(Signature.C_GENERIC_START).append(Long.class.getName()).append(',');
+ superTypeSigBuilder.append(Long.class.getName()).append(Signature.C_GENERIC_END);
activityMapSuperTypeSig = SignatureCache.createTypeSignature(superTypeSigBuilder.toString());
}
activityMapBuilder.setSuperTypeSignature(activityMapSuperTypeSig);
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/SmartFieldNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/SmartFieldNewOperation.java
index 4bea005..1153f85 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/SmartFieldNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/SmartFieldNewOperation.java
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
import org.eclipse.scout.sdk.extensions.runtime.classes.IRuntimeClasses;
@@ -56,7 +57,7 @@
m_formatSource = formatSource;
// default
String superTypeName = RuntimeClasses.getSuperTypeName(IRuntimeClasses.ISmartField, getDeclaringType().getJavaProject());
- setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeName + "<" + Long.class.getName() + ">"));
+ setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeName + Signature.C_GENERIC_START + Long.class.getName() + Signature.C_GENERIC_END));
}
@Override
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/TreeBoxNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/TreeBoxNewOperation.java
index 3f2fbe9..538256c 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/TreeBoxNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/field/TreeBoxNewOperation.java
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.CompareUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
@@ -90,7 +91,7 @@
newOp.addSortedTypeSourceBuilder(SortedMemberKeyFactory.createTypeTeeKey(treeBuilder), treeBuilder);
// update generic in supertype signature
StringBuilder superTypeSigBuilder = new StringBuilder(superTypeFqn);
- superTypeSigBuilder.append("<").append(newOp.getElementName()).append(".").append(SdkProperties.TYPE_NAME_TREEBOX_TREE).append(">");
+ superTypeSigBuilder.append(Signature.C_GENERIC_START).append(newOp.getElementName()).append(".").append(SdkProperties.TYPE_NAME_TREEBOX_TREE).append(Signature.C_GENERIC_END);
setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeSigBuilder.toString()));
}
newOp.setFormatSource(isFormatSource());
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/jdt/annotation/AnnotationNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/jdt/annotation/AnnotationNewOperation.java
index 74505b9..a875a7d 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/jdt/annotation/AnnotationNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/jdt/annotation/AnnotationNewOperation.java
@@ -10,6 +10,7 @@
******************************************************************************/
package org.eclipse.scout.sdk.operation.jdt.annotation;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -215,7 +216,7 @@
* @return
* @see org.eclipse.scout.sdk.sourcebuilder.annotation.AnnotationSourceBuilder#getParameters()
*/
- public String[] getParameters() {
+ public List<String> getParameters() {
return m_sourceBuilder.getParameters();
}
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LocalLookupCallNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LocalLookupCallNewOperation.java
index ec81017..22ddb2b 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LocalLookupCallNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LocalLookupCallNewOperation.java
@@ -92,8 +92,8 @@
refGenericType = validator.getTypeName(SignatureCache.createTypeSignature(Object.class.getName()));
}
- source.append(refList).append("< ? extends ").append(refLookupRow).append('<').append(refGenericType).append('>').append("> rows = new ");
- source.append(refArrayList).append('<').append(refLookupRow).append('<').append(refGenericType).append('>').append(">();").append(lineDelimiter);
+ source.append(refList).append(Signature.C_GENERIC_START).append("? extends ").append(refLookupRow).append(Signature.C_GENERIC_START).append(refGenericType).append(Signature.C_GENERIC_END).append(Signature.C_GENERIC_END).append(" rows = new ");
+ source.append(refArrayList).append(Signature.C_GENERIC_START).append(refLookupRow).append(Signature.C_GENERIC_START).append(refGenericType).append(Signature.C_GENERIC_END).append(Signature.C_GENERIC_END).append("();").append(lineDelimiter);
source.append(" ").append(ScoutUtility.getCommentBlock("Create lookup rows here.")).append(lineDelimiter);
source.append(" return rows;");
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java
index f708e36..9172cd3 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java
@@ -92,9 +92,9 @@
StringBuilder ifcSuperInterface = new StringBuilder(IRuntimeClasses.ILookupService);
String[] typeParams = Signature.getTypeArguments(getServiceSuperTypeSignature());
if (typeParams != null && typeParams.length > 0) {
- ifcSuperInterface.append('<');
+ ifcSuperInterface.append(Signature.C_GENERIC_START);
ifcSuperInterface.append(Signature.toString(typeParams[0]));
- ifcSuperInterface.append('>');
+ ifcSuperInterface.append(Signature.C_GENERIC_END);
}
serviceOp.addInterfaceInterfaceSignature(SignatureCache.createTypeSignature(ifcSuperInterface.toString()));
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/outline/OutlineNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/outline/OutlineNewOperation.java
index 9ee6005..056f517 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/outline/OutlineNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/outline/OutlineNewOperation.java
@@ -22,6 +22,7 @@
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.jface.text.Document;
import org.eclipse.scout.commons.CollectionUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
@@ -158,7 +159,7 @@
String classRef = validator.getTypeName(SignatureCache.createTypeSignature(Class.class.getName()));
String iOutlineRef = validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.IOutline));
- StringBuilder genericPart = new StringBuilder().append('<').append(classRef).append("<? extends ").append(iOutlineRef).append(">>");
+ StringBuilder genericPart = new StringBuilder().append(Signature.C_GENERIC_START).append(classRef).append(Signature.C_GENERIC_START).append("? extends ").append(iOutlineRef).append(Signature.C_GENERIC_END).append(Signature.C_GENERIC_END);
source.append(listRef).append(genericPart).append(" outlines = ").append("new ").append(arrayListRef).append(genericPart).append("();").append(lineDelimiter);
if (outlineTypes != null && outlineTypes.size() > 0) {
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/page/PageNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/page/PageNewOperation.java
index 8a069c0..5140b3c 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/page/PageNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/page/PageNewOperation.java
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
import org.eclipse.scout.commons.CompareUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.nls.sdk.model.INlsEntry;
@@ -130,7 +131,7 @@
// update generic in supertype signature
StringBuilder superTypeSigBuilder = new StringBuilder(superTypeFqn);
- superTypeSigBuilder.append("<").append(newOp.getPackageName()).append(".").append(newOp.getElementName()).append(".").append(SdkProperties.TYPE_NAME_OUTLINE_WITH_TABLE_TABLE).append(">");
+ superTypeSigBuilder.append(Signature.C_GENERIC_START).append(newOp.getPackageName()).append(".").append(newOp.getElementName()).append(".").append(SdkProperties.TYPE_NAME_OUTLINE_WITH_TABLE_TABLE).append(Signature.C_GENERIC_END);
newOp.setSuperTypeSignature(SignatureCache.createTypeSignature(superTypeSigBuilder.toString()));
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/CalendarServiceNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/CalendarServiceNewOperation.java
index bd27cdc..22fa0a5 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/CalendarServiceNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/CalendarServiceNewOperation.java
@@ -54,7 +54,7 @@
TypeSourceBuilder interfaceSourceBuilder = getInterfaceSourceBuilder();
IMethodSourceBuilder interfaceGetItemsBuilder = new MethodSourceBuilder("getItems");
interfaceGetItemsBuilder.setFlags(Flags.AccInterface);
- interfaceGetItemsBuilder.setReturnTypeSignature(SignatureCache.createTypeSignature(Set.class.getName() + "<" + IRuntimeClasses.ICalendarItem + ">"));
+ interfaceGetItemsBuilder.setReturnTypeSignature(SignatureCache.createTypeSignature(Set.class.getName() + Signature.C_GENERIC_START + IRuntimeClasses.ICalendarItem + Signature.C_GENERIC_END));
interfaceGetItemsBuilder.setCommentSourceBuilder(CommentSourceBuilderFactory.createPreferencesMethodCommentBuilder());
interfaceGetItemsBuilder.addParameter(new MethodParameter("minDate", SignatureCache.createTypeSignature(Date.class.getName())));
interfaceGetItemsBuilder.addParameter(new MethodParameter("maxDate", SignatureCache.createTypeSignature(Date.class.getName())));
@@ -65,7 +65,7 @@
interfaceStoreItemsBuilder.setFlags(Flags.AccInterface);
interfaceStoreItemsBuilder.setReturnTypeSignature(Signature.SIG_VOID);
interfaceStoreItemsBuilder.setCommentSourceBuilder(CommentSourceBuilderFactory.createPreferencesMethodCommentBuilder());
- interfaceStoreItemsBuilder.addParameter(new MethodParameter("items", SignatureCache.createTypeSignature(Set.class.getName() + "<" + IRuntimeClasses.ICalendarItem + ">")));
+ interfaceStoreItemsBuilder.addParameter(new MethodParameter("items", SignatureCache.createTypeSignature(Set.class.getName() + Signature.C_GENERIC_START + IRuntimeClasses.ICalendarItem + Signature.C_GENERIC_END)));
interfaceStoreItemsBuilder.addParameter(new MethodParameter("delta", Signature.SIG_BOOLEAN));
interfaceStoreItemsBuilder.addExceptionSignature(SignatureCache.createTypeSignature(IRuntimeClasses.ProcessingException));
interfaceSourceBuilder.addSortedMethodSourceBuilder(SortedMemberKeyFactory.createMethodAnyKey(interfaceStoreItemsBuilder), interfaceStoreItemsBuilder);
@@ -75,7 +75,7 @@
IMethodSourceBuilder implementationGetItemsBuilder = new MethodSourceBuilder("getItems");
implementationGetItemsBuilder.addAnnotationSourceBuilder(AnnotationSourceBuilderFactory.createOverrideAnnotationSourceBuilder());
implementationGetItemsBuilder.setFlags(Flags.AccPublic);
- implementationGetItemsBuilder.setReturnTypeSignature(SignatureCache.createTypeSignature(Set.class.getName() + "<" + IRuntimeClasses.ICalendarItem + ">"));
+ implementationGetItemsBuilder.setReturnTypeSignature(SignatureCache.createTypeSignature(Set.class.getName() + Signature.C_GENERIC_START + IRuntimeClasses.ICalendarItem + Signature.C_GENERIC_END));
implementationGetItemsBuilder.addParameter(new MethodParameter("minDate", SignatureCache.createTypeSignature(Date.class.getName())));
implementationGetItemsBuilder.addParameter(new MethodParameter("maxDate", SignatureCache.createTypeSignature(Date.class.getName())));
implementationGetItemsBuilder.addExceptionSignature(SignatureCache.createTypeSignature(IRuntimeClasses.ProcessingException));
@@ -93,7 +93,7 @@
implementationStoreItemsBuilder.addAnnotationSourceBuilder(AnnotationSourceBuilderFactory.createOverrideAnnotationSourceBuilder());
implementationStoreItemsBuilder.setFlags(Flags.AccPublic);
implementationStoreItemsBuilder.setReturnTypeSignature(Signature.SIG_VOID);
- implementationStoreItemsBuilder.addParameter(new MethodParameter("items", SignatureCache.createTypeSignature(Set.class.getName() + "<" + IRuntimeClasses.ICalendarItem + ">")));
+ implementationStoreItemsBuilder.addParameter(new MethodParameter("items", SignatureCache.createTypeSignature(Set.class.getName() + Signature.C_GENERIC_START + IRuntimeClasses.ICalendarItem + Signature.C_GENERIC_END)));
implementationStoreItemsBuilder.addParameter(new MethodParameter("delta", Signature.SIG_BOOLEAN));
implementationStoreItemsBuilder.addExceptionSignature(SignatureCache.createTypeSignature(IRuntimeClasses.ProcessingException));
implementationStoreItemsBuilder.setMethodBodySourceBuilder(MethodBodySourceBuilderFactory.createSimpleMethodBody(ScoutUtility.getCommentBlock("business logic here.")));
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/AbstractAnnotatableSourceBuilder.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/AbstractAnnotatableSourceBuilder.java
index e25f79f..f7c360a 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/AbstractAnnotatableSourceBuilder.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/AbstractAnnotatableSourceBuilder.java
@@ -11,6 +11,8 @@
package org.eclipse.scout.sdk.sourcebuilder;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -33,8 +35,8 @@
private int m_flags;
- private List<IAnnotationSourceBuilder> m_annotationSourceBuilders;
- private Map<CompositeObject, IAnnotationSourceBuilder> m_sortedAnnotationSourceBuilders;
+ private final List<IAnnotationSourceBuilder> m_annotationSourceBuilders;
+ private final Map<CompositeObject, IAnnotationSourceBuilder> m_sortedAnnotationSourceBuilders;
public AbstractAnnotatableSourceBuilder(String elementName) {
super(elementName);
@@ -50,13 +52,37 @@
}
protected void createAnnotations(StringBuilder sourceBuilder, String lineDelimiter, IJavaProject ownerProject, IImportValidator validator) throws CoreException {
- for (IAnnotationSourceBuilder annotationOp : getAnnotationSourceBuilders()) {
- if (annotationOp != null) {
- // use as source builder
- annotationOp.createSource(sourceBuilder, lineDelimiter, ownerProject, validator);
+ List<IAnnotationSourceBuilder> asbs = getAnnotationSourceBuilders();
+ if (m_sortedAnnotationSourceBuilders.isEmpty()) {
+ // unsorted list: use length of source as order
+ List<StringBuilder> annotSrc = new ArrayList<StringBuilder>(asbs.size());
+ for (IAnnotationSourceBuilder sb : asbs) {
+ if (sb != null) {
+ StringBuilder src = new StringBuilder();
+ sb.createSource(src, lineDelimiter, ownerProject, validator);
+ annotSrc.add(src);
+ }
+ }
+ Collections.sort(annotSrc, new Comparator<StringBuilder>() {
+ @Override
+ public int compare(StringBuilder o1, StringBuilder o2) {
+ return Integer.valueOf(o1.length()).compareTo(Integer.valueOf(o2.length()));
+ }
+ });
+
+ for (StringBuilder sb : annotSrc) {
+ sourceBuilder.append(sb);
sourceBuilder.append(lineDelimiter);
}
}
+ else {
+ for (IAnnotationSourceBuilder sb : asbs) {
+ if (sb != null) {
+ sb.createSource(sourceBuilder, lineDelimiter, ownerProject, validator);
+ sourceBuilder.append(lineDelimiter);
+ }
+ }
+ }
}
public void setFlags(int flags) {
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/AnnotationSourceBuilder.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/AnnotationSourceBuilder.java
index 18a1113..9472b4f 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/AnnotationSourceBuilder.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/AnnotationSourceBuilder.java
@@ -15,6 +15,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.scout.commons.CollectionUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.sdk.util.signature.IImportValidator;
import org.eclipse.scout.sdk.util.signature.SignatureUtility;
@@ -45,12 +46,11 @@
@Override
public void createSource(StringBuilder source, String lineDelimiter, IJavaProject ownerProject, IImportValidator validator) throws CoreException {
source.append("@" + SignatureUtility.getTypeReference(getSignature(), validator));
- String[] params = getParameters();
- if (params != null && params.length > 0) {
+ if (m_parameters.size() > 0) {
source.append("(");
- for (int i = 0; i < params.length; i++) {
- source.append(params[i]);
- if (i < (params.length - 1)) {
+ for (int i = 0; i < m_parameters.size(); i++) {
+ source.append(m_parameters.get(i));
+ if (i < (m_parameters.size() - 1)) {
source.append(",");
}
}
@@ -74,8 +74,8 @@
}
@Override
- public String[] getParameters() {
- return m_parameters.toArray(new String[m_parameters.size()]);
+ public List<String> getParameters() {
+ return CollectionUtility.arrayList(m_parameters);
}
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/IAnnotationSourceBuilder.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/IAnnotationSourceBuilder.java
index 681c221..3be7ce9 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/IAnnotationSourceBuilder.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/sourcebuilder/annotation/IAnnotationSourceBuilder.java
@@ -10,6 +10,8 @@
******************************************************************************/
package org.eclipse.scout.sdk.sourcebuilder.annotation;
+import java.util.List;
+
import org.eclipse.scout.sdk.sourcebuilder.ISourceBuilder;
/**
@@ -40,6 +42,6 @@
/**
* @return
*/
- String[] getParameters();
+ List<String> getParameters();
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/ScoutTypeUtility.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/ScoutTypeUtility.java
index 4382105..2052f5c 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/ScoutTypeUtility.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/ScoutTypeUtility.java
@@ -57,6 +57,7 @@
import org.eclipse.scout.sdk.util.signature.SignatureUtility;
import org.eclipse.scout.sdk.util.type.IMethodFilter;
import org.eclipse.scout.sdk.util.type.ITypeFilter;
+import org.eclipse.scout.sdk.util.type.MethodFilters;
import org.eclipse.scout.sdk.util.type.TypeComparators;
import org.eclipse.scout.sdk.util.type.TypeFilters;
import org.eclipse.scout.sdk.util.type.TypeUtility;
@@ -736,7 +737,7 @@
if (codeIdSig == null) {
return null;
}
- return SignatureCache.createTypeSignature(IRuntimeClasses.ICode + '<' + Signature.toString(codeIdSig) + '>');
+ return SignatureCache.createTypeSignature(IRuntimeClasses.ICode + Signature.C_GENERIC_START + Signature.toString(codeIdSig) + Signature.C_GENERIC_END);
}
}
@@ -877,35 +878,46 @@
Iterator<IType> topDownIterator = bottomUpAffectedTypes.descendingIterator();
while (topDownIterator.hasNext()) {
IType t = topDownIterator.next();
- IMethod m = TypeUtility.getMethod(t, methodName);
- if (TypeUtility.exists(m)) {
- if (newMethod != null) {
- newMethod.pushMethod(m);
- }
- else {
- if (methodType == 0) {
- IAnnotation configPropAnnotation = JdtUtility.getAnnotation(m, IRuntimeClasses.ConfigProperty);
- if (TypeUtility.exists(configPropAnnotation)) {
- methodType = ConfigurationMethod.PROPERTY_METHOD;
-
- if (!StringUtility.hasText(configPropertyType)) {
- configPropertyType = JdtUtility.getAnnotationValueString(configPropAnnotation, "value");
- }
- }
- else {
- IAnnotation configOpAnnotation = JdtUtility.getAnnotation(m, IRuntimeClasses.ConfigOperation);
- if (TypeUtility.exists(configOpAnnotation)) {
- methodType = ConfigurationMethod.OPERATION_METHOD;
- }
- }
- }
-
- if (methodType != 0) {
- newMethod = new ConfigurationMethod(declaringType, superTypeHierarchy, methodName, methodType);
+ Set<IMethod> methods = TypeUtility.getMethods(t, MethodFilters.getNameFilter(methodName));
+ for (IMethod m : methods) {
+ if (TypeUtility.exists(m)) {
+ if (newMethod != null) {
newMethod.pushMethod(m);
+ }
+ else {
+ if (methodType == 0) {
+ IAnnotation configPropAnnotation = JdtUtility.getAnnotation(m, IRuntimeClasses.ConfigProperty);
+ if (TypeUtility.exists(configPropAnnotation)) {
+ methodType = ConfigurationMethod.PROPERTY_METHOD;
- if (methodType == ConfigurationMethod.PROPERTY_METHOD && StringUtility.hasText(configPropertyType)) {
- newMethod.setConfigAnnotationType(configPropertyType);
+ if (!StringUtility.hasText(configPropertyType)) {
+ String annotValue = JdtUtility.getAnnotationValueString(configPropAnnotation, "value");
+ if (annotValue != null) {
+ int lastDot = annotValue.lastIndexOf('.');
+ if (lastDot > 0 && annotValue.length() > lastDot) {
+ annotValue = annotValue.substring(lastDot + 1);
+ }
+ }
+ if (StringUtility.hasText(annotValue)) {
+ configPropertyType = annotValue;
+ }
+ }
+ }
+ else {
+ IAnnotation configOpAnnotation = JdtUtility.getAnnotation(m, IRuntimeClasses.ConfigOperation);
+ if (TypeUtility.exists(configOpAnnotation)) {
+ methodType = ConfigurationMethod.OPERATION_METHOD;
+ }
+ }
+ }
+
+ if (methodType != 0) {
+ newMethod = new ConfigurationMethod(declaringType, superTypeHierarchy, methodName, methodType);
+ newMethod.pushMethod(m);
+
+ if (methodType == ConfigurationMethod.PROPERTY_METHOD && StringUtility.hasText(configPropertyType)) {
+ newMethod.setConfigAnnotationType(configPropertyType);
+ }
}
}
}
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/config/parser/MenuTypeParsers.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/config/parser/MenuTypeParsers.java
index f66b25b..5882f8f 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/config/parser/MenuTypeParsers.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/workspace/type/config/parser/MenuTypeParsers.java
@@ -64,7 +64,7 @@
if (validator != null) {
String iMenuTypeName = validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.IMenuType));
String collUtilityName = validator.getTypeName(SignatureCache.createTypeSignature(IRuntimeClasses.CollectionUtility));
- source.append(collUtilityName).append(".<").append(iMenuTypeName).append("> hashSet(");
+ source.append(collUtilityName).append(".").append(Signature.C_GENERIC_START).append(iMenuTypeName).append(Signature.C_GENERIC_END).append(" hashSet(");
}
boolean itemFound = false;