IDEMPIERE-17 Value Preference window showing encrypted content to user. Obscure and encrypted field shouldn't have value preference menu. Refactor context menu implementation for field editor.

(transplanted from ac1d6dccd43a8fd11c5d4d30572990614209c1a2)
This commit is contained in:
Heng Sin Low 2011-09-10 18:21:11 +08:00
parent 97896c1550
commit 8c13dbc2fb
16 changed files with 149 additions and 167 deletions

View File

@ -45,8 +45,6 @@ public class WAccountEditor extends WEditor implements ContextMenuListener
private Object m_value; private Object m_value;
private WEditorPopupMenu popupMenu;
/** Logger */ /** Logger */
private static CLogger log = CLogger.getCLogger(WAccountEditor.class); private static CLogger log = CLogger.getCLogger(WAccountEditor.class);
@ -59,10 +57,7 @@ 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);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
@ -90,7 +85,7 @@ public class WAccountEditor extends WEditor implements ContextMenuListener
{ {
return getComponent().getText(); return getComponent().getText();
} }
/** /**
* Button - Start Dialog * Button - Start Dialog
*/ */

View File

@ -6,10 +6,14 @@ import java.text.DateFormat;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.EditorBox; import org.adempiere.webui.component.EditorBox;
import org.adempiere.webui.event.ContextMenuEvent;
import org.adempiere.webui.event.ContextMenuListener;
import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.window.InfoSchedule; import org.adempiere.webui.window.InfoSchedule;
import org.adempiere.webui.window.WAssignmentDialog; import org.adempiere.webui.window.WAssignmentDialog;
import org.adempiere.webui.window.WFieldRecordInfo;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.MResourceAssignment; import org.compiere.model.MResourceAssignment;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
@ -19,7 +23,7 @@ import org.compiere.util.Env;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
public class WAssignmentEditor extends WEditor { public class WAssignmentEditor extends WEditor implements ContextMenuListener {
private final static CLogger log = CLogger.getCLogger(WAssignmentEditor.class); private final static CLogger log = CLogger.getCLogger(WAssignmentEditor.class);
@ -31,7 +35,7 @@ public class WAssignmentEditor extends WEditor {
private DateFormat m_dateFormat = DisplayType.getDateFormat(DisplayType.DateTime); private DateFormat m_dateFormat = DisplayType.getDateFormat(DisplayType.DateTime);
private NumberFormat m_qtyFormat = DisplayType.getNumberFormat(DisplayType.Quantity); private NumberFormat m_qtyFormat = DisplayType.getNumberFormat(DisplayType.Quantity);
public WAssignmentEditor(GridField gridField) { public WAssignmentEditor(GridField gridField) {
super(new EditorBox(), gridField); super(new EditorBox(), gridField);
@ -41,6 +45,11 @@ public class WAssignmentEditor extends WEditor {
private void initComponents() { private void initComponents() {
getComponent().getTextbox().setReadonly(true); getComponent().getTextbox().setReadonly(true);
getComponent().setButtonImage("images/Assignment10.png"); getComponent().setButtonImage("images/Assignment10.png");
popupMenu = new WEditorPopupMenu(true, false, false);
popupMenu.addMenuListener(this);
addChangeLogMenu(popupMenu);
getComponent().setContext(popupMenu.getId());
} }
@ -123,7 +132,7 @@ public class WAssignmentEditor extends WEditor {
} }
} }
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
// //
if (Events.ON_CLICK.equalsIgnoreCase(event.getName())) if (Events.ON_CLICK.equalsIgnoreCase(event.getName()))
@ -163,4 +172,20 @@ public class WAssignmentEditor extends WEditor {
} }
} }
@Override
public void onMenu(ContextMenuEvent evt) {
if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent()))
{
WFieldRecordInfo.start(gridField);
} else if (WEditorPopupMenu.ZOOM_EVENT.equals(evt.getContextEvent()))
{
actionZoom();
}
}
private void actionZoom() {
AEnv.zoom(gridField.getGridTab().getAD_Table_ID(), (Integer)getValue());
}
} }

View File

@ -20,7 +20,7 @@ package org.adempiere.webui.editor;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.ValuePreference;
import org.adempiere.webui.component.Datebox; import org.adempiere.webui.component.Datebox;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
import org.adempiere.webui.event.ContextMenuListener; import org.adempiere.webui.event.ContextMenuListener;
@ -28,8 +28,6 @@ import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.window.WFieldRecordInfo; import org.adempiere.webui.window.WFieldRecordInfo;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DisplayType;
import org.compiere.util.Env;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
@ -51,8 +49,7 @@ public class WDateEditor extends WEditor implements ContextMenuListener
} }
private Timestamp oldValue = new Timestamp(0); private Timestamp oldValue = new Timestamp(0);
private WEditorPopupMenu popupMenu;
/** /**
* *
* @param gridField * @param gridField
@ -106,15 +103,13 @@ public class WDateEditor extends WEditor implements ContextMenuListener
private void init() private void init()
{ {
popupMenu = new WEditorPopupMenu(false, false, true); popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
popupMenu.addMenuListener(this); popupMenu.addMenuListener(this);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
public void onEvent(Event event) public void onEvent(Event event)
{ {
if (Events.ON_CHANGE.equalsIgnoreCase(event.getName()) || Events.ON_OK.equalsIgnoreCase(event.getName())) if (Events.ON_CHANGE.equalsIgnoreCase(event.getName()) || Events.ON_OK.equalsIgnoreCase(event.getName()))
@ -209,6 +204,12 @@ public class WDateEditor extends WEditor implements ContextMenuListener
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()) && gridField != null)
{
if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue());
return;
}
} }
} }

View File

@ -15,6 +15,7 @@ package org.adempiere.webui.editor;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import org.adempiere.webui.ValuePreference;
import org.adempiere.webui.component.DatetimeBox; import org.adempiere.webui.component.DatetimeBox;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
import org.adempiere.webui.event.ContextMenuListener; import org.adempiere.webui.event.ContextMenuListener;
@ -22,7 +23,6 @@ import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.window.WFieldRecordInfo; import org.adempiere.webui.window.WFieldRecordInfo;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DisplayType;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
@ -42,7 +42,6 @@ public class WDatetimeEditor extends WEditor implements ContextMenuListener
} }
private Timestamp oldValue = new Timestamp(0); private Timestamp oldValue = new Timestamp(0);
private WEditorPopupMenu popupMenu;
/** /**
* *
@ -98,12 +97,9 @@ public class WDatetimeEditor extends WEditor implements ContextMenuListener
private void init() private void init()
{ {
popupMenu = new WEditorPopupMenu(false, false, true); popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
popupMenu.addMenuListener(this); popupMenu.addMenuListener(this);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
@ -200,6 +196,12 @@ public class WDatetimeEditor extends WEditor implements ContextMenuListener
if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent())) if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent()))
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
}
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{
if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue());
} }
} }
} }

View File

@ -29,15 +29,20 @@ import org.adempiere.webui.component.Datebox;
import org.adempiere.webui.component.Label; import org.adempiere.webui.component.Label;
import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.event.ValueChangeListener; import org.adempiere.webui.event.ValueChangeListener;
import org.adempiere.webui.window.WFieldRecordInfo;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.GridTab; import org.compiere.model.GridTab;
import org.compiere.model.MRole;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
import org.compiere.util.Env;
import org.compiere.util.Msg;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.HtmlBasedComponent; import org.zkoss.zk.ui.HtmlBasedComponent;
import org.zkoss.zk.ui.event.Event; 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.Image; import org.zkoss.zul.Image;
import org.zkoss.zul.Menuitem;
/** /**
* *
@ -74,6 +79,8 @@ public abstract class WEditor implements EventListener, PropertyChangeListener
private String columnName; private String columnName;
protected boolean hasFocus; protected boolean hasFocus;
protected WEditorPopupMenu popupMenu;
/** /**
* *
@ -293,7 +300,7 @@ public abstract class WEditor implements EventListener, PropertyChangeListener
*/ */
public WEditorPopupMenu getPopupMenu() public WEditorPopupMenu getPopupMenu()
{ {
return null; return popupMenu;
} }
/** /**
@ -511,7 +518,34 @@ public abstract class WEditor implements EventListener, PropertyChangeListener
} }
} }
private static final String STYLE_ZOOMABLE_LABEL = "cursor: pointer; text-decoration: underline;"; /**
* @return boolean
*/
protected boolean isShowPreference() {
return MRole.getDefault().isShowPreference() && gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn();
}
/**
* @param popupMenu
*/
protected void addChangeLogMenu(WEditorPopupMenu popupMenu) {
if (popupMenu != null && gridField != null && gridField.getGridTab() != null)
{
WFieldRecordInfo.addMenu(popupMenu);
}
}
/**
* @param popupMenu
*/
protected void addTextEditorMenu(WEditorPopupMenu popupMenu) {
Menuitem editor = new Menuitem(Msg.getMsg(Env.getCtx(), "Editor"), "images/Editor16.png");
editor.setAttribute("EVENT", WEditorPopupMenu.EDITOR_EVENT);
editor.addEventListener(Events.ON_CLICK, popupMenu);
popupMenu.appendChild(editor);
}
private static final String STYLE_ZOOMABLE_LABEL = "cursor: pointer; text-decoration: underline;";
private static final String STYLE_NORMAL_LABEL = "color: black;"; private static final String STYLE_NORMAL_LABEL = "color: black;";
private static final String STYLE_EMPTY_MANDATORY_LABEL = "color: red;"; private static final String STYLE_EMPTY_MANDATORY_LABEL = "color: red;";
} }

View File

@ -49,6 +49,7 @@ public class WEditorPopupMenu extends Menupopup implements EventListener
public static final String NEW_EVENT = "NEW_RECORD"; public static final String NEW_EVENT = "NEW_RECORD";
public static final String UPDATE_EVENT = "UPDATE_RECORD"; // Elaine 2009/02/16 - update record public static final String UPDATE_EVENT = "UPDATE_RECORD"; // Elaine 2009/02/16 - update record
public static final String CHANGE_LOG_EVENT = "CHANGE_LOG"; public static final String CHANGE_LOG_EVENT = "CHANGE_LOG";
public static final String EDITOR_EVENT = "EDITOR";
private boolean newEnabled = true; private boolean newEnabled = true;
private boolean updateEnabled = true; // Elaine 2009/02/16 - update record private boolean updateEnabled = true; // Elaine 2009/02/16 - update record

View File

@ -20,6 +20,7 @@ package org.adempiere.webui.editor;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import org.adempiere.webui.ValuePreference;
import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.Locationbox; import org.adempiere.webui.component.Locationbox;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
@ -51,8 +52,6 @@ public class WLocationEditor extends WEditor implements EventListener, PropertyC
private MLocationLookup m_Location; private MLocationLookup m_Location;
private MLocation m_value; private MLocation m_value;
private WEditorPopupMenu popupMenu;
/** /**
* Constructor without GridField * Constructor without GridField
* @param columnName column name * @param columnName column name
@ -85,12 +84,9 @@ public class WLocationEditor extends WEditor implements EventListener, PropertyC
{ {
getComponent().setButtonImage("/images/Location10.png"); getComponent().setButtonImage("/images/Location10.png");
popupMenu = new WEditorPopupMenu(false, false, true); popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
popupMenu.addMenuListener(this); popupMenu.addMenuListener(this);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
@ -207,5 +203,10 @@ public class WLocationEditor extends WEditor implements EventListener, PropertyC
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{
if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue());
}
} }
} }

View File

@ -24,6 +24,7 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.webui.ValuePreference;
import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.EditorBox; import org.adempiere.webui.component.EditorBox;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
@ -61,8 +62,6 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh
private Object m_value; private Object m_value;
private int m_WindowNo; private int m_WindowNo;
private WEditorPopupMenu popupMenu;
private static CLogger log = CLogger.getCLogger(WLocatorEditor.class); private static CLogger log = CLogger.getCLogger(WLocatorEditor.class);
/** /**
* IDE Constructor * IDE Constructor
@ -113,11 +112,8 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh
if (gridField != null) if (gridField != null)
{ {
popupMenu = new WEditorPopupMenu(true, true, false); popupMenu = new WEditorPopupMenu(true, true, isShowPreference());
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
} }
@ -254,11 +250,6 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh
} }
} }
public WEditorPopupMenu getPopupMenu()
{
return popupMenu;
}
public void actionRefresh() public void actionRefresh()
{ {
if (m_mLocator != null) if (m_mLocator != null)
@ -302,6 +293,11 @@ public class WLocatorEditor extends WEditor implements EventListener, PropertyCh
else if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent())) else if (WEditorPopupMenu.CHANGE_LOG_EVENT.equals(evt.getContextEvent()))
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
}
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{
if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue());
} }
} }

View File

@ -28,7 +28,6 @@ import org.adempiere.webui.event.ContextMenuListener;
import org.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.window.WFieldRecordInfo; import org.adempiere.webui.window.WFieldRecordInfo;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.MRole;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
@ -56,8 +55,6 @@ public class WNumberEditor extends WEditor implements ContextMenuListener
private int displayType; private int displayType;
private WEditorPopupMenu popupMenu;
public WNumberEditor() public WNumberEditor()
{ {
this("Number", false, false, true, DisplayType.Number, ""); this("Number", false, false, true, DisplayType.Number, "");
@ -123,25 +120,11 @@ public class WNumberEditor extends WEditor implements ContextMenuListener
DecimalFormat format = DisplayType.getNumberFormat(displayType, AEnv.getLanguage(Env.getCtx())); DecimalFormat format = DisplayType.getNumberFormat(displayType, AEnv.getLanguage(Env.getCtx()));
getComponent().getDecimalbox().setFormat(format.toPattern()); getComponent().getDecimalbox().setFormat(format.toPattern());
boolean valuePreference = false; popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
if (gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn()) addChangeLogMenu(popupMenu);
{
valuePreference = true;
}
popupMenu = new WEditorPopupMenu(false, false, valuePreference);
if (gridField != null && gridField.getGridTab() != null)
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
@Override
public WEditorPopupMenu getPopupMenu() {
return popupMenu;
}
/** /**
* Event handler * Event handler
* @param event * @param event
@ -228,9 +211,9 @@ public class WNumberEditor extends WEditor implements ContextMenuListener
*/ */
public void onMenu(ContextMenuEvent evt) public void onMenu(ContextMenuEvent evt)
{ {
if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()) && gridField != null) if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{ {
if (MRole.getDefault().isShowPreference() && !gridField.isEncrypted() && !gridField.isEncryptedColumn()) if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue()); ValuePreference.start (this.getGridField(), getValue());
return; return;
} }

View File

@ -49,8 +49,6 @@ public class WPAttributeEditor extends WEditor implements ContextMenuListener
private int m_C_BPartner_ID; private int m_C_BPartner_ID;
private WEditorPopupMenu popupMenu;
private Object m_value; private Object m_value;
private GridTab m_GridTab; private GridTab m_GridTab;
@ -76,19 +74,11 @@ 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.getId()); getComponent().getTextbox().setContext(popupMenu.getId());
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().getTextbox().setReadonly(true); getComponent().getTextbox().setReadonly(true);
} }
@Override
public WEditorPopupMenu getPopupMenu() {
return popupMenu;
}
@Override @Override
public PAttributebox getComponent() public PAttributebox getComponent()
{ {

View File

@ -61,7 +61,6 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
private String m_tableName = null; private String m_tableName = null;
private String m_keyColumnName = null; private String m_keyColumnName = null;
private String columnName; private String columnName;
private WEditorPopupMenu popupMenu;
private Object value; private Object value;
private InfoPanel infoPanel = null; private InfoPanel infoPanel = null;
@ -147,41 +146,28 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
{ {
columnName = this.getColumnName(); columnName = this.getColumnName();
boolean valuePreference = false;
if (gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn())
{
valuePreference = true;
}
if (columnName.equals("C_BPartner_ID")) if (columnName.equals("C_BPartner_ID"))
{ {
popupMenu = new WEditorPopupMenu(true, true, valuePreference, true, true); popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), true, true);
getComponent().setButtonImage("/images/BPartner10.png"); getComponent().setButtonImage("/images/BPartner10.png");
} }
else if (columnName.equals("M_Product_ID")) else if (columnName.equals("M_Product_ID"))
{ {
popupMenu = new WEditorPopupMenu(true, true, valuePreference, false, false); popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), false, false);
getComponent().setButtonImage("/images/Product10.png"); getComponent().setButtonImage("/images/Product10.png");
} }
else else
{ {
popupMenu = new WEditorPopupMenu(true, true, valuePreference, false, false); popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), false, false);
getComponent().setButtonImage("/images/PickOpen10.png"); getComponent().setButtonImage("/images/PickOpen10.png");
} }
getComponent().getTextbox().setContext(popupMenu.getId()); getComponent().getTextbox().setContext(popupMenu.getId());
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
return; return;
} }
public WEditorPopupMenu getPopupMenu()
{
return popupMenu;
}
@Override @Override
public void setValue(Object value) public void setValue(Object value)
{ {
@ -282,7 +268,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent())) else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{ {
if (MRole.getDefault().isShowPreference() && gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn()) if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue()); ValuePreference.start (this.getGridField(), getValue());
return; return;
} }

View File

@ -30,13 +30,9 @@ import org.adempiere.webui.session.SessionManager;
import org.adempiere.webui.window.WFieldRecordInfo; import org.adempiere.webui.window.WFieldRecordInfo;
import org.adempiere.webui.window.WTextEditorDialog; import org.adempiere.webui.window.WTextEditorDialog;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.MRole;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
import org.compiere.util.Env;
import org.compiere.util.Msg;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.Menuitem;
/** /**
* *
@ -46,14 +42,10 @@ import org.zkoss.zul.Menuitem;
*/ */
public class WStringEditor extends WEditor implements ContextMenuListener public class WStringEditor extends WEditor implements ContextMenuListener
{ {
private static final String EDITOR_EVENT = "EDITOR";
private static final String[] LISTENER_EVENTS = {Events.ON_CHANGE, Events.ON_OK}; private static final String[] LISTENER_EVENTS = {Events.ON_CHANGE, Events.ON_OK};
private String oldValue; private String oldValue;
private WEditorPopupMenu popupMenu;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private boolean tableEditor = false; private boolean tableEditor = false;
@ -141,21 +133,9 @@ public class WStringEditor extends WEditor implements ContextMenuListener
if (getComponent() instanceof Textbox) if (getComponent() instanceof Textbox)
((Textbox)getComponent()).setObscureType(obscureType); ((Textbox)getComponent()).setObscureType(obscureType);
boolean valuePreference = false; popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
if (gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn()) addTextEditorMenu(popupMenu);
{ addChangeLogMenu(popupMenu);
valuePreference = true;
}
popupMenu = new WEditorPopupMenu(false, false, valuePreference);
Menuitem editor = new Menuitem(Msg.getMsg(Env.getCtx(), "Editor"), "images/Editor16.png");
editor.setAttribute("EVENT", EDITOR_EVENT);
editor.addEventListener(Events.ON_CLICK, popupMenu);
popupMenu.appendChild(editor);
if (gridField != null && gridField.getGridTab() != null)
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
@ -172,7 +152,7 @@ public class WStringEditor extends WEditor implements ContextMenuListener
} }
} }
public void onEvent(Event event) public void onEvent(Event event)
{ {
if (Events.ON_CHANGE.equals(event.getName()) || Events.ON_OK.equals(event.getName())) if (Events.ON_CHANGE.equals(event.getName()) || Events.ON_OK.equals(event.getName()))
{ {
@ -233,20 +213,15 @@ public class WStringEditor extends WEditor implements ContextMenuListener
return LISTENER_EVENTS; return LISTENER_EVENTS;
} }
public WEditorPopupMenu getPopupMenu()
{
return popupMenu;
}
public void onMenu(ContextMenuEvent evt) public void onMenu(ContextMenuEvent evt)
{ {
if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent())) if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{ {
if (MRole.getDefault().isShowPreference() && gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn()) if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue()); ValuePreference.start (this.getGridField(), getValue());
return; return;
} }
else if (EDITOR_EVENT.equals(evt.getContextEvent())) else if (WEditorPopupMenu.EDITOR_EVENT.equals(evt.getContextEvent()))
{ {
WTextEditorDialog dialog = new WTextEditorDialog(this.getColumnName(), getDisplay(), WTextEditorDialog dialog = new WTextEditorDialog(this.getColumnName(), getDisplay(),
isReadWrite(), gridField.getFieldLength()); isReadWrite(), gridField.getFieldLength());

View File

@ -31,7 +31,6 @@ import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.window.WFieldRecordInfo; import org.adempiere.webui.window.WFieldRecordInfo;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.Lookup; import org.compiere.model.Lookup;
import org.compiere.model.MRole;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
import org.compiere.util.Env; import org.compiere.util.Env;
@ -63,7 +62,6 @@ ContextMenuListener, IZoomableEditor
private Lookup lookup; private Lookup lookup;
private Object oldValue; private Object oldValue;
private WEditorPopupMenu popupMenu;
public WTableDirEditor(GridField gridField) public WTableDirEditor(GridField gridField)
{ {
@ -144,16 +142,8 @@ ContextMenuListener, IZoomableEditor
if (gridField != null) if (gridField != null)
{ {
boolean valuePreference = false; popupMenu = new WEditorPopupMenu(zoom, true, isShowPreference());
if (!gridField.isEncrypted() && !gridField.isEncryptedColumn()) addChangeLogMenu(popupMenu);
{
valuePreference = true;
}
popupMenu = new WEditorPopupMenu(zoom, true, valuePreference);
if (gridField != null && gridField.getGridTab() != null)
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
} }
@ -364,11 +354,6 @@ ContextMenuListener, IZoomableEditor
public void intervalRemoved(ListDataEvent e) public void intervalRemoved(ListDataEvent e)
{} {}
public WEditorPopupMenu getPopupMenu()
{
return popupMenu;
}
public void actionRefresh() public void actionRefresh()
{ {
if (lookup != null) if (lookup != null)
@ -405,7 +390,7 @@ ContextMenuListener, IZoomableEditor
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent())) else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{ {
if (MRole.getDefault().isShowPreference() && gridField != null && !gridField.isEncrypted() && !gridField.isEncryptedColumn()) if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue()); ValuePreference.start (this.getGridField(), getValue());
return; return;
} }

View File

@ -17,6 +17,7 @@ import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.webui.ValuePreference;
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.adempiere.webui.event.ValueChangeEvent; import org.adempiere.webui.event.ValueChangeEvent;
@ -42,7 +43,6 @@ public class WTimeEditor extends WEditor implements ContextMenuListener
} }
private Timestamp oldValue = new Timestamp(0); private Timestamp oldValue = new Timestamp(0);
private WEditorPopupMenu popupMenu;
/** /**
* *
@ -98,12 +98,9 @@ public class WTimeEditor extends WEditor implements ContextMenuListener
private void init() private void init()
{ {
popupMenu = new WEditorPopupMenu(false, false, true); popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
popupMenu.addMenuListener(this); popupMenu.addMenuListener(this);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
@ -200,5 +197,12 @@ public class WTimeEditor extends WEditor implements ContextMenuListener
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{
if (isShowPreference())
ValuePreference.start (this.getGridField(), getValue());
return;
}
} }
} }

View File

@ -17,6 +17,7 @@
package org.adempiere.webui.editor; package org.adempiere.webui.editor;
import org.adempiere.webui.ValuePreference;
import org.adempiere.webui.component.Urlbox; import org.adempiere.webui.component.Urlbox;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
import org.adempiere.webui.event.ContextMenuListener; import org.adempiere.webui.event.ContextMenuListener;
@ -32,19 +33,15 @@ public class WUrlEditor extends WEditor implements ContextMenuListener
{ {
private static final String[] LISTENER_EVENTS = {Events.ON_CLICK, Events.ON_CHANGE, Events.ON_OK}; private static final String[] LISTENER_EVENTS = {Events.ON_CLICK, Events.ON_CHANGE, Events.ON_OK};
private String oldValue; private String oldValue;
private WEditorPopupMenu popupMenu;
public WUrlEditor(GridField gridField) public WUrlEditor(GridField gridField)
{ {
super(new Urlbox(), gridField); super(new Urlbox(), gridField);
getComponent().setButtonImage("/images/Online10.png"); getComponent().setButtonImage("/images/Online10.png");
popupMenu = new WEditorPopupMenu(false, false, true); popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
popupMenu.addMenuListener(this); popupMenu.addMenuListener(this);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
@ -143,6 +140,11 @@ public class WUrlEditor extends WEditor implements ContextMenuListener
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{
if (isShowPreference())
ValuePreference.start(getGridField(), getValue());
}
} }

View File

@ -20,6 +20,7 @@ package org.adempiere.webui.editor;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.webui.ValuePreference;
import org.adempiere.webui.component.Checkbox; import org.adempiere.webui.component.Checkbox;
import org.adempiere.webui.event.ContextMenuEvent; import org.adempiere.webui.event.ContextMenuEvent;
import org.adempiere.webui.event.ContextMenuListener; import org.adempiere.webui.event.ContextMenuListener;
@ -49,7 +50,6 @@ public class WYesNoEditor extends WEditor implements ContextMenuListener
} }
private boolean oldValue = false; private boolean oldValue = false;
private WEditorPopupMenu popupMenu;
public WYesNoEditor(GridField gridField) public WYesNoEditor(GridField gridField)
{ {
@ -73,16 +73,13 @@ public class WYesNoEditor extends WEditor implements ContextMenuListener
label.setValue(""); label.setValue("");
label.setTooltiptext(""); label.setTooltiptext("");
popupMenu = new WEditorPopupMenu(false, false, true); popupMenu = new WEditorPopupMenu(false, false, isShowPreference());
popupMenu.addMenuListener(this); popupMenu.addMenuListener(this);
if (gridField != null && gridField.getGridTab() != null) addChangeLogMenu(popupMenu);
{
WFieldRecordInfo.addMenu(popupMenu);
}
getComponent().setContext(popupMenu.getId()); getComponent().setContext(popupMenu.getId());
} }
public void onEvent(Event event) public void onEvent(Event event)
{ {
if (Events.ON_CHECK.equalsIgnoreCase(event.getName())) if (Events.ON_CHECK.equalsIgnoreCase(event.getName()))
{ {
@ -167,6 +164,11 @@ public class WYesNoEditor extends WEditor implements ContextMenuListener
{ {
WFieldRecordInfo.start(gridField); WFieldRecordInfo.start(gridField);
} }
else if (WEditorPopupMenu.PREFERENCE_EVENT.equals(evt.getContextEvent()))
{
if (isShowPreference())
ValuePreference.start(getGridField(), getValue());
}
} }
} }