diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java
index b9591ae73d..0829952385 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java
@@ -70,6 +70,7 @@
import org.zkoss.zul.Row;
import org.zkoss.zul.RowRenderer;
import org.zkoss.zul.RowRendererExt;
+import org.zkoss.zul.Span;
import org.zkoss.zul.impl.XulElement;
/**
@@ -339,17 +340,23 @@ private Component getDisplayComponent(int rowIndex, Object value, GridField grid
editor.addActionListener(buttonListener);
component = editor.getComponent();
} else if (gridField.getDisplayType() == DisplayType.Image) {
- WImageEditor editor = new WImageEditor(gridField);
- editor.setReadWrite(false);
- editor.setValue(value);
- Image image = editor.getComponent();
- if (image.getContent() != null) {
- image.setWidth(MSysConfig.getIntValue(MSysConfig.ZK_THUMBNAIL_IMAGE_WIDTH, 100, Env.getAD_Client_ID(Env.getCtx()))+"px");
- image.setHeight(MSysConfig.getIntValue(MSysConfig.ZK_THUMBNAIL_IMAGE_HEIGHT, 100, Env.getAD_Client_ID(Env.getCtx()))+"px");
- image.setClientAttribute("onmouseenter", "idempiere.showFullSizeImage(event)");
- image.setClientAttribute("onmouseleave", "idempiere.hideFullSizeImage(event)");
+ if (value != null) {
+ WImageEditor editor = new WImageEditor(gridField);
+ editor.setReadWrite(false);
+ editor.setValue(value);
+ Image image = editor.getComponent();
+ if (image.getContent() != null) {
+ image.setWidth(MSysConfig.getIntValue(MSysConfig.ZK_THUMBNAIL_IMAGE_WIDTH, 100, Env.getAD_Client_ID(Env.getCtx()))+"px");
+ image.setHeight(MSysConfig.getIntValue(MSysConfig.ZK_THUMBNAIL_IMAGE_HEIGHT, 100, Env.getAD_Client_ID(Env.getCtx()))+"px");
+ image.setClientAttribute("onmouseenter", "idempiere.showFullSizeImage(event)");
+ image.setClientAttribute("onmouseleave", "idempiere.hideFullSizeImage(event)");
+ }
+ component = image;
+ } else {
+ Span span = new Span();
+ span.setSclass("no-image");
+ component = span;
}
- component = image;
} else {
String text = getDisplayText(value, gridField, rowIndex, isForceGetValue);
WEditor editor = getEditorCell(gridField);
@@ -359,8 +366,17 @@ private Component getDisplayComponent(int rowIndex, Object value, GridField grid
component = label;
}else{
component = editor.getDisplayComponent();
- if (component instanceof Html){
- ((Html)component).setContent(text);
+ if (component instanceof Html html){
+ if (Util.isEmpty(text) && value == null) {
+ String nullText = editor.getDisplayTextForGridView(value);
+ if (!Util.isEmpty(nullText)) {
+ html.setContent(nullText);
+ } else {
+ html.setContent(text);
+ }
+ } else {
+ html.setContent(text);
+ }
}else{
throw new UnsupportedOperationException("Only implemented for Html component.");
}
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java
index 7909c35c4c..a9b0169c48 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java
@@ -39,6 +39,7 @@
import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.apps.BusyDialog;
+import org.adempiere.webui.apps.DesktopRunnable;
import org.adempiere.webui.apps.WReport;
import org.adempiere.webui.apps.graph.IChartRendererService;
import org.adempiere.webui.apps.graph.WGraph;
@@ -337,7 +338,7 @@ protected void doRun() {
}
}
};
- Adempiere.getThreadPoolExecutor().submit(cr);
+ Adempiere.getThreadPoolExecutor().submit(new DesktopRunnable(cr, parent.getDesktop()));
}
}
@@ -647,7 +648,7 @@ protected void doRun() {
}
}
};
- Adempiere.getThreadPoolExecutor().submit(cr);
+ Adempiere.getThreadPoolExecutor().submit(new DesktopRunnable(cr, parent.getDesktop()));
}
}
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java
index c1a5101556..793850f34a 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageEditor.java
@@ -32,6 +32,7 @@
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.Cell;
+import org.zkoss.zul.Html;
import org.zkoss.zul.Image;
/**
@@ -178,8 +179,8 @@ public void setValue(Object value)
@Override
public String getDisplayTextForGridView(Object value) {
- if (value == null) {
- return "";
+ if (value == null || (value instanceof Integer && (Integer)value == 0)) {
+ return "";
} else {
return "...";
}
@@ -231,4 +232,12 @@ public void onEvent(Event event) throws Exception {
public void fillHorizontal() {
}
+ @Override
+ public Component getDisplayComponent() {
+ if (m_mImage == null)
+ return new Html();
+ else
+ return null;
+ }
+
}
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageURLEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageURLEditor.java
index b8ac73270b..e7af78e543 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageURLEditor.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WImageURLEditor.java
@@ -231,7 +231,7 @@ public String getDisplayTextForGridView(GridRowCtx gridRowCtx, Object value) {
.append("onmouseenter='idempiere.showFullSizeImage(event)' onmouseleave='idempiere.hideFullSizeImage(event)'/>");
return builder.toString();
} else {
- return "";
+ return "";
}
}
}
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java
index 31c667c4ca..f9d09b7258 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java
@@ -1596,6 +1596,8 @@ protected void prepareTable(ColumnInfo[] layout, String from, String where,
image.setClientAttribute("onmouseenter", "idempiere.showFullSizeImage(event)");
image.setClientAttribute("onmouseleave", "idempiere.hideFullSizeImage(event)");
}
+ if (t.value == null)
+ LayoutUtils.addSclass("no-image", editor.getComponent());
return editor;
});
}