catch up with branch daily
Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/BeanReferenceFieldPresentation.java b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/BeanReferenceFieldPresentation.java
index d49d41b..6e952bd 100644
--- a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/BeanReferenceFieldPresentation.java
+++ b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/BeanReferenceFieldPresentation.java
@@ -41,6 +41,7 @@
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBeanReferenceFieldEditpart;
import org.eclipse.osbp.runtime.common.annotations.TargetEnumConstraints;
import org.eclipse.osbp.runtime.common.state.ISharedStateContext;
+import org.eclipse.osbp.runtime.common.types.IBundleSpace;
import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.common.AbstractFieldWidgetPresenter;
import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.internal.util.Util;
@@ -171,12 +172,20 @@
* @return the filter
*/
protected Filter createFilter() {
- Class<?> sourceType = modelAccess.yField.getReferenceSourceType();
+ String sourceTypeFqn = modelAccess.yField.getReferenceSourceTypeQualifiedName();
String sourceProperty = modelAccess.yField.getReferenceSourceTypeProperty();
- if (sourceType == null || sourceProperty == null || sourceProperty.equals("")) {
+ if (sourceTypeFqn == null || sourceProperty == null || sourceProperty.equals("")) {
return null;
}
+ IBundleSpace bundleSpace = getViewContext().getService(IBundleSpace.class.getName());
+ Class<?> sourceType = null;
+ try {
+ sourceType = bundleSpace.forName(sourceTypeFqn);
+ } catch (ClassNotFoundException e1) {
+ LOGGER.error("{}", e1);
+ }
+
try {
java.lang.reflect.Field sourceField = sourceType.getDeclaredField(sourceProperty);
diff --git a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/CustomTableFieldFactory.java b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/CustomTableFieldFactory.java
new file mode 100644
index 0000000..4f5ceeb
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/CustomTableFieldFactory.java
@@ -0,0 +1,33 @@
+package org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.internal;
+
+import com.vaadin.data.Container;
+import com.vaadin.data.Property;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.DefaultFieldFactory;
+import com.vaadin.ui.Field;
+import com.vaadin.ui.RichTextArea;
+import com.vaadin.ui.TextField;
+
+@SuppressWarnings("serial")
+public class CustomTableFieldFactory extends DefaultFieldFactory {
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Field createField(Container container, Object itemId, Object propertyId, Component uiContext) {
+ Class<?> clz = container.getType(propertyId);
+ if(String.class.isAssignableFrom(clz)) {
+ Property containerProperty = container.getContainerProperty(itemId,
+ propertyId);
+ Class<?> type = containerProperty.getType();
+ if (type == null) {
+ return null;
+ }
+ Field<?> field = new RichTextArea();
+ field.setCaption(createCaptionByPropertyId(propertyId));
+ return field;
+ } else {
+ Field<?> field = new TextField();//super.createField(container, itemId, propertyId, uiContext);
+ field.setCaption(createCaptionByPropertyId(propertyId));
+ return field;
+ }
+ }
+}
diff --git a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java
index b925b67..5cc15a8 100644
--- a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java
+++ b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java
@@ -102,6 +102,7 @@
import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;
import com.vaadin.ui.Field;
+import com.vaadin.ui.HasComponents;
import com.vaadin.ui.Table;
import com.vaadin.ui.Table.Align;
import com.vaadin.ui.Table.ColumnCollapseEvent;
@@ -1023,6 +1024,15 @@
private Timer sortTimer;
private boolean isSorting;
+ @Override
+ public void markAsDirtyRecursive() {
+ if(isVisible()) {
+ super.markAsDirtyRecursive();
+ // Avoid sending a partial repaint (#8714)
+ refreshRowCache();
+ }
+ }
+
@SuppressWarnings("unchecked")
CustomTable() {
addValueChangeListener(e -> {