IDEMPIERE-6172 Open from a highlighted window, DateRangePicker popup will auto close when selecting an item in dropdown list (#2400)
- Implement workaround for highlighted+popup+combobox
This commit is contained in:
parent
061ef5fec4
commit
4e250b6a52
|
|
@ -28,10 +28,12 @@ import java.util.Properties;
|
||||||
|
|
||||||
import org.adempiere.webui.LayoutUtils;
|
import org.adempiere.webui.LayoutUtils;
|
||||||
import org.adempiere.webui.component.ToolBarButton;
|
import org.adempiere.webui.component.ToolBarButton;
|
||||||
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.editor.WDateEditor;
|
import org.adempiere.webui.editor.WDateEditor;
|
||||||
import org.adempiere.webui.editor.WEditor;
|
import org.adempiere.webui.editor.WEditor;
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -74,9 +76,24 @@ public class DateRangeButton extends ToolBarButton implements WEditor.DynamicDis
|
||||||
setImage(ThemeManager.getThemeResource(IMAGES_CONTEXT_HISTORY_PNG));
|
setImage(ThemeManager.getThemeResource(IMAGES_CONTEXT_HISTORY_PNG));
|
||||||
|
|
||||||
DateRangePicker popup = new DateRangePicker(editor, editor2);
|
DateRangePicker popup = new DateRangePicker(editor, editor2);
|
||||||
this.setTooltip(popup);
|
|
||||||
this.addEventListener(Events.ON_CLICK, event -> {
|
this.addEventListener(Events.ON_CLICK, event -> {
|
||||||
|
Window window = null;
|
||||||
|
Component component = this.getParent();
|
||||||
|
while(component != null) {
|
||||||
|
if (component instanceof Window w) {
|
||||||
|
window = w;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
component = component.getParent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Popup must be a child of highlighted parent, otherwise combobox wouldn't work
|
||||||
|
// https://tracker.zkoss.org/browse/ZK-5740
|
||||||
|
if (window != null && "highlighted".equals(window.getMode())) {
|
||||||
|
window.appendChild(popup);
|
||||||
|
} else {
|
||||||
popup.setPage(this.getPage());
|
popup.setPage(this.getPage());
|
||||||
|
}
|
||||||
popup.open(this, "after_center");
|
popup.open(this, "after_center");
|
||||||
LayoutUtils.autoDetachOnClose(popup);
|
LayoutUtils.autoDetachOnClose(popup);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue