IDEMPIERE-1087 Process Parameters don't have contextual menu (right click) / based on patch from Juliana Corredor
This commit is contained in:
parent
0e80967351
commit
339d10e787
|
@ -450,13 +450,15 @@ public class GridField
|
||||||
keyColumn = "AD_EntityType_ID";
|
keyColumn = "AD_EntityType_ID";
|
||||||
if (!keyColumn.endsWith("_ID"))
|
if (!keyColumn.endsWith("_ID"))
|
||||||
keyColumn += "_ID"; // AD_Language_ID
|
keyColumn += "_ID"; // AD_Language_ID
|
||||||
int Record_ID = Env.getContextAsInt(ctx, m_vo.WindowNo, m_vo.TabNo, keyColumn);
|
if (getGridTab() != null) {
|
||||||
int AD_Table_ID = m_vo.AD_Table_ID;
|
int Record_ID = Env.getContextAsInt(ctx, m_vo.WindowNo, m_vo.TabNo, keyColumn);
|
||||||
if (!MRole.getDefault(ctx, false).canUpdate(
|
int AD_Table_ID = m_vo.AD_Table_ID;
|
||||||
AD_Client_ID, AD_Org_ID, AD_Table_ID, Record_ID, false))
|
if (!MRole.getDefault(ctx, false).canUpdate(
|
||||||
return false;
|
AD_Client_ID, AD_Org_ID, AD_Table_ID, Record_ID, false))
|
||||||
if (!MRole.getDefault(ctx, false).isColumnAccess(AD_Table_ID, m_vo.AD_Column_ID, false))
|
return false;
|
||||||
return false;
|
if (!MRole.getDefault(ctx, false).isColumnAccess(AD_Table_ID, m_vo.AD_Column_ID, false))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do we have a readonly rule
|
// Do we have a readonly rule
|
||||||
|
@ -487,7 +489,7 @@ public class GridField
|
||||||
return true;
|
return true;
|
||||||
// BF [ 2910368 ]
|
// BF [ 2910368 ]
|
||||||
// Record is not Active
|
// Record is not Active
|
||||||
if (checkContext && !Env.getContext(ctx, m_vo.WindowNo,m_vo.TabNo, "IsActive").equals("Y"))
|
if (checkContext && getGridTab() != null && !Env.getContext(ctx, m_vo.WindowNo,m_vo.TabNo, "IsActive").equals("Y"))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// ultimately visibility decides
|
// ultimately visibility decides
|
||||||
|
|
|
@ -29,6 +29,7 @@ import org.adempiere.webui.component.GridFactory;
|
||||||
import org.adempiere.webui.component.Panel;
|
import org.adempiere.webui.component.Panel;
|
||||||
import org.adempiere.webui.component.Row;
|
import org.adempiere.webui.component.Row;
|
||||||
import org.adempiere.webui.component.Rows;
|
import org.adempiere.webui.component.Rows;
|
||||||
|
import org.adempiere.webui.editor.IZoomableEditor;
|
||||||
import org.adempiere.webui.editor.WEditor;
|
import org.adempiere.webui.editor.WEditor;
|
||||||
import org.adempiere.webui.editor.WEditorPopupMenu;
|
import org.adempiere.webui.editor.WEditorPopupMenu;
|
||||||
import org.adempiere.webui.editor.WebEditorFactory;
|
import org.adempiere.webui.editor.WebEditorFactory;
|
||||||
|
@ -54,6 +55,7 @@ import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zul.Div;
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Hbox;
|
import org.zkoss.zul.Hbox;
|
||||||
import org.zkoss.zul.Label;
|
import org.zkoss.zul.Label;
|
||||||
|
import org.zkoss.zul.impl.XulElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process Parameter Panel, based on existing ProcessParameter dialog. -
|
* Process Parameter Panel, based on existing ProcessParameter dialog. -
|
||||||
|
@ -68,7 +70,8 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 7163263872945366389L;
|
private static final long serialVersionUID = -5996487688479454715L;
|
||||||
|
|
||||||
private String width;
|
private String width;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -291,9 +294,25 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
editor.fillHorizontal();
|
editor.fillHorizontal();
|
||||||
// setup editor context menu
|
// setup editor context menu
|
||||||
WEditorPopupMenu popupMenu = editor.getPopupMenu();
|
WEditorPopupMenu popupMenu = editor.getPopupMenu();
|
||||||
if (popupMenu != null) {
|
if (popupMenu != null)
|
||||||
popupMenu.addMenuListener((ContextMenuListener) editor);
|
{
|
||||||
|
popupMenu.addMenuListener((ContextMenuListener)editor);
|
||||||
|
popupMenu.setId(mField.getColumnName()+"-popup");
|
||||||
this.appendChild(popupMenu);
|
this.appendChild(popupMenu);
|
||||||
|
if (!mField.isFieldOnly())
|
||||||
|
{
|
||||||
|
Label label = editor.getLabel();
|
||||||
|
if (popupMenu.isZoomEnabled() && editor instanceof IZoomableEditor)
|
||||||
|
{
|
||||||
|
label.addEventListener(Events.ON_CLICK, new ZoomListener((IZoomableEditor) editor));
|
||||||
|
}
|
||||||
|
|
||||||
|
popupMenu.addContextElement(label);
|
||||||
|
if (editor.getComponent() instanceof XulElement)
|
||||||
|
{
|
||||||
|
popupMenu.addContextElement((XulElement) editor.getComponent());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
m_wEditors.add(editor); // add to Editors
|
m_wEditors.add(editor); // add to Editors
|
||||||
|
@ -634,6 +653,7 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
m_wEditors2.get(i).setVisible(false);
|
m_wEditors2.get(i).setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
editor.updateLabelStyle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -661,5 +681,21 @@ public class ProcessParameterPanel extends Panel implements
|
||||||
m_processInfo = processInfo;
|
m_processInfo = processInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // ProcessParameterPanel
|
static class ZoomListener implements EventListener<Event> {
|
||||||
|
|
||||||
|
private IZoomableEditor searchEditor;
|
||||||
|
|
||||||
|
ZoomListener(IZoomableEditor editor) {
|
||||||
|
searchEditor = editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
if (Events.ON_CLICK.equals(event.getName())) {
|
||||||
|
searchEditor.actionZoom();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} // ProcessParameterPanel
|
||||||
|
|
|
@ -566,7 +566,8 @@ public abstract class WEditor implements EventListener<Event>, PropertyChangeLis
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
protected boolean isShowPreference() {
|
protected boolean isShowPreference() {
|
||||||
return MRole.getDefault().isShowPreference() && gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn();
|
return MRole.getDefault().isShowPreference() && gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn()
|
||||||
|
&& gridTab != null; // don't show preference for process parameters
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue