IDEMPIERE-185 Zk6: Context menu not working after migration to Zk6
This commit is contained in:
parent
2148f8bf55
commit
2e6f20aabd
|
@ -54,6 +54,7 @@ import org.zkoss.zul.RendererCtrl;
|
||||||
import org.zkoss.zul.Row;
|
import org.zkoss.zul.Row;
|
||||||
import org.zkoss.zul.RowRenderer;
|
import org.zkoss.zul.RowRenderer;
|
||||||
import org.zkoss.zul.RowRendererExt;
|
import org.zkoss.zul.RowRendererExt;
|
||||||
|
import org.zkoss.zul.impl.XulElement;
|
||||||
import org.zkoss.zhtml.Label;
|
import org.zkoss.zhtml.Label;
|
||||||
import org.zkoss.zhtml.Text;
|
import org.zkoss.zhtml.Text;
|
||||||
|
|
||||||
|
@ -481,7 +482,7 @@ public class GridTabRowRenderer implements RowRenderer<Object[]>, RowRendererExt
|
||||||
org.zkoss.zul.Column column = (org.zkoss.zul.Column) columns.getChildren().get(colIndex);
|
org.zkoss.zul.Column column = (org.zkoss.zul.Column) columns.getChildren().get(colIndex);
|
||||||
if (column.isVisible()) {
|
if (column.isVisible()) {
|
||||||
Div div = (Div) currentRow.getChildren().get(colIndex);
|
Div div = (Div) currentRow.getChildren().get(colIndex);
|
||||||
div.getFirstChild().detach();
|
div.getChildren().clear();
|
||||||
WEditor editor = getEditorCell(gridField[i]);
|
WEditor editor = getEditorCell(gridField[i]);
|
||||||
div.appendChild(editor.getComponent());
|
div.appendChild(editor.getComponent());
|
||||||
WEditorPopupMenu popupMenu = editor.getPopupMenu();
|
WEditorPopupMenu popupMenu = editor.getPopupMenu();
|
||||||
|
@ -491,6 +492,7 @@ public class GridTabRowRenderer implements RowRenderer<Object[]>, RowRendererExt
|
||||||
popupMenu.addMenuListener((ContextMenuListener)editor);
|
popupMenu.addMenuListener((ContextMenuListener)editor);
|
||||||
div.appendChild(popupMenu);
|
div.appendChild(popupMenu);
|
||||||
}
|
}
|
||||||
|
popupMenu.addContextElement((XulElement) editor.getComponent());
|
||||||
|
|
||||||
//check context
|
//check context
|
||||||
if (!gridField[i].isDisplayed(true))
|
if (!gridField[i].isDisplayed(true))
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Copyright (C) 2012 Low Heng Sin *
|
||||||
|
* Copyright (C) 2012 www.idempiere.org *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.adempiere.webui.component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.zkoss.zk.ui.Page;
|
||||||
|
import org.zkoss.zul.impl.XulElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author hengsin
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Menupopup extends org.zkoss.zul.Menupopup {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* generated serial version id
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -4929397362586559388L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* listo of xulelement that use this as the context menu
|
||||||
|
*/
|
||||||
|
private List<XulElement> elementList = new ArrayList<XulElement>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* add xul element that want to use this as the context menu
|
||||||
|
* @param element
|
||||||
|
*/
|
||||||
|
public void addContextElement(XulElement element) {
|
||||||
|
elementList.add(element);
|
||||||
|
if (this.getPage() != null) {
|
||||||
|
element.setContext(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* stop the xul element from using this as the context menu
|
||||||
|
* @param element
|
||||||
|
* @return true if exists and remove from the added xul element list
|
||||||
|
*/
|
||||||
|
public boolean removeContextElement(XulElement element) {
|
||||||
|
if (elementList.remove(element)) {
|
||||||
|
element.setContext((String)null);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageAttached(Page newpage, Page oldpage) {
|
||||||
|
super.onPageAttached(newpage, oldpage);
|
||||||
|
for(XulElement e : elementList) {
|
||||||
|
e.setContext(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageDetached(Page page) {
|
||||||
|
super.onPageDetached(page);
|
||||||
|
for(XulElement e : elementList) {
|
||||||
|
e.setContext((String)null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -58,7 +58,6 @@ public class WAccountEditor extends WEditor implements ContextMenuListener
|
||||||
popupMenu = new WEditorPopupMenu(false, false, true);
|
popupMenu = new WEditorPopupMenu(false, false, true);
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -49,7 +49,6 @@ public class WAssignmentEditor extends WEditor implements ContextMenuListener {
|
||||||
popupMenu = new WEditorPopupMenu(true, false, false);
|
popupMenu = new WEditorPopupMenu(true, false, false);
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,6 @@ public class WDateEditor extends WEditor implements ContextMenuListener
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,6 @@ public class WDatetimeEditor extends WEditor implements ContextMenuListener
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEvent(Event event)
|
public void onEvent(Event event)
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.adempiere.webui.editor;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.adempiere.webui.component.Menupopup;
|
||||||
import org.adempiere.webui.event.ContextMenuEvent;
|
import org.adempiere.webui.event.ContextMenuEvent;
|
||||||
import org.adempiere.webui.event.ContextMenuListener;
|
import org.adempiere.webui.event.ContextMenuListener;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -28,7 +29,6 @@ import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zul.Menuitem;
|
import org.zkoss.zul.Menuitem;
|
||||||
import org.zkoss.zul.Menupopup;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -36,7 +36,7 @@ import org.zkoss.zul.Menupopup;
|
||||||
* @date Mar 25, 2007
|
* @date Mar 25, 2007
|
||||||
* @version $Revision: 0.10 $
|
* @version $Revision: 0.10 $
|
||||||
*/
|
*/
|
||||||
public class WEditorPopupMenu extends Menupopup implements EventListener
|
public class WEditorPopupMenu extends Menupopup implements EventListener<Event>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -87,7 +87,6 @@ public class WLocationEditor extends WEditor implements EventListener<Event>, Pr
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -114,7 +114,6 @@ public class WLocatorEditor extends WEditor implements EventListener<Event>, Pro
|
||||||
{
|
{
|
||||||
popupMenu = new WEditorPopupMenu(true, true, isShowPreference());
|
popupMenu = new WEditorPopupMenu(true, true, isShowPreference());
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,7 +122,6 @@ public class WNumberEditor extends WEditor implements ContextMenuListener
|
||||||
|
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -73,7 +73,6 @@ public class WPAttributeEditor extends WEditor implements ContextMenuListener
|
||||||
|
|
||||||
// Popup
|
// Popup
|
||||||
popupMenu = new WEditorPopupMenu(true, false, false);
|
popupMenu = new WEditorPopupMenu(true, false, false);
|
||||||
getComponent().getTextbox().setContext(popupMenu.getUuid());
|
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
|
|
||||||
getComponent().getTextbox().setReadonly(true);
|
getComponent().getTextbox().setReadonly(true);
|
||||||
|
|
|
@ -162,7 +162,6 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
getComponent().setButtonImage("/images/PickOpen10.png");
|
getComponent().setButtonImage("/images/PickOpen10.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
getComponent().getTextbox().setContext(popupMenu.getUuid());
|
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -137,8 +137,6 @@ public class WStringEditor extends WEditor implements ContextMenuListener
|
||||||
addTextEditorMenu(popupMenu);
|
addTextEditorMenu(popupMenu);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
|
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
|
|
||||||
if (gridField.isAutocomplete()) {
|
if (gridField.isAutocomplete()) {
|
||||||
Combobox combo = (Combobox)getComponent();
|
Combobox combo = (Combobox)getComponent();
|
||||||
combo.setAutodrop(true);
|
combo.setAutodrop(true);
|
||||||
|
|
|
@ -144,7 +144,6 @@ ContextMenuListener, IZoomableEditor
|
||||||
{
|
{
|
||||||
popupMenu = new WEditorPopupMenu(zoom, true, isShowPreference());
|
popupMenu = new WEditorPopupMenu(zoom, true, isShowPreference());
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,6 @@ public class WTimeEditor extends WEditor implements ContextMenuListener
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEvent(Event event)
|
public void onEvent(Event event)
|
||||||
|
|
|
@ -42,7 +42,6 @@ public class WUrlEditor extends WEditor implements ContextMenuListener
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,6 @@ public class WYesNoEditor extends WEditor implements ContextMenuListener
|
||||||
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
|
||||||
popupMenu.addMenuListener(this);
|
popupMenu.addMenuListener(this);
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
getComponent().setContext(popupMenu.getUuid());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEvent(Event event)
|
public void onEvent(Event event)
|
||||||
|
|
|
@ -79,6 +79,7 @@ import org.zkoss.zul.DefaultTreeNode;
|
||||||
import org.zkoss.zul.Space;
|
import org.zkoss.zul.Space;
|
||||||
import org.zkoss.zul.Treeitem;
|
import org.zkoss.zul.Treeitem;
|
||||||
import org.zkoss.zul.impl.InputElement;
|
import org.zkoss.zul.impl.InputElement;
|
||||||
|
import org.zkoss.zul.impl.XulElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -488,7 +489,11 @@ DataStatusListener, IADTabpanel, VetoableChangeListener
|
||||||
label.addEventListener(Events.ON_CLICK, new ZoomListener((IZoomableEditor) editor));
|
label.addEventListener(Events.ON_CLICK, new ZoomListener((IZoomableEditor) editor));
|
||||||
}
|
}
|
||||||
|
|
||||||
label.setContext(popupMenu.getUuid());
|
popupMenu.addContextElement(label);
|
||||||
|
if (editor.getComponent() instanceof XulElement)
|
||||||
|
{
|
||||||
|
popupMenu.addContextElement((XulElement) editor.getComponent());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue