IDEMPIERE-6094 AD Window: error notification popup for detail tab is being shown at the wrong position (#2299)
This commit is contained in:
parent
35995e07df
commit
da8ce352a7
|
@ -73,6 +73,7 @@ import org.zkoss.zul.A;
|
||||||
import org.zkoss.zul.Div;
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Hbox;
|
import org.zkoss.zul.Hbox;
|
||||||
import org.zkoss.zul.Hlayout;
|
import org.zkoss.zul.Hlayout;
|
||||||
|
import org.zkoss.zul.LayoutRegion;
|
||||||
import org.zkoss.zul.Popup;
|
import org.zkoss.zul.Popup;
|
||||||
import org.zkoss.zul.Separator;
|
import org.zkoss.zul.Separator;
|
||||||
import org.zkoss.zul.Space;
|
import org.zkoss.zul.Space;
|
||||||
|
@ -708,7 +709,8 @@ public class DetailPane extends Panel implements EventListener<Event>, IdSpace {
|
||||||
|
|
||||||
String labelText = buildLabelText(status);
|
String labelText = buildLabelText(status);
|
||||||
if (error) {
|
if (error) {
|
||||||
Clients.showNotification(buildNotificationText(status), "error", findTabpanel(this), "top_left", 3500, true);
|
Component ref = isCollapsed(this) ? findTabpanel(this) : findTabpanel(messageContainer);
|
||||||
|
Clients.showNotification(buildNotificationText(status), "error", ref, "top_left", 3500, true);
|
||||||
}
|
}
|
||||||
Label label = new Label(labelText);
|
Label label = new Label(labelText);
|
||||||
messageContainer.appendChild(label);
|
messageContainer.appendChild(label);
|
||||||
|
@ -735,6 +737,21 @@ public class DetailPane extends Panel implements EventListener<Event>, IdSpace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is parent of detailPane in collapsed state
|
||||||
|
* @param detailPane
|
||||||
|
* @return true if parent of detailPane is in collapsed state
|
||||||
|
*/
|
||||||
|
private boolean isCollapsed(DetailPane detailPane) {
|
||||||
|
Component parent = detailPane.getParent();
|
||||||
|
while (parent != null) {
|
||||||
|
if (parent instanceof LayoutRegion lr)
|
||||||
|
return !lr.isOpen();
|
||||||
|
parent = parent.getParent();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shorten status text to a more presentable length.
|
* Shorten status text to a more presentable length.
|
||||||
* @param statusText
|
* @param statusText
|
||||||
|
@ -812,7 +829,7 @@ public class DetailPane extends Panel implements EventListener<Event>, IdSpace {
|
||||||
* @param msg
|
* @param msg
|
||||||
*/
|
*/
|
||||||
private void showPopup(boolean error, String msg) {
|
private void showPopup(boolean error, String msg) {
|
||||||
Clients.showNotification(buildNotificationText(msg), "error", findTabpanel(this), "at_pointer", 3500, true);
|
Clients.showNotification(buildNotificationText(msg), "error", null, "at_pointer", 3500, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1065,7 +1082,7 @@ public class DetailPane extends Panel implements EventListener<Event>, IdSpace {
|
||||||
private Component findTabpanel(Component comp) {
|
private Component findTabpanel(Component comp) {
|
||||||
Component parent = comp.getParent();
|
Component parent = comp.getParent();
|
||||||
while (parent != null) {
|
while (parent != null) {
|
||||||
if (parent instanceof Tabpanel)
|
if (parent instanceof org.adempiere.webui.component.Tabpanel)
|
||||||
return parent;
|
return parent;
|
||||||
|
|
||||||
parent = parent.getParent();
|
parent = parent.getParent();
|
||||||
|
|
Loading…
Reference in New Issue