diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java index 87fd3229db..995edae029 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java @@ -81,7 +81,7 @@ import org.zkoss.zul.Style; import org.zkoss.zul.Window; /** - * + * Entry point for iDempiere web client * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -90,10 +90,10 @@ import org.zkoss.zul.Window; */ public class AdempiereWebUI extends Window implements EventListener, IWebClient { - /** {@link Session} attribute to hold current login user id value **/ + /** {@link Session} attribute to hold current login user id value */ public static final String CHECK_AD_USER_ID_ATTR = "Check_AD_User_ID"; - /** Boolean attribute to indicate the HTTP session of a Desktop have been invalidated **/ + /** Boolean attribute to indicate the HTTP session of a Desktop have been invalidated */ public static final String DESKTOP_SESSION_INVALIDATED_ATTR = "DesktopSessionInvalidated"; /** @@ -101,28 +101,34 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb */ private static final long serialVersionUID = -6725805283410008847L; - /** {@link Desktop} attribute to hold {@link IDesktop} reference **/ + /** {@link Desktop} attribute to hold {@link IDesktop} reference */ public static final String APPLICATION_DESKTOP_KEY = "application.desktop"; + /** org.zkoss.zk.ui.WebApp.name preference from zk.xml */ public static String APP_NAME = null; + /** Match to version at lang-addon.xml */ public static final String UID = "1.0.0"; - /** Attribute for widget instance name, use for Selenium test **/ + /** Attribute for widget instance name, use for Selenium test */ public static final String WIDGET_INSTANCE_NAME = "instanceName"; - /** login and role selection window **/ + /** login and role selection window */ private WLogin loginDesktop; - /** client info from browser **/ + /** client info from browser */ private ClientInfo clientInfo = new ClientInfo(); + /** Language for current session */ private String langSession; + /** Current login user's preference */ private UserPreference userPreference; + /** User preference DB model */ private MUserPreference userPreferences; + /** Global key listener */ private Keylistener keyListener; private static final CLogger logger = CLogger.getCLogger(AdempiereWebUI.class); @@ -130,15 +136,16 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb @Deprecated(forRemoval = true, since = "11") public static final String EXECUTION_CARRYOVER_SESSION_KEY = "execution.carryover"; - /** Session attribute to hold {@link ClientInfo} reference **/ + /** Session attribute to hold {@link ClientInfo} reference */ private static final String CLIENT_INFO = "client.info"; /** the use of event thread have been deprecated, this should always be false **/ private static boolean eventThreadEnabled = false; + /** Parameters map from browser URL */ private ConcurrentMap m_URLParameters; - /** Login completed event **/ + /** Login completed event */ private static final String ON_LOGIN_COMPLETED = "onLoginCompleted"; /** @@ -149,7 +156,7 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb this.setVisible(false); userPreference = new UserPreference(); - // preserve the original URL parameters as is destroyed later on loging + // preserve the original URL parameters as is destroyed later on login m_URLParameters = new ConcurrentHashMap(Executions.getCurrent().getParameterMap()); this.addEventListener(ON_LOGIN_COMPLETED, this); @@ -711,7 +718,7 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb } /** - * change role, asynchronous callback from {@link IDesktop#logout(org.adempiere.util.Callback)} + * change role, asynchronous callback from {@link #changeRole(MUser)} * @param httpSession * @param locale * @param properties diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/DefaultWebAppInit.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/DefaultWebAppInit.java index c84745d2b3..265c4fd974 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/DefaultWebAppInit.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/DefaultWebAppInit.java @@ -29,17 +29,17 @@ import org.zkoss.zk.ui.WebApp; import org.zkoss.zk.ui.util.WebAppInit; /** - * Handle web app init event to sync config store in web config file and database + * Handle web app init event to manage configuration from zk.xml and AD_SysConfig * @author hieplq * */ public class DefaultWebAppInit implements WebAppInit { - + /** AD_SysConfig change listener */ private static SystemConfigHandler systemConfigChangeHandler; protected WebApp webApp = null; /** - * Register listen model change + * Register model change listener */ @Override public void init(WebApp wapp) throws Exception { @@ -67,7 +67,7 @@ public class DefaultWebAppInit implements WebAppInit { } /** - * Process model event of table system config + * Process model event of AD_SysConfig table * @author hieplq * */ @@ -177,7 +177,7 @@ public class DefaultWebAppInit implements WebAppInit { */ protected void afterChange (PO po){ if (po instanceof X_AD_SysConfig){ - // when change ZK_BROWSER_TITLE, set web config to new value + // after change of ZK_BROWSER_TITLE, set app name of webApp to new value if (MSysConfig.ZK_BROWSER_TITLE.equals(((X_AD_SysConfig) po).getName())){ String configAppname = ((X_AD_SysConfig) po).getValue(); webApp.setAppName(configAppname); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/Extensions.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/Extensions.java index 2a62f8cc40..bf10054b7b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/Extensions.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/Extensions.java @@ -57,11 +57,11 @@ import org.zkoss.zk.ui.Component; */ public class Extensions { + /** FormId:IFormFactory Reference. FormId is Java class name, OSGi component name or Equinox extension Id */ private final static CCache> s_formFactoryCache = new CCache<>(null, "IFormFactory", 100, false); /** - * - * @param formId Java class name or equinox extension Id + * @param formId Java class name, OSGi component name or equinox extension Id * @return IFormController instance or null if formId not found */ public static ADForm getForm(String formId) { @@ -91,13 +91,14 @@ public class Extensions { return null; } + /** CacheKey:IProcessParameterListener Reference. CacheKey is ProcessClassName|ColumnName */ private final static CCache>> s_processParameterListenerCache = new CCache<>(null, "List", 100, false); /** * - * @param processClass + * @param processClass Java class name of process * @param columnName - * @return list of parameter listener + * @return list of {@link IProcessParameterListener} */ public static List getProcessParameterListeners(String processClass, String columnName) { String cacheKey = processClass + "|" + columnName; @@ -116,10 +117,10 @@ public class Extensions { return listeners.stream().filter(e -> e.getService() != null).map(e -> e.getService()).collect(Collectors.toCollection(ArrayList::new)); } + /** AD_Tab_ID:ICreateFromFactory Reference */ private final static CCache> s_createFromFactoryCache = new CCache<>(null, "ICreateFromFactory", 100, false); /** - * * @param mTab * @return ICreateFrom instance */ @@ -154,11 +155,12 @@ public class Extensions { return null; } + /** CacheKey:IPaymentFormFactory Reference. CacheKey is AD_Tab_ID|Payment Rule */ private static final CCache> s_paymentFormFactoryCache = new CCache<>(null, "IPaymentFormFactory", 100, false); + /** - * * @param windowNo - * @param mTab + * @param mTab GridTab * @param paymentRule * @return IPaymentForm instance */ @@ -189,10 +191,10 @@ public class Extensions { return null; } + /** URL:IDashboardGadgetFactory Reference */ private static final CCache> s_dashboardGadgetFactoryCache = new CCache<>(null, "IDashboardGadgetFactory", 100, false); /** - * * @param url * @param parent * @return Gadget component @@ -202,7 +204,6 @@ public class Extensions { } /** - * * @param url * @param parent * @param dc @@ -225,8 +226,10 @@ public class Extensions { IDashboardGadgetFactory service = factory.getService(); if (service != null) { Component component = service.getGadget(url,parent,dc); - if(component != null) + if (component != null) { + s_dashboardGadgetFactoryCache.put(url, factory); return component; + } } } @@ -234,7 +237,6 @@ public class Extensions { } /** - * * @return list of {@link IChartRendererService} */ public static final List getChartRendererServices() { @@ -244,8 +246,7 @@ public class Extensions { private static IServiceReferenceHolder s_mappedFormFactoryReference = null; /** - * - * @return {@link IMappedFormFactory} + * @return {@link IMappedFormFactory} instance */ public static IMappedFormFactory getMappedFormFactory(){ IMappedFormFactory formFactoryService = null; @@ -261,12 +262,12 @@ public class Extensions { } return formFactoryService; } - + + /** AD_Window_ID:IQuickEntryFactory Reference */ private final static CCache> s_quickEntryFactoryCache = new CCache<>(null, "IQuickEntryFactory", 100, false); /** - * - * @param AdWindowID + * @param AdWindowID AD_Window_ID * @return IQuickEntryFactory instance or null if AdWindowID not found */ public static AbstractWQuickEntry getQuickEntry(Integer AdWindowID) { @@ -297,10 +298,9 @@ public class Extensions { } /** - * * @param WindowNo * @param TabNo - * @param AdWindowID + * @param AdWindowID AD_Window_ID * @return IQuickEntry instance or null if AdWindowID not found */ public static AbstractWQuickEntry getQuickEntry(int WindowNo, int TabNo, int AdWindowID) { @@ -330,14 +330,14 @@ public class Extensions { return null; } + /** CacheKey:IMediaViewProvider Reference. CacheKey is ContentType|File Extension */ private static final CCache> s_mediaViewProviderCache = new CCache<>("_IMediaViewProvider_Cache", "IMediaViewProvider", 100, false); /** - * * @param contentType * @param extension - * @param mobile - * @return {@link IMediaView} + * @param mobile true for mobile, otherwise for desktop + * @return {@link IMediaView} instance */ public static IMediaView getMediaView(String contentType, String extension, boolean mobile) { String key = contentType + "|" + extension; @@ -373,7 +373,7 @@ public class Extensions { /** * @param tabType build in - FORM or SORT, custom - through IADTabPanelFactory extension - * @return {@link IADTabpanel} + * @return {@link IADTabpanel} instance */ public static IADTabpanel getADTabPanel(String tabType) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ISupportMask.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ISupportMask.java index ca6eaee473..0a3a845044 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ISupportMask.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ISupportMask.java @@ -18,50 +18,51 @@ import org.adempiere.webui.part.AbstractUIPart; import org.zkoss.zk.ui.Component; /** - * interface for any component want support show other window over it with a - * mask. object manage component as AbstractUIPart also implement this interface - * consider below case. + * Interface for any component want support show other window over it with a + * mask.
Class manage component as AbstractUIPart also implement this interface.
+ * Consider following scenario:
+ *
  * 1. show a dialog => show mask
- * 2. process a event
+ * 2. process an event
  *     2.1. show other dialog => show mask
- *     2.1. hidden dialog in step 1 => hidden mask
+ *     2.1. hide dialog in step 1 => hide mask
  * 3. result dialog show without mask
- * to void this case process as below
- * in {@link #showMask()} set a flag to request scope by call: {@link Component#setAttribute(String, Object, int)} 
- * key is {@link #READY_SHOW_MASK_FLAG} value is Integer(1) and scope is {@link Component#REQUEST_SCOPE}
- * in {@link #hideMask()} check flag before hidden mask. when has flag, don't hidden mask
- * 
- * component want support show mask can implement this interface or use support class {@link ShowMaskWrapper} as composite object 
+ * 
+ * To void this issue, proceed as below:
+ * - In {@link #showMask()} set a flag to request scope by call {@link Component#setAttribute(String, Object, int)} + * with name {@link #READY_SHOW_MASK_FLAG}, value Integer(1) and scope {@link Component#REQUEST_SCOPE}.
+ * - In {@link #hideMask()} check flag before hide mask. When has flag, don't hide mask. + *

+ * Component want support show mask can implement this interface or use support class {@link ShowMaskWrapper} as composite object */ public interface ISupportMask { public static String READY_SHOW_MASK_FLAG = "ISupportMask_READY_SHOW_MASK_FLAG"; /** - * show mask over this component - * when override, remember call {@link Component#setAttribute(String, Object, int)} with - * key is {@link #READY_SHOW_MASK_FLAG} value is Integer(1) and scope is {@link Component#REQUEST_SCOPE} - * by call {@link LayoutUtils} + * Show mask over this component.
+ * When override, remember to call {@link Component#setAttribute(String, Object, int)} with + * name {@link #READY_SHOW_MASK_FLAG}, value Integer(1) and scope {@link Component#REQUEST_SCOPE}.
+ * Call by {@link LayoutUtils}. */ public void showMask(); /** - * Hide mask. at code call showMask will hand reference to this object. and - * call this function in handle close event of window - * when override, remember check exists of key {@link #READY_SHOW_MASK_FLAG} at scope {@link Component#REQUEST_SCOPE} in attribute - * by call {@link LayoutUtils} - * if exists flag, don't hidden mask + * Hide mask. With ISupportMask return from showMask, call this function in handle close event of window.
+ * When override, remember check exists of key {@link #READY_SHOW_MASK_FLAG} at scope {@link Component#REQUEST_SCOPE} in attribute. + * If flag exists, don't hide mask.
+ * Call by {@link LayoutUtils}. */ public void hideMask(); /** - * return cache object or make new object and return - * @return + * Return cache Mask or create new Mask and return. + * @return {@link Mask} */ public Mask getMaskObj(); /** - * return self if is a component or return component it manage - * if {@link AbstractUIPart} is implement this interface, return {@link AbstractUIPart#getComponent()} - * @return + * Return self if is a component or return component it manage.
+ * {@link AbstractUIPart} subclasses that implement this interface should return {@link AbstractUIPart#getComponent()}. + * @return {@link Component} */ public Component getMaskComponent(); } \ No newline at end of file diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LayoutUtils.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LayoutUtils.java index 6778c507f3..2a638b4f9d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LayoutUtils.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LayoutUtils.java @@ -318,17 +318,18 @@ public final class LayoutUtils { public static final int OVERLAP_SELF = 4; /** - * show window with a mask below. mask over tabPanel, all window or only over a control, dependency ownModel flag. - * when ownModel == {@link #OVERLAP_SELF}, window show overlap childOfOwn, - * when childOfOwn doesn't implement {@link ISupportMask} make new {@link Mask} object to make mask layout - * ownModel == {@link #OVERLAP_ALL_PAGE}, window show overlap all page - * ownModel == {@link #OVERLAP_TAB_PANEL}, window show overlap tabPanel - * ownModel == {@link #OVERLAP_PARENT}, search near parent of childOfOwn implement {@link ISupportMask} if not exist user as OVERLAP_ALL_PAGE + * show window with a mask below. Depends on ownModel flag, mask is shown over tabPanel, all window or over a component. + *

+	 * when ownModel is
+	 * - {@link #OVERLAP_SELF}, mask childOfOwn. if childOfOwn doesn't implement {@link ISupportMask}, make new {@link Mask} object to mask it
+	 * - {@link #OVERLAP_ALL_PAGE}, window show overlap all page
+	 * - {@link #OVERLAP_TAB_PANEL}, window show overlap tabPanel
+	 * - {@link #OVERLAP_PARENT}, search nearest parent of childOfOwn that implement {@link ISupportMask}, if not found use as OVERLAP_ALL_PAGE
+	 * 
* @param window - * @param childOfOwn + * @param childOfOwn Component below window * @param ownModel OVERLAP_TAB_PANEL, OVERLAP_ALL_PAGE, OVERLAP_PARENT or OVERLAP_SELF - * @return when show success return IMask object, it is own window, use {@link ISupportMask#hideMask()} to hidden mask. - * other return null. + * @return when show success return ISupportMask object, use {@link ISupportMask#hideMask()} to hide mask. */ public static ISupportMask showWindowWithMask(Window window, Component childOfOwn, int ownModel){ ISupportMask ownWindow = null; @@ -392,7 +393,7 @@ public final class LayoutUtils { } /** - * find parent of child component, parent must implement {@link ISupportMask} + * find nearest parent of child component that implement {@link ISupportMask}.
* if parentClass != null, parent class must extends parentClass * @param child * @param parentClass @@ -414,7 +415,7 @@ public final class LayoutUtils { } /** - * Compact grid to limit (for e.g, to max of 2 column) + * Compact grid to limit (for e.g, to max of 2 column).
* Note: doesn't handle row span * @param grid * @param limit @@ -479,7 +480,7 @@ public final class LayoutUtils { } /** - * Expand grid to min (for e.g, to min of 2 column) + * Expand grid to min (for e.g, to min of 2 column).
* Note: doesn't handle row span * @param grid * @param min @@ -550,7 +551,7 @@ public final class LayoutUtils { } /** - * find first popup ancestor of comp + * find first Popup ancestor of comp * @param comp * @return {@link Popup} if comp or one of its ancestor is Popup */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java index a32895324e..f09e4e5c13 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java @@ -49,6 +49,7 @@ import org.compiere.util.WebUtil; * Sync state of {@link HttpSession} and AD_Session */ public class LoggedSessionListener implements HttpSessionListener, ServletContextListener, ServerStateChangeListener{ + /** Http Session Id:HttpSession */ private static Hashtable AD_SessionList = new Hashtable(); private static final CLogger logger = CLogger.getCLogger(LoggedSessionListener.class); @@ -107,6 +108,9 @@ public class LoggedSessionListener implements HttpSessionListener, ServletContex */ } + /** + * Update all active AD_Session records (Processed=N) to inactive (Processed=Y) + */ private void DestroyAllSession() { if (!Adempiere.isStarted()) { @@ -124,6 +128,11 @@ public class LoggedSessionListener implements HttpSessionListener, ServletContex Adempiere.removeServerStateChangeListener(this); } + /** + * Update AD_Session record to inactive (Processed=Y) by session id and server name + * @param sessionID Http Session Id + * @param serverName + */ private void removeADSession(String sessionID, String serverName) { String sql = "UPDATE AD_Session SET Processed='Y' WHERE WebSession=? AND ServerName=? AND Processed='N'"; int no = DB.executeUpdate(sql, new Object[] {sessionID, serverName}, false, null); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ShowMaskWrapper.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ShowMaskWrapper.java index 6bbd56071e..dcf9e1e4bf 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ShowMaskWrapper.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ShowMaskWrapper.java @@ -21,8 +21,8 @@ import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.util.Clients; /** - * Helper class for {@link ISupportMask} implementation - * Just make a instance of this class and let it do everything + * Helper class for {@link ISupportMask} implementation. + * Just make a instance of this class and let it do everything. * @author hieplq * */ @@ -117,9 +117,9 @@ public class ShowMaskWrapper implements ISupportMask { } /** - * check flag {@link ISupportMask#READY_SHOW_MASK_FLAG} ready in scope Component.REQUEST_SCOPE + * check flag {@link ISupportMask#READY_SHOW_MASK_FLAG} exists in scope Component.REQUEST_SCOPE * @param comp - * @return + * @return true if flag exists */ public static boolean hasFlagShowMask (Component comp){ return (comp.getAttribute(ISupportMask.READY_SHOW_MASK_FLAG, Component.REQUEST_SCOPE) != null); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java index 287200505e..b0572ad4fb 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/ValuePreference.java @@ -133,7 +133,7 @@ public class ValuePreference extends Window implements EventListener AD_Client_ID, AD_Org_ID, AD_User_ID, AD_Window_ID, mField.getAD_Process_ID_Of_Panel(), mField.getAD_InfoWindow_ID_of_Panel(), Attribute, DisplayAttribute, Value, DisplayValue, displayType, AD_Reference_ID, ref); - } // create + } // start /** The Name of the Dialog */ public static final String NAME = "ValuePreference"; @@ -438,7 +438,7 @@ public class ValuePreference extends Window implements EventListener } // dynInit /** - * Action Listener + * Event Listener * @param e event */ public void onEvent(Event e) throws Exception @@ -573,9 +573,9 @@ public class ValuePreference extends Window implements EventListener } // delete /** - * Get Context Key - * preferences in context update follow key. - * they load when login, and update when change. + * Get Context Key. + * Preferences in context update follow key. + * They load when login, and update when change. * @see Login#loadPreferences(org.compiere.util.KeyNamePair, org.compiere.util.KeyNamePair, java.sql.Timestamp, String) * and set to field when display field, {@link GridField#getDefault()} * @return Context Key diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WArchive.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WArchive.java index 658e58212a..fb56c63e94 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WArchive.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WArchive.java @@ -140,7 +140,7 @@ public class WArchive implements EventListener LayoutUtils.autoDetachOnClose(m_popup); } m_popup.open(invoker, "after_start"); - } // getZoomTargets + } // getArchives /** * Listener diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WLogin.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WLogin.java index 48c0240573..2ac97b6ae2 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WLogin.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WLogin.java @@ -42,13 +42,13 @@ import org.zkoss.zul.Window; */ public class WLogin extends AbstractUIPart { - /** IWebClient instance ({@link AdempiereWebUI}) **/ + /** IWebClient instance ({@link AdempiereWebUI}) */ private IWebClient app; - /** Main layout **/ + /** Main layout */ private Borderlayout layout; @Deprecated(forRemoval = true, since = "11") private Window browserWarningWindow; - /** embedded window for login and role selection **/ + /** embedded window for login and role selection */ private LoginWindow loginWindow; /** @@ -61,7 +61,9 @@ public class WLogin extends AbstractUIPart } /** - * Create UI from login.zul file. The main layout component ("layout") must be instance of {@link Borderlayout}. + * Create UI from login.zul file.
+ * The main layout component ("layout") must be instance of {@link Borderlayout}.
+ * Get {@link #loginWindow} reference from zul using id "loginWindow". */ @Override protected Component doCreatePart(Component parent) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WRequest.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WRequest.java index dba54819dc..662b2c6120 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WRequest.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WRequest.java @@ -62,7 +62,7 @@ public class WRequest implements EventListener m_C_BPartner_ID = C_BPartner_ID; getRequests(invoker); - } // AReport + } // WRequest /** The Table */ private int m_AD_Table_ID; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java index 3c8bc47e50..6218e057b2 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java @@ -18,8 +18,8 @@ import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; /** - * {@link BundleActivator} for web UI - * Start {@link WindowValidatorManager} + * {@link BundleActivator} for web client. + * Start {@link WindowValidatorManager}. * @author hengsin */ public class WebUIActivator implements BundleActivator { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/action/Actions.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/action/Actions.java index 48114dffab..a0a1c6cf3d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/action/Actions.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/action/Actions.java @@ -58,10 +58,10 @@ public class Actions { } /** - * Image name: actionId+"24.png". - * Get image from current theme or plugin resource. + * Image name: actionId+"24.png".
+ * Get image from current theme or plugin resource.
* For plugin resource, it will try the path /action/images/{theme}/{image name}, /action/images/default/{image name} and - * /action/images/{image name} + * /action/images/{image name}. * @param actionId * @return {@link AImage} */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java index f721052ff7..0354d42a48 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java @@ -129,11 +129,6 @@ import org.zkoss.zul.impl.XulElement; /** * UI for an AD_Tab content (AD_Tab + AD_Fields). * - * This class is based on org.compiere.grid.GridController written by Jorg Janke. - * Changes have been brought for UI compatibility. - * - * @author Jorg Janke - * * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTreePanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTreePanel.java index 6b5a6ee1c6..9aa1336cc7 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTreePanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTreePanel.java @@ -158,7 +158,6 @@ public class ADTreePanel extends Panel implements EventListener { String eventName = event.getName(); - // Elaine 2009/02/27 - expand tree if (eventName.equals(Events.ON_CHECK) && event.getTarget() == expandToggle) { Clients.showBusy(null); @@ -169,7 +168,6 @@ public class ADTreePanel extends Panel implements EventListener expandOnCheck(); Clients.clearBusy(); } - // } /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java index b9e86e3dac..73df732e9e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java @@ -48,9 +48,6 @@ import org.zkoss.zul.Vlayout; /** * Content area of {@link ADWindow}. * - * This class is based on org.compiere.apps.APanel written by Jorg Janke. - * @author Jorg Janke - * * @author Ashley G Ramdass * @author Low Heng Sin * @date Feb 25, 2007 diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java index 14623b8713..56243ea73b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java @@ -32,8 +32,8 @@ import org.adempiere.webui.action.Actions; import org.adempiere.webui.action.IAction; import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.component.Combobox; -import org.adempiere.webui.component.FToolbar; import org.adempiere.webui.component.Tabpanel; +import org.adempiere.webui.component.ToolBar; import org.adempiere.webui.component.ToolBarButton; import org.adempiere.webui.event.ToolbarListener; import org.adempiere.webui.part.WindowContainer; @@ -85,7 +85,7 @@ import org.zkoss.zul.impl.LabelImageElement; * @author Cristina Ghita, www.arhipac.ro *
  • FR [ 2076330 ] Add new methods in CWindowToolbar class */ -public class ADWindowToolbar extends FToolbar implements EventListener +public class ADWindowToolbar extends ToolBar implements EventListener { /** * generated serial id diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java index 23534bd2fb..e5b533901f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java @@ -145,9 +145,6 @@ import org.zkoss.zul.impl.LabelImageElement; * * Abstract model class for the content of AD Window (toolbar+breadcrumb+tabs+statusbar). * - * This class is based on org.compiere.apps.APanel written by Jorg Janke. - * @author Jorg Janke - * * @author Ashley G Ramdass * @author Low Heng Sin * @date Feb 25, 2007 @@ -175,11 +172,11 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements */ private static final String DETAIL_TABPANEL_SAVED_ATTR = "detail.adtabpanel.saved"; - /** onFocus event that's defer behind other event using echo **/ + /** onFocus event that's defer behind other event using echo */ private static final String ON_FOCUS_DEFER_EVENT = "onFocusDefer"; /** - * Event to set selected tab of detail pane. Defer behind other event using echo. + * Event to set selected tab of detail pane. Defer behind other event using echo.
    * Event data: data[0] is tab index and data[1] is current row */ private static final String ON_DEFER_SET_DETAILPANE_SELECTION_EVENT = "onDeferSetDetailpaneSelection"; @@ -191,19 +188,19 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements logger = CLogger.getCLogger(AbstractADWindowContent.class); } - /** Env ctx **/ + /** Env ctx */ private Properties ctx; - /** VO for AD Window **/ + /** VO for AD Window */ private GridWindow gridWindow; - /** status bar for message and record info **/ + /** status bar for message and record info */ protected StatusBar statusBar; - /** UI part for AD_Tabs **/ + /** UI part for AD_Tabs */ protected IADTabbox adTabbox; - /** register window (desktop tab) no **/ + /** register window (desktop tab) no */ private int curWindowNo; /** @@ -221,25 +218,25 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements */ private int m_onlyCurrentDays = 0; - /** true if find window cancel by user **/ + /** true if find window cancel by user */ private boolean m_findCancelled; - /** true if user press new button at find window **/ + /** true if user press new button at find window */ private boolean m_findCreateNew; - /** true when initial query for first tab is running **/ + /** true when initial query for first tab is running */ private boolean m_queryInitiating; - /** path to selected tab **/ + /** path to selected tab */ protected BreadCrumb breadCrumb; - /** AD_Window.AD_Window_ID **/ + /** AD_Window.AD_Window_ID */ private int adWindowId; - /** image for window title **/ + /** image for window title */ private MImage image; - /** delete confirmation logic for selected tab **/ + /** delete confirmation logic for selected tab */ private String deleteConfirmationLogic; /** @@ -252,7 +249,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements */ protected ArrayList quickFormOpenTabs = new ArrayList (); - /** track last focus field editor component **/ + /** track last focus field editor component */ protected Component lastFocusEditor = null; /** @@ -811,10 +808,9 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements /** * Show initial find window for first tab (if necessary) * - * @param query - * initial query - * @param mTab - * tab + * @param query initial query + * @param mTab tab + * @param callback callback for query to apply, must not be null * @return query or null */ private void initialQuery(final MQuery query, GridTab mTab, final Callback callback) @@ -952,7 +948,8 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } /** - * Delegate to {@link BreadCrumbLink} ON_Click event + * Navigate to parent record. + * Delegate to {@link BreadCrumbLink} ON_Click event. * @see ToolbarListener#onParentRecord() */ @Override @@ -1071,7 +1068,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements protected ADWindow adwindow; - //true if confirmation for exit dialog is visible + /** true if confirmation for exit dialog is visible */ protected boolean showingOnExitDialog; /** @@ -1217,7 +1214,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } /** - * handle post it event + * Open Post It note dialog. */ public void onPostIt() { @@ -1506,7 +1503,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements * Change active tab to newTabIndex. * Delegate to {@link #setActiveTab0(int, int, Callback)} * @param newTabIndex - * @param callback + * @param callback optional callback */ private void setActiveTab(final int newTabIndex, final Callback callback) { @@ -1545,7 +1542,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements /** * save (if needed) and execute callback - * @param callback + * @param callback callback for result of execution, must not be null */ public void saveAndNavigate(final Callback callback) { if (adTabbox != null) @@ -1581,7 +1578,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements * Change selected tab from oldTabIndex to newTabIndex * @param oldTabIndex * @param newTabIndex - * @param callback + * @param callback optional callback for result of execution */ private void setActiveTab0(int oldTabIndex, int newTabIndex, final Callback callback) { @@ -2128,7 +2125,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements /** * Auto save current changes (if auto save is enable). * Delegate to {@link #asyncAutoSave()} - * @param e + * @param e DataStatusEvent */ private synchronized void autoSaveChanges(DataStatusEvent e) { if (!e.isInitEdit() && toolbar.isSaveEnable() && MSysConfig.getBooleanValue(MSysConfig.ZK_AUTO_SAVE_CHANGES, false, Env.getAD_Client_ID(Env.getCtx()))) { @@ -2198,7 +2195,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements * Refresh all row. * Delegate to {@link #doOnRefresh(boolean)} * @param fireEvent - * @param saveCurrentRow + * @param saveCurrentRow if true, save before refresh */ public void onRefresh(final boolean fireEvent, final boolean saveCurrentRow) { @@ -2785,7 +2782,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements * @param navigationEvent * @param newRecord * @param wasChanged - * @param callback + * @param callback optional callback for result of save */ private void onSave0(boolean onSaveEvent, boolean navigationEvent, boolean newRecord, boolean wasChanged, Callback callback) { @@ -2922,7 +2919,8 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } /** - * Delegate to {@link #onSave(boolean, boolean, Callback)} + * Save and create new record. + * Delegate to {@link #onSave(boolean, boolean, Callback)}. * @see ToolbarListener#onSaveCreate() */ @Override @@ -3174,7 +3172,6 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements postCallback.onCallback(false); } } - // /** * Delegate to {@link #onPrintCallback(Callback)} @@ -3212,9 +3209,8 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements private void onPrintCallback(final Callback postCallback) { //Get process defined for this tab final int AD_Process_ID = adTabbox.getSelectedGridTab().getAD_Process_ID(); - //log.info("ID=" + AD_Process_ID); - // No report defined + // No document print process defined if (AD_Process_ID == 0) { onReport(); @@ -3231,7 +3227,6 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements final ProcessModalDialog dialog = new ProcessModalDialog(AbstractADWindowContent.this, getWindowNo(), AD_Process_ID,table_ID, record_ID, true); if (dialog.isValid()) { - //dialog.setWidth("500px"); dialog.setBorder("normal"); getComponent().getParent().appendChild(dialog); showBusyMask(dialog); @@ -3323,7 +3318,6 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } } - // Elaine 2008/07/17 /** * @see ToolbarListener#onActiveWorkflows() */ @@ -3344,7 +3338,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } } } - // + /** * Close popup for toolbar button * @param btnName toobar button name @@ -3377,9 +3371,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements new WRequest(toolbar.getToolbarItem("Requests"), adTabbox.getSelectedGridTab().getAD_Table_ID(), adTabbox.getSelectedGridTab().getRecord_ID(), C_BPartner_ID); } } - // - - // Elaine 2008/07/22 + /** * @see ToolbarListener#onProductInfo() */ @@ -3389,10 +3381,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements closeToolbarPopup("ProductInfo"); InfoPanel.showPanel(I_M_Product.Table_Name); } - // - - - // Elaine 2008/07/28 + /** * Delegate to {@link WArchive} * @see ToolbarListener#onArchive() @@ -3409,7 +3398,6 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } } - // /** * Delegate to {@link ExportAction} */ @@ -3508,7 +3496,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements getCurrentFindWindow().dispose(); } - /************************************************************************** + /** * Execute action for button. * With the exception of zoom to record_id, delegate to {@link #actionButton0(String, IProcessButton)}. * @param wButton {@link IProcessButton} @@ -3568,7 +3556,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } } - /************************************************************************** + /** * Execution action of button. * Delegate to {@link #executeButtonProcess(IProcessButton, boolean, int, int, boolean)} for process * @param col column name @@ -3998,7 +3986,6 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements if (dialog.isValid()) { - //dialog.setWidth("500px"); dialog.setBorder("normal"); getComponent().getParent().appendChild(dialog); if (ClientInfo.isMobile()) @@ -4109,14 +4096,8 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements template.run(); } - /************************************************************************** - * Process Callout(s). - *

    - * The Callout is in the string of - * "class.method;class.method;" - * If there is no class name, i.e. only a method name, the class is regarded - * as CalloutSystem. - * The class needs to comply with the Interface Callout. + /** + * Process Callout(s). * * @param field field * @return error message or "" @@ -4374,7 +4355,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } /** - * + * Get cache find window for current selected tab * @return {@link FindWindow} */ public FindWindow getCurrentFindWindow() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/CompositeADTabbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/CompositeADTabbox.java index 59e4fb1eaa..06fb157dfe 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/CompositeADTabbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/CompositeADTabbox.java @@ -27,6 +27,7 @@ import org.adempiere.util.Callback; import org.adempiere.webui.adwindow.DetailPane.Tabpanel; import org.adempiere.webui.component.ADTabListModel; import org.adempiere.webui.component.ADTabListModel.ADTabLabel; +import org.adempiere.webui.component.Tabbox; import org.adempiere.webui.util.ZKUpdateUtil; import org.adempiere.webui.window.Dialog; import org.compiere.model.DataStatusEvent; @@ -56,8 +57,8 @@ import org.zkoss.zul.Vlayout; /** * Header and detail UI for AD_Tabs. - * This class manage a list of tabs with the current selected tab as the attached and visible {@link ADTabpanel} instance. - * Child tabs of selected tab is shown in {@link DetailPane} inside {@link ADTabpanel}. + * This class manage a list of tabs with the current selected tab as the visible {@link ADTabpanel} instance. + * Child tabs of selected tab is shown in {@link DetailPane} using {@link Tabbox}. * * @author Ashley G Ramdass * @author Low Heng Sin diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java index e54520b1b6..717e15a21c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java @@ -310,9 +310,10 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt } /** - * get component to display value of a field. - * when display is boolean or button, return correspond component - * other return a label with text get from {@link #getDisplayText(Object, GridField, int, boolean)} + * Get component to display value of a field.
    + * When display type is boolean or button, return corresponding component.
    + * Otherwise, use Label or Component from {@link WEditor#getDisplayComponent()} to display text from {@link #getDisplayText(Object, GridField, int, boolean)} + * (As it is, only {@link Html} is supported for {@link WEditor#getDisplayComponent()}). * @param rowIndex * @param value * @param gridField @@ -347,7 +348,7 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt if (component instanceof Html){ ((Html)component).setContent(text); }else{ - throw new UnsupportedOperationException("neet a componet has setvalue function"); + throw new UnsupportedOperationException("Only implemented for Html component."); } } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java index 8892af9ce9..7e635f4312 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridView.java @@ -134,8 +134,8 @@ public class GridView extends Vlayout implements EventListener, IdSpace, private int pageSize = DEFAULT_PAGE_SIZE; /** - * list field display in grid mode, in case user customize grid - * this list container only display list. + * fields display in grid mode, in case user customize grid, + * this list include only display fields. */ private GridField[] gridFields; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AbstractProcessDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AbstractProcessDialog.java index 3990bf751e..2485f61069 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AbstractProcessDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AbstractProcessDialog.java @@ -128,7 +128,7 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI private ProcessInfo m_pi = null; /** if true, auto call {@link #dispose()} in {@link #ON_COMPLETE_EVENT} handler. **/ private boolean m_disposeOnComplete; - /** Panel for process paramters **/ + /** Panel for process parameters **/ private ProcessParameterPanel parameterPanel = null; /** Checkbox to toggle running process/report as background job **/ private Checkbox runAsJobField = null; @@ -181,7 +181,7 @@ public abstract class AbstractProcessDialog extends Window implements IProcessUI * @param pi * @param autoStart * @param isDisposeOnComplete - * @return + * @return true if init is ok. */ protected boolean init(Properties ctx, int WindowNo, int AD_Process_ID, ProcessInfo pi, boolean autoStart, boolean isDisposeOnComplete) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WPluginManager.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WPluginManager.java index b9a74abfcb..6552295f40 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WPluginManager.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WPluginManager.java @@ -139,7 +139,6 @@ public class WPluginManager extends ADForm implements EventListener { ZKUpdateUtil.setVflex(pluginsTable, "1"); ZKUpdateUtil.setHflex(pluginsTable, "1"); refreshPluginTable(); - pluginsTable.autoSize(); pluginsTable.addEventListener(Events.ON_SELECT, this); pluginActions = new Listbox(new KeyNamePair[] { new KeyNamePair(PLUGIN_ACTION_NONE, ""), diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WDocumentStatusIndicator.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WDocumentStatusIndicator.java index c0d83a5b9f..48b3601223 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WDocumentStatusIndicator.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WDocumentStatusIndicator.java @@ -96,7 +96,7 @@ public class WDocumentStatusIndicator extends Panel implements EventListener list = new ArrayList(); + protected ArrayList list = new ArrayList(); private boolean m_chartSelection; @@ -104,7 +104,7 @@ public class WGraph extends Div implements IdSpace { private String m_yAxisLabel; - public DecimalFormat format = DisplayType.getNumberFormat(DisplayType.Amount); + protected DecimalFormat format = DisplayType.getNumberFormat(DisplayType.Amount); /** * Constructor @@ -219,6 +219,9 @@ public class WGraph extends Div implements IdSpace { } } + /** + * Load MMeasure data for {@link #m_goal}. + */ private void loadData() { // Calculated MMeasure measure = m_goal.getMeasure(); @@ -256,6 +259,10 @@ public class WGraph extends Div implements IdSpace { } } // loadData + /** + * Render chart to {@link #panel}. + * @param type optional chart type. if null, fallback to m_goal.getChartType + */ private void renderChart(String type) { int width = 560; int height = 400; @@ -398,6 +405,10 @@ public class WGraph extends Div implements IdSpace { return array; } + /** + * Render {@link #m_goal} data in html table. + * @param parent + */ private void renderTable(Component parent) { Div div = new Div(); appendChild(div); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAPanel.java index c0699f7955..dd202fcece 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAPanel.java @@ -45,6 +45,9 @@ import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Div; import org.zkoss.zul.Label; +/** + * Panel with one or more {@link WPerformanceIndicator} + */ public class WPAPanel extends Panel implements EventListener { /** @@ -53,7 +56,10 @@ public class WPAPanel extends Panel implements EventListener private static final long serialVersionUID = -6367672112341229048L; /** - * Load Performance Goals for current login user + * Load Performance Goals for current login user.
    + * For asynchronous use case, load MGoal[] through this method in non event listener thread + * and call {@link #setGoals(MGoal[], Options)} in event listener thread to update UI. To + * keep UI responsive, we need to avoid running long operation in event listener thread. * @return MGoal[] */ public static MGoal[] loadGoal() @@ -136,7 +142,7 @@ public class WPAPanel extends Panel implements EventListener } // init /** - * Event Listener for Drill Down + * Open {@link WPerformanceDetail} * @param e event */ @Override diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAWidget.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAWidget.java index 24cbde6fb3..bcc5b16414 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAWidget.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPAWidget.java @@ -33,15 +33,20 @@ import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Div; import org.zkoss.zul.Label; +/** + * Dashboard gadget panel for individual {@link WPerformanceIndicator} + */ public class WPAWidget extends Panel { /** - * + * generated serial id */ private static final long serialVersionUID = 5684412399657327777L; - /************************************************************************** - * Constructor + /** + * @param goal + * @param options + * @param isShowTitle */ public WPAWidget (MGoal goal, Options options, boolean isShowTitle) { @@ -51,7 +56,7 @@ public class WPAWidget extends Panel { } /** - * Static/Dynamic Init + * Render panel * @param goal * @param options */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceDetail.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceDetail.java index c327e9ede2..a0fb3f903d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceDetail.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceDetail.java @@ -5,8 +5,7 @@ import org.adempiere.webui.session.SessionManager; import org.compiere.model.MGoal; /** - * Performance Detail Frame. - * BarPanel for Drill-Down + * Window with Chart and Details for {@link MGoal} * * @author Jorg Janke * @version $Id: PerformanceDetail.java,v 1.2 2006/07/30 00:51:28 jjanke Exp $ @@ -14,13 +13,13 @@ import org.compiere.model.MGoal; public class WPerformanceDetail extends Window { /** - * + * generated serial id */ private static final long serialVersionUID = 3460594735973451874L; /** * Constructor. - * Called from PAPanel, ViewPI (Performance Indicator) + * Called from {@link WPAPanel} and {@link WPAWidget} * @param goal goal */ public WPerformanceDetail (MGoal goal) @@ -28,12 +27,12 @@ public class WPerformanceDetail extends Window super(); setTitle(goal.getName()); - WGraph barPanel = new WGraph(goal, 0, true, false, true, true); - appendChild(barPanel); + WGraph graph = new WGraph(goal, 0, true, false, true, true); + appendChild(graph); this.setAttribute(Window.MODE_KEY, Window.MODE_EMBEDDED); this.setStyle("height: 100%; width: 100%; position: absolute; overflow: auto"); - barPanel.setStyle("height: 100%; width: 100%; position: absolute; overflow: visible"); + graph.setStyle("height: 100%; width: 100%; position: absolute; overflow: visible"); SessionManager.getAppDesktop().showWindow(this); } // PerformanceDetail } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceIndicator.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceIndicator.java index fb55d01fbe..bb696bf6dd 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceIndicator.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WPerformanceIndicator.java @@ -36,7 +36,7 @@ import org.zkoss.zul.Menuitem; import org.zkoss.zul.Menupopup; /** - * Performance Indicator + * Panel with chart for {@link MGoal} * * @author hengsin */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java index e9c2592e96..28e88d5886 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/WViewPI.java @@ -3,11 +3,14 @@ package org.adempiere.webui.apps.graph; import org.adempiere.webui.panel.ADForm; import org.compiere.model.MGoal; +/** + * Form for {@link WPAPanel} + */ @org.idempiere.ui.zk.annotation.Form(name = "org.adempiere.apps.graph.ViewPI") public class WViewPI extends ADForm { /** - * + * generated serial id */ private static final long serialVersionUID = -755873621984745607L; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRenderer.java index 4015520e8d..24dd3b9f33 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRenderer.java @@ -32,8 +32,9 @@ import org.zkoss.zul.Imagemap; /** * @author Paul Bowden, Adaxa Pty Ltd * @author hengsin - * + * @deprecated replace by billboard based implementation */ +@Deprecated /* package */ class ChartRenderer { private static final CLogger log = CLogger.getCLogger(ChartRenderer.class); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRendererServiceImpl.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRendererServiceImpl.java index 44299c0e10..9654a86161 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRendererServiceImpl.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/ChartRendererServiceImpl.java @@ -46,8 +46,9 @@ import org.zkoss.zul.Imagemap; /** * * @author hengsin - * + * @deprecated replace by billboard based implementation */ +@Deprecated public class ChartRendererServiceImpl implements IChartRendererService { private final static CLogger log = CLogger.getCLogger(ChartRendererServiceImpl.class); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/PerformanceGraphBuilder.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/PerformanceGraphBuilder.java index 6652c27b08..c80c356350 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/PerformanceGraphBuilder.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/jfreegraph/PerformanceGraphBuilder.java @@ -31,8 +31,9 @@ import org.jfree.data.general.DefaultValueDataset; /** * * @author hengsin - * + * @deprecated replace by billboard based implementation */ +@Deprecated public class PerformanceGraphBuilder { public JFreeChart createIndicatorChart(IndicatorModel model) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/ChartModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/ChartModel.java index 25e0db13f4..5e22d972f4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/ChartModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/ChartModel.java @@ -16,9 +16,8 @@ package org.adempiere.webui.apps.graph.model; import org.compiere.model.MChart; /** - * + * Model for chart (AD_Chart) * @author hengsin - * */ public class ChartModel { public MChart chart; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/GoalModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/GoalModel.java index 42d31a4206..5834585e0f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/GoalModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/GoalModel.java @@ -19,9 +19,8 @@ import org.adempiere.apps.graph.GraphColumn; import org.compiere.model.MGoal; /** - * + * Model for performance graph (PA_Goal) * @author hengsin - * */ public class GoalModel { public MGoal goal; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/IndicatorModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/IndicatorModel.java index 5da0fa1812..050ca5f816 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/IndicatorModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/graph/model/IndicatorModel.java @@ -18,9 +18,8 @@ import java.awt.Color; import org.compiere.model.MGoal; /** - * + * Model for performance indicator (meter/gauge) * @author hengsin - * */ public class IndicatorModel { public MGoal goalModel; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFEditor.java index 3425ae760f..1e55ab52f5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFEditor.java @@ -66,27 +66,32 @@ import org.zkoss.zul.Toolbarbutton; import org.zkoss.zul.Vbox; /** - * + * Workflow editor form * @author Low Heng Sin - * */ @org.idempiere.ui.zk.annotation.Form(name = "org.compiere.apps.wf.WFPanel") public class WFEditor extends ADForm { /** - * + * generated serial id */ private static final long serialVersionUID = 4293422396394778274L; + /** Workflows dropdown list */ private Listbox workflowList; private int m_workflowId = 0; private Toolbarbutton zoomButton; private Toolbarbutton refreshButton; private Toolbarbutton newButton; + /** Content of {@link #center} */ private Table table; + /** Center of form */ private Center center; private MWorkflow m_wf; private WFNodeContainer nodeContainer; + /** + * Layout form + */ @Override protected void initForm() { ZKUpdateUtil.setHeight(this, "100%"); @@ -159,6 +164,9 @@ public class WFEditor extends ADForm { ZKUpdateUtil.setHeight(south, "36px"); } + /** + * Create {@link #table} + */ private void createTable() { table = new Table(); table.setDynamicProperty("cellpadding", "0"); @@ -219,6 +227,9 @@ public class WFEditor extends ADForm { } } + /** + * Create new workflow node + */ private void createNewNode() { String nameLabel = Msg.getElement(Env.getCtx(), MWFNode.COLUMNNAME_Name); String title = Msg.getMsg(Env.getCtx(), "CreateNewNode"); @@ -268,6 +279,11 @@ public class WFEditor extends ADForm { w.doHighlighted(); } + /** + * reload and re-render workflow nodes + * @param workflowId + * @param reread + */ protected void reload(int workflowId, boolean reread) { center.removeChild(table); createTable(); @@ -275,6 +291,11 @@ public class WFEditor extends ADForm { load(workflowId, reread); } + /** + * Load and render workflow nodes + * @param workflowId + * @param reread + */ private void load(int workflowId, boolean reread) { // Get Workflow m_wf = MWorkflow.getCopy(Env.getCtx(), workflowId, (String)null); @@ -382,6 +403,10 @@ public class WFEditor extends ADForm { } + /** + * Show popup menu for workflow node + * @param target + */ protected void showNodeMenu(Component target) { Integer AD_WF_Node_ID = (Integer) target.getAttribute("AD_WF_Node_ID"); if (AD_WF_Node_ID != null) { @@ -453,7 +478,7 @@ public class WFEditor extends ADForm { } /** - * Zoom to WorkFlow + * Zoom to WorkFlow window */ private void zoom() { @@ -463,9 +488,11 @@ public class WFEditor extends ADForm { } // zoom /** - * Add Menu Item to - add new line to node - * @param menu base menu - * @param title title + * Menu item to add line to next node or to apply actions (delete, properties or zoom) to source workflow node. + * @param menu popup menu + * @param title title + * @param node source workflow node + * @param AD_WF_NodeTo_ID if > 0, next workflow node id. if < 0, actions to apply to node */ private void addMenuItem (Menupopup menu, String title, MWFNode node, int AD_WF_NodeTo_ID) { @@ -475,9 +502,10 @@ public class WFEditor extends ADForm { } // addMenuItem /** - * Add Menu Item to - delete line - * @param menu base menu - * @param title title + * Add Menu Item to - delete line + * @param menu popup menu + * @param title title + * @param line */ private void addMenuItem (Menupopup menu, String title, MWFNodeNext line) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPopupItem.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPopupItem.java index f4f42fd53f..916a4e07f5 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPopupItem.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WFPopupItem.java @@ -1,5 +1,31 @@ +/*********************************************************************** + * This file is part of iDempiere ERP Open Source * + * http://www.idempiere.org * + * * + * Copyright (C) Contributors * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * 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., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301, USA. * + * * + * Contributors: * + * - hengsin * + **********************************************************************/ package org.adempiere.webui.apps.wf; +import java.util.logging.Level; + import org.adempiere.webui.apps.AEnv; import org.adempiere.webui.component.ConfirmPanel; import org.adempiere.webui.component.Textbox; @@ -26,10 +52,12 @@ import org.zkoss.zul.Vbox; public class WFPopupItem extends Menuitem { /** - * + * generated serial id */ private static final long serialVersionUID = -8409752634782368108L; + /** Node actions */ + public static final int WFPOPUPITEM_DELETENODE = -1; public static final int WFPOPUPITEM_PROPERTIES = -2; public static final int WFPOPUPITEM_ZOOM = -3; @@ -41,8 +69,8 @@ public class WFPopupItem extends Menuitem { /** * Add Line Item * @param title title - * @param node node - * @param AD_WF_NodeTo_ID line to + * @param node workflow node + * @param AD_WF_NodeTo_ID if > 0, next workflow node id. if < 0, actions to apply to node */ public WFPopupItem (String title, MWFNode node, int AD_WF_NodeTo_ID) { @@ -64,15 +92,20 @@ public class WFPopupItem extends Menuitem { m_AD_Workflow_ID = line.getAD_WF_Node().getAD_Workflow_ID(); } // WFPopupItem - /** The Node */ - private MWFNode m_node; - /** The Line */ + /** Source Workfklow Node */ + private MWFNode m_node; + /** The Line to delete (if {@link #m_AD_WF_NodeTo_ID} = 0) */ private MWFNodeNext m_line; - /** The Next Node ID */ + /** + *

  • > 0 - next workflow node id
  • + *
  • < 0 - actions to apply to {@link #m_node}
  • + *
  • 0 - to delete {@link #m_node}
  • + */ private int m_AD_WF_NodeTo_ID; /** - * Execute + * Execute action for menu item + * @param wfp WFEditor */ public void execute(final WFEditor wfp) { @@ -86,7 +119,8 @@ public class WFPopupItem extends Menuitem { if (AD_Client_ID > 11) newLine.setEntityType(MSysConfig.getValue(MSysConfig.DEFAULT_ENTITYTYPE, MEntityType.ENTITYTYPE_UserMaintained)); newLine.saveEx(); - log.info("Add Line to " + m_node + " -> " + newLine); + if (log.isLoggable(Level.INFO)) + log.info("Add Line to " + m_node + " -> " + newLine); wfp.reload(m_AD_Workflow_ID, true); } // Edit Properties @@ -112,14 +146,16 @@ public class WFPopupItem extends Menuitem { // Delete Node else if (m_node != null && m_AD_WF_NodeTo_ID == WFPOPUPITEM_DELETENODE) { - log.info("Delete Node: " + m_node); + if (log.isLoggable(Level.INFO)) + log.info("Delete Node: " + m_node); m_node.delete(false); wfp.reload(m_AD_Workflow_ID, true); } // Delete Line else if (m_line != null) { - log.info("Delete Line: " + m_line); + if (log.isLoggable(Level.INFO)) + log.info("Delete Line: " + m_line); m_line.delete(false); wfp.reload(m_AD_Workflow_ID, true); } @@ -127,6 +163,10 @@ public class WFPopupItem extends Menuitem { log.warning("No Action??"); } // execute + /** + * Edit node properties + * @param wfp WFEditor + */ private void editNode(final WFEditor wfp) { String title = Msg.getMsg(Env.getCtx(), "Properties"); final Window w = new Window(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WWFActivity.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WWFActivity.java index 97e33aebbe..763722a1d1 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WWFActivity.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/wf/WWFActivity.java @@ -77,7 +77,7 @@ import org.zkoss.zul.South; import org.zkoss.zul.Vlayout; /** - * Direct port from WFActivity + * Workflow activity form * @author hengsin * */ @@ -85,7 +85,7 @@ import org.zkoss.zul.Vlayout; public class WWFActivity extends ADForm implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = -1658595186719510159L; /** Window No */ @@ -127,12 +127,19 @@ public class WWFActivity extends ADForm implements EventListener private WListbox listbox = new WListbox(); private final static String HISTORY_DIV_START_TAG = "
    "; + + /** + * default constructor + */ public WWFActivity() { super(); LayoutUtils.addSclass("workflow-activity-form", this); } + /** + * Load activities and layout form + */ protected void initForm() { loadActivities(); @@ -161,12 +168,20 @@ public class WWFActivity extends ADForm implements EventListener display(-1); } + /** + * set tooltip text of btn + * @param btn + * @param key AD_Message key + */ private void setTooltipText(Button btn, String key) { String text = Util.cleanAmp(Msg.translate(Env.getCtx(), key)); if (!Util.isEmpty(text, true)) btn.setTooltiptext(text); } + /** + * Layout form + */ private void init() { Grid grid = new Grid(); @@ -303,6 +318,7 @@ public class WWFActivity extends ADForm implements EventListener this.setStyle("height: 100%; width: 100%; position: relative;"); } + @Override public void onEvent(Event event) throws Exception { Component comp = event.getTarget(); @@ -342,7 +358,7 @@ public class WWFActivity extends ADForm implements EventListener /** * Get active activities count - * @return int + * @return pending activities count */ public int getActivitiesCount() { @@ -357,7 +373,7 @@ public class WWFActivity extends ADForm implements EventListener /** * Load Activities - * @return int + * @return number of activities loaded */ public int loadActivities() { @@ -422,7 +438,7 @@ public class WWFActivity extends ADForm implements EventListener } // loadActivities /** - * Reset Display + * Reset form and return activity at selIndex * @param selIndex select index * @return selected activity */ @@ -464,8 +480,8 @@ public class WWFActivity extends ADForm implements EventListener } // resetDisplay /** - * Display. - * Fill Editors + * Display activity at index + * @param index */ public void display (int index) { @@ -537,7 +553,7 @@ public class WWFActivity extends ADForm implements EventListener /** - * Zoom + * Zoom to workflow activity window */ private void cmd_zoom() { @@ -548,7 +564,7 @@ public class WWFActivity extends ADForm implements EventListener } // cmd_zoom /** - * Answer Button + * Action Button */ private void cmd_button() { @@ -565,8 +581,9 @@ public class WWFActivity extends ADForm implements EventListener MQuery query = MQuery.getEqualQuery(ColumnName, Record_ID); boolean IsSOTrx = m_activity.isSOTrx(); // - log.info("Zoom to AD_Window_ID=" + AD_Window_ID - + " - " + query + " (IsSOTrx=" + IsSOTrx + ")"); + if (log.isLoggable(Level.INFO)) + log.info("Zoom to AD_Window_ID=" + AD_Window_ID + + " - " + query + " (IsSOTrx=" + IsSOTrx + ")"); AEnv.zoom(AD_Window_ID, query); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTabListModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTabListModel.java index 52bdd7aa6b..c3a3707047 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTabListModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTabListModel.java @@ -22,29 +22,42 @@ import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; import org.zkoss.zul.ListitemRendererExt; +/** + * List model and List item renderer implementation for list of AD_Tab label. + * ADTabLabel class aside, this is not use any more. + */ public class ADTabListModel extends AbstractListModel implements ListitemRenderer, ListitemRendererExt { /** - * + * generated serial id */ private static final long serialVersionUID = 7683969121090679214L; - List listItems = null; + protected List listItems = null; private IADTabbox tabbox; + /** + * @param listItems + * @param tabbox + */ public ADTabListModel(List listItems, IADTabbox tabbox) { this.listItems = listItems; this.tabbox = tabbox; } + @Override public Object getElementAt(int index) { ADTabLabel item = index < listItems.size() ? listItems.get(index) : null; return item; } + @Override public int getSize() { return listItems.size(); } + /** + * Value object for AD_Tab + */ public static class ADTabLabel { public String label; public int tabLevel; @@ -83,14 +96,17 @@ public class ADTabListModel extends AbstractListModel implements Listite cell.setVisible(false); } + @Override public int getControls() { return DETACH_ON_RENDER; } + @Override public Listcell newListcell(Listitem item) { return null; } + @Override public Listitem newListitem(Listbox listbox) { ListItem item = new ListItem(); item.applyProperties(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeFavoriteOnDropListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeFavoriteOnDropListener.java index 94dfa0462a..34afe8d38b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeFavoriteOnDropListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeFavoriteOnDropListener.java @@ -57,7 +57,10 @@ public class ADTreeFavoriteOnDropListener implements EventListener private int mTreeFavID; - // + /** + * @param tree + * @param treeModel + */ public ADTreeFavoriteOnDropListener(Tree tree, FavoriteSimpleTreeModel treeModel) { this.tree = tree; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeOnDropListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeOnDropListener.java index 05e491cfd6..30550fc643 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeOnDropListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ADTreeOnDropListener.java @@ -44,15 +44,14 @@ import org.zkoss.zul.Treeitem; import org.zkoss.zul.Treerow; /** - * + * Handle on drop event of tree node * @author Low Heng Sin - * */ public class ADTreeOnDropListener implements EventListener { private SimpleTreeModel treeModel; private MTree mTree; - private int windowNo; + private int windowNo; private Tree tree; private static final CLogger log = CLogger.getCLogger(ADTreeOnDropListener.class); @@ -94,7 +93,8 @@ public class ADTreeOnDropListener implements EventListener { */ private void moveNode(DefaultTreeNode movingNode, DefaultTreeNode toNode) { - log.info(movingNode.toString() + " to " + toNode.toString()); + if (log.isLoggable(Level.INFO)) + log.info(movingNode.toString() + " to " + toNode.toString()); if (movingNode == toNode) return; @@ -111,9 +111,6 @@ public class ADTreeOnDropListener implements EventListener { int path[] = treeModel.getPath(toNode); Treeitem toItem = tree.renderItemByPath(path); - //tree.setSelectedItem(toItem); - //Events.sendEvent(tree, new Event(Events.ON_SELECT, tree)); - MenuListener listener = new MenuListener(movingNode, toNode); Menupopup popup = new Menupopup(); @@ -133,6 +130,12 @@ public class ADTreeOnDropListener implements EventListener { } // moveNode + /** + * Move movingNode to after toNode or into toNode (if moveInto is true) + * @param movingNode + * @param toNode + * @param moveInto true to insert movingNode into summary folder node + */ private void moveNode(DefaultTreeNode movingNode, DefaultTreeNode toNode, boolean moveInto) { DefaultTreeNode newParent; @@ -164,8 +167,6 @@ public class ADTreeOnDropListener implements EventListener { } @SuppressWarnings("unused") Treeitem movingItem = tree.renderItemByPath(path); - //tree.setSelectedItem(movingItem); - //Events.sendEvent(tree, new Event(Events.ON_SELECT, tree)); // *** Save changes to disk Trx trx = Trx.get (Trx.createTrxName("ADTree"), true); @@ -223,6 +224,13 @@ public class ADTreeOnDropListener implements EventListener { } } + /** + * Update parent_id and seqno of mtnMovingNode + * @param mtnParentNode + * @param mtnMovingNode + * @param NodeIndex + * @param trxName + */ private void updateNodePO(MTreeNode mtnParentNode, MTreeNode mtnMovingNode, int NodeIndex, String trxName) { StringBuilder whereClause = new StringBuilder("AD_Tree_ID=").append(mTree.getAD_Tree_ID()) .append(" AND Node_ID=").append(mtnMovingNode.getNode_ID()); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Accordion.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Accordion.java index 07f7f1a285..e35f0d2142 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Accordion.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Accordion.java @@ -29,22 +29,29 @@ import org.zkoss.zul.Div; import org.zkoss.zul.Vbox; /** - * A custom accoridon implementation using borderlayout + * A custom accordion implementation using borderlayout * @author hengsin * */ public class Accordion extends Borderlayout implements EventListener { - + /** + * generated serial id + */ private static final long serialVersionUID = 5898232602746332810L; private Vbox southBox; private Vbox northBox; + /** List of label for component in {@link #componentList} */ private List labelList = new ArrayList(); + /** List of header Div for component in {@link #componentList}. Header div is shown in {@link #northBox} */ private List
    headerList = new ArrayList
    (); private List componentList = new ArrayList(); private int selectedIndex = -1; + /** + * default constructor + */ public Accordion() { North north = new North(); appendChild(north); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AttachmentItem.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AttachmentItem.java index 3cbe4cd50c..7c43f6e28a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AttachmentItem.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AttachmentItem.java @@ -26,16 +26,17 @@ import org.zkoss.zul.A; import org.zkoss.zul.Span; /** - * + * Attachment item UI with Label and Link to remove attachment from container. * @author hengsin - * */ public class AttachmentItem extends Span implements EventListener{ /** * generate serial id */ private static final long serialVersionUID = -7599391160210459080L; + /** Attachment content */ private DataSource ds; + /** List that contains {@link #ds} */ private List list; public AttachmentItem(DataSource ds, List list, boolean removable) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java index 0ba47e335b..227d373c75 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java @@ -32,30 +32,33 @@ import org.zkoss.zul.Comboitem; * @author Niraj Sohun * Aug 20, 2007 */ - public class AutoComplete extends Combobox { /** - * + * generated serial id */ private static final long serialVersionUID = 7437206681528058083L; - /** comboItems All menu labels */ + /** comboItems All items */ private String[] comboItems; - /** strDescription Description of menu items */ + /** strDescription Description of items */ private String[] strDescription; + /** Image url or font icon sclass */ private String[] images; + /** Content for comboitem */ private String[] contents; + /** Value object for comboitem */ private Object[] values; + /** Comboitem:Content. Content is from {@link #contents} */ private HashMap mapItems = new HashMap(); /** - * Set menu labels + * Set items * * @param vals Menu labels */ @@ -65,6 +68,10 @@ public class AutoComplete extends Combobox setDict(vals, true); } + /** + * @param vals values + * @param sort true to sort in natural order + */ public void setDict(String[] vals, boolean sort) { comboItems = vals; @@ -76,9 +83,9 @@ public class AutoComplete extends Combobox } /** - * Set description of menu items + * Set description of items * - * @param vals Description of menu items + * @param vals Description of items */ public void setDescription(String[] vals) @@ -87,9 +94,9 @@ public class AutoComplete extends Combobox } /** - * Set content of menu items + * Set content of items * - * @param vals Content of menu items + * @param vals Content of items */ public void setContents(String[] vals) @@ -97,11 +104,19 @@ public class AutoComplete extends Combobox contents = vals; } + /** + * set image urls or font icon sclasses + * @param images + */ public void setImages(String[] images) { this.images = images; } + /** + * set comboitem object values + * @param values + */ public void setValues(Object[] values) { this.values = values; @@ -109,19 +124,25 @@ public class AutoComplete extends Combobox /** * Constructor - */ - + */ public AutoComplete() { if (comboItems != null) refresh(""); } + /** + * @param value + */ public AutoComplete(String value) { super.setValue(value); } + /** + * @param value + */ + @Override public void setValue(String value) { super.setValue(value); @@ -129,12 +150,11 @@ public class AutoComplete extends Combobox } /** - * Event handler responsible to reducing number of items - * Method is invoked each time something is typed in the combobox + * Event handler responsible to reducing number of items. + * Method is invoked each time something is typed in the combobox. * - * @param evt The event - */ - + * @param evt Input event + */ public void onChanging(InputEvent evt) { if (!evt.isChangingBySelectBack()) @@ -143,9 +163,10 @@ public class AutoComplete extends Combobox } } - /** - * Refresh comboitem based on the specified value. - */ + /** + * Filter {@link #comboItems} by val + * @param val input text + */ public void refresh(String val) { if (comboItems == null || val == null) { @@ -203,6 +224,10 @@ public class AutoComplete extends Combobox } } + /** + * @param item + * @return content text + */ public String getContent(Comboitem item) { return mapItems.get(item); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/BackgroundColours.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/BackgroundColours.java index ecb2edb2f1..3eccc97003 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/BackgroundColours.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/BackgroundColours.java @@ -17,6 +17,9 @@ package org.adempiere.webui.component; +/** + * Background color constants + */ public final class BackgroundColours { public final static String MANDATORY = "background-color:#fbb5b5"; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Bandbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Bandbox.java index f128eaf527..8e8f21e054 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Bandbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Bandbox.java @@ -18,7 +18,7 @@ package org.adempiere.webui.component; /** - * + * Extend {@link org.zkoss.zul.Bandbox} * @author Ashley G Ramdass * @date Mar 11, 2007 * @version $Revision: 0.10 $ @@ -26,15 +26,21 @@ package org.adempiere.webui.component; public class Bandbox extends org.zkoss.zul.Bandbox { /** - * + * generated serial id */ private static final long serialVersionUID = 5834568392276375501L; + /** + * @param enabled + */ public void setEnabled(boolean enabled) { this.setDisabled(!enabled); } + /** + * @return true if component is enabled, false otherwise + */ public boolean isEnabled() { return !isDisabled(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Borderlayout.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Borderlayout.java index f9167f0ad9..2188dd110b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Borderlayout.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Borderlayout.java @@ -1,6 +1,27 @@ -/** - * - */ +/*********************************************************************** + * This file is part of iDempiere ERP Open Source * + * http://www.idempiere.org * + * * + * Copyright (C) Contributors * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * 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., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301, USA. * + * * + * Contributors: * + * - teo_sarca * + **********************************************************************/ package org.adempiere.webui.component; import org.zkoss.zk.ui.Component; @@ -11,21 +32,29 @@ import org.zkoss.zul.South; import org.zkoss.zul.West; /** + * Extend {@link org.zkoss.zul.Borderlayout} * @author teo_sarca - * */ public class Borderlayout extends org.zkoss.zul.Borderlayout { /** - * + * generated serial id */ private static final long serialVersionUID = -6976820221945897268L; + /** + * Default constructor + */ public Borderlayout() { super(); } + /** + * Add component to North + * @param c Component + * @return this + */ public Borderlayout appendNorth(Component c) { North north = getNorth(); @@ -37,6 +66,12 @@ public class Borderlayout extends org.zkoss.zul.Borderlayout north.appendChild(c); return this; } + + /** + * Add component to West + * @param c Component + * @return this + */ public Borderlayout appendWest(Component c) { West west = getWest(); @@ -48,6 +83,12 @@ public class Borderlayout extends org.zkoss.zul.Borderlayout west.appendChild(c); return this; } + + /** + * Add component to South + * @param c Component + * @return this + */ public Borderlayout appendSouth(Component c) { South south = getSouth(); @@ -59,6 +100,12 @@ public class Borderlayout extends org.zkoss.zul.Borderlayout south.appendChild(c); return this; } + + /** + * Add component to East + * @param c Component + * @return this + */ public Borderlayout appendEast(Component c) { East east = getEast(); @@ -70,6 +117,12 @@ public class Borderlayout extends org.zkoss.zul.Borderlayout east.appendChild(c); return this; } + + /** + * Add component to Center + * @param c Component + * @return this + */ public Borderlayout appendCenter(Component c) { Center center = getCenter(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Button.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Button.java index 6584ac1c5c..6b229fa62d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Button.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Button.java @@ -21,7 +21,7 @@ import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; /** - * + * Extend {@link org.zkoss.zul.Button} * @author Ashley G Ramdass * @date Mar 12, 2007 * @version $Revision: 0.10 $ @@ -29,38 +29,57 @@ import org.zkoss.zk.ui.event.Events; public class Button extends org.zkoss.zul.Button { /** - * + * generated serial id */ private static final long serialVersionUID = -6562573800018819691L; private String name; + /** + * Default constructor + */ public Button() { super(); setAutodisable("self"); } + /** + * @param label + */ public Button(String label) { super(label); setAutodisable("self"); } + /** + * Set name of button + * @param name + */ public void setName(String name) { this.name = name; } + /** + * @return name of button + */ public String getName() { return this.name; } + /** + * @param enabled + */ public void setEnabled(boolean enabled) { super.setDisabled(!enabled); } + /** + * @return true if enable, false otherwise + */ public boolean isEnabled() { return !super.isDisabled(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Checkbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Checkbox.java index 836d876e35..01c7b4231c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Checkbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Checkbox.java @@ -21,7 +21,7 @@ import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; /** - * + * Extend {@link org.zkoss.zul.Checkbox} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -29,15 +29,21 @@ import org.zkoss.zk.ui.event.Events; public class Checkbox extends org.zkoss.zul.Checkbox { /** - * + * generated serial id */ private static final long serialVersionUID = 3306775098016676628L; + /** + * @param enabled + */ public void setEnabled(boolean enabled) { this.setDisabled(!enabled); } + /** + * @return true if enable, false otherwise + */ public boolean isEnabled() { return !this.isDisabled(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ChosenSearchBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ChosenSearchBox.java index 7aec96e96c..9635549b50 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ChosenSearchBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ChosenSearchBox.java @@ -20,21 +20,20 @@ import java.beans.PropertyChangeSupport; import org.adempiere.webui.LayoutUtils; import org.compiere.util.ValueNamePair; import org.zkoss.addon.chosenbox.Chosenbox; -import org.zkoss.zk.ui.Page; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Div; /** + * Composite component of {@link Chosenbox} and {@link Button} * @author Low Heng Sin */ public class ChosenSearchBox extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = -3152111756471436612L; - protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport( - this); + protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this); protected Chosenbox chosenbox; protected Button btn; @@ -55,12 +54,16 @@ public class ChosenSearchBox extends Div { } /** + * Set image url for button * @param imageSrc */ public void setButtonImage(String imageSrc) { btn.setImage(imageSrc); } + /** + * Layout component + */ private void initComponents() { if (chosenbox == null) chosenbox = new Chosenbox<>(); @@ -106,16 +109,18 @@ public class ChosenSearchBox extends Div { } /** - * @return boolean + * @return true if enable, false otherwise */ public boolean isEnabled() { return btn.isEnabled(); } /** + * If evtnm is ON_CLICK, add listener to {@link #btn}, otherwise add to {@link #chosenbox}. * @param evtnm * @param listener */ + @Override public boolean addEventListener(String evtnm, EventListener listener) { if (Events.ON_CLICK.equals(evtnm)) { return btn.addEventListener(evtnm, listener); @@ -125,13 +130,14 @@ public class ChosenSearchBox extends Div { } /** - * @param l + * @param l PropertyChangeListener */ public synchronized void addPropertyChangeListener(PropertyChangeListener l) { m_propertyChangeListeners.addPropertyChangeListener(l); } /** + * Set tooltip text for {@link #chosenbox} * @param tooltiptext */ public void setToolTipText(String tooltiptext) { @@ -145,6 +151,9 @@ public class ChosenSearchBox extends Div { return btn; } + /** + * @param flag true for grid view, false otherwise + */ public void setTableEditorMode(boolean flag) { if (flag) { setHflex("0"); @@ -157,9 +166,4 @@ public class ChosenSearchBox extends Div { } } - - @Override - public void onPageAttached(Page newpage, Page oldpage) { - super.onPageAttached(newpage, oldpage); - } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Column.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Column.java index c1191e5825..ca814b389d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Column.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Column.java @@ -17,22 +17,30 @@ package org.adempiere.webui.component; - +/** + * Extend {@link org.zkoss.zul.Column} + */ public class Column extends org.zkoss.zul.Column { /** - * + * generated serial id */ private static final long serialVersionUID = 8036743691725958481L; + /** + * default constructor + */ public Column() { this(null); } - public Column(String str) + /** + * @param label column label/header + */ + public Column(String label) { - this.setLabel(str); + this.setLabel(label); } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Columns.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Columns.java index e508ec0dee..7c3e2b2c51 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Columns.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Columns.java @@ -17,11 +17,13 @@ package org.adempiere.webui.component; - +/** + * Extend {@link org.zkoss.zul.Columns} + */ public class Columns extends org.zkoss.zul.Columns { /** - * + * generated serial id */ private static final long serialVersionUID = 702502881459697527L; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combinationbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combinationbox.java index eb86597108..950ef039e9 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combinationbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combinationbox.java @@ -14,17 +14,19 @@ package org.adempiere.webui.component; /** - * + * Component for account editor * @author Low Heng Sin - * */ public class Combinationbox extends EditorBox { /** - * + * generated serial id */ private static final long serialVersionUID = -3743140893368022592L; + /** + * Default constructor + */ public Combinationbox() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboEditorBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboEditorBox.java index fa41c97f11..c8dd286674 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboEditorBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboEditorBox.java @@ -37,18 +37,21 @@ import org.zkoss.zul.ComboitemRenderer; import org.zkoss.zul.Div; /** + * Composite component with {@link Combobox} and {@link Button} * @author Low Heng Sin */ public class ComboEditorBox extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = 4187563277424346012L; - protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport( - this); + protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this); protected Combobox txt; protected Button btn; + /** + * Default constructor + */ public ComboEditorBox() { initComponents(); } @@ -62,12 +65,15 @@ public class ComboEditorBox extends Div { } /** - * @param imageSrc + * @param imageSrc image url of button */ public void setButtonImage(String imageSrc) { btn.setImage(imageSrc); } + /** + * Layout component + */ private void initComponents() { txt = new Combobox(); txt.setButtonVisible(false); @@ -138,13 +144,14 @@ public class ComboEditorBox extends Div { } /** - * @return boolean + * @return true if enable, false otherwise */ public boolean isEnabled() { return btn.isEnabled(); } /** + * If evtnm is ON_CLICK, add to {@link #btn}, otherwise add to {@link #txt} * @param evtnm * @param listener */ @@ -157,7 +164,7 @@ public class ComboEditorBox extends Div { } /** - * @param l + * @param l PropertyChangeListener */ public synchronized void addPropertyChangeListener(PropertyChangeListener l) { m_propertyChangeListeners.addPropertyChangeListener(l); @@ -177,6 +184,10 @@ public class ComboEditorBox extends Div { return btn; } + /** + * set grid view mode on/off + * @param flag + */ public void setTableEditorMode(boolean flag) { if (flag) { ZKUpdateUtil.setHflex(this, "0"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboItem.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboItem.java index 65d6a73c59..a9cd421822 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboItem.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ComboItem.java @@ -17,8 +17,10 @@ package org.adempiere.webui.component; +import org.zkoss.zul.Comboitem; + /** - * Bad stuff, cannot overide method equals in AbstractComponent. + * Extend {@link Comboitem} * @author Ashley G Ramdass * @date Mar 10, 2007 * @version $Revision: 0.10 $ @@ -26,15 +28,22 @@ package org.adempiere.webui.component; public class ComboItem extends org.zkoss.zul.Comboitem { /** - * + * generated serial id */ private static final long serialVersionUID = 8483161780731035079L; + /** + * @param label + */ public ComboItem(String label) { super(label); } + /** + * @param label + * @param value + */ public ComboItem(String label, Object value) { super(label); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combobox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combobox.java index e8fea7d65c..d812bceb59 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combobox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Combobox.java @@ -30,26 +30,42 @@ import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Comboitem; /** - * + * Extend {@link org.zkoss.zul.Combobox} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ */ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace { + /** + * generated serial id + */ + private static final long serialVersionUID = -6278632602577424842L; + + /** + * Default constructor + */ public Combobox() { super(); override(); init(); } + /** + * @param value + * @throws WrongValueException + */ public Combobox(String value) throws WrongValueException { super(value); override(); init(); } + /** + * Setup initial state of component + */ private void init() { + //ctrl+down to open combobox dropdown this.setCtrlKeys("^#down"); this.addEventListener(Events.ON_CTRL_KEY, e -> { if (this.isEnabled() && LayoutUtils.isReallyVisible(this)) { @@ -60,6 +76,9 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace }); } + /** + * override "shallIgnoreClick_" + */ private void override() { // idempiere always want to show context ever on disable control this.setWidgetOverride("shallIgnoreClick_", "function(evt) {" @@ -68,10 +87,8 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace } /** - * + * @param enabled */ - private static final long serialVersionUID = -6278632602577424842L; - public void setEnabled(boolean enabled) { this.setDisabled(!enabled); @@ -87,6 +104,11 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace } } + /** + * Add new combo item + * @param label + * @return added Comboitem + */ public Comboitem appendItem(String label) { ComboItem item = new ComboItem(label); @@ -97,6 +119,9 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace return item; } + /** + * @return true if enable, false otherwise + */ public boolean isEnabled() { return !isDisabled(); } @@ -111,6 +136,11 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace } } + /** + * add new combo item + * @param name + * @param value + */ public void appendItem(String name, Object value) { ComboItem item = new ComboItem(name, value); String id = AdempiereIdGenerator.escapeId(name); @@ -120,10 +150,10 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace } /** - * Set selected item for the list box based on the value of list item - * set selected to none if no item found matching the value given or - * value is null - * @param value Value of ListItem to set as selected + * Set selected item for the combo box based on the value of combo item.
    + * Set selected to none if no item found matching the value given or + * value is null. + * @param value Value of ComboItem to set as selected */ public void setValue(Object value) { @@ -157,9 +187,8 @@ public class Combobox extends org.zkoss.zul.Combobox implements IdSpace } /** - * * @param value - * @return boolean + * @return true if current selected combo item is with value equal to value parameter */ public boolean isSelected(Object value) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java index c4b50acf2b..f1bad1dbdb 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java @@ -33,8 +33,7 @@ import org.zkoss.zul.Div; import org.zkoss.zul.Hlayout; import org.zkoss.zul.Messagebox; /** - * Application Confirm Panel - * Web UI port of the rich client's ConfirmPanel by Jorg Janke + * Confirm Panel for window, form and dialog * @author Sendy Yagambrum * @date July 25, 2007 **/ @@ -43,7 +42,7 @@ public final class ConfirmPanel extends Div private static final String SMALL_SCREEN_BUTTON_CLASS = "btn-small small-img-btn"; /** - * + * generated serial id */ private static final long serialVersionUID = -2054986459098954685L; @@ -79,6 +78,7 @@ public final class ConfirmPanel extends Div private boolean m_withText = false; + /** Name:Button */ private Map buttonMap = new HashMap(); private boolean m_withImage = true; @@ -116,6 +116,12 @@ public final class ConfirmPanel extends Div return button; } + /** + * @param name + * @param image + * @param tooltip + * @return Button + */ public Button createButton(String name, String image, String tooltip) { Button button = ButtonFactory.createButton(name, image, tooltip); @@ -176,7 +182,7 @@ public final class ConfirmPanel extends Div * @param withHistoryButton with history * @param withZoomButton with zoom * @param withText - * @param withImage Incude image for button. Note that image always included if withText is false + * @param withImage Include image for button. Note that image always included if withText is false */ public ConfirmPanel(boolean withCancelButton, boolean withRefreshButton, @@ -230,25 +236,29 @@ public final class ConfirmPanel extends Div /** * Create confirm panel with Ok and Cancel button - * @param withCancel with cancel + * @param withCancel true to include cancel button, false otherwise * */ public ConfirmPanel(boolean withCancel) { this(withCancel,false,false,false,false,false); } - // + + /** Right buttons area */ private Hlayout pnlBtnRight; + /** Left buttons area */ private Hlayout pnlBtnLeft; // IDEMPIERE-1334 center panel, contain all process button private Hlayout pnlBtnCenter; + /** Extra sclass for button */ private String extraButtonSClass; + /** true to use {@link #SMALL_SCREEN_BUTTON_CLASS} for compact screen */ private boolean useSmallButtonClassForSmallScreen; /** - * initialise components + * Layout panel */ private void init() { @@ -257,13 +267,10 @@ public final class ConfirmPanel extends Div pnlBtnRight = new Hlayout(); pnlBtnRight.setSclass("confirm-panel-right"); - // IDEMPIERE-1334 start pnlBtnCenter = new Hlayout(); pnlBtnCenter.setSclass("confirm-panel-center"); - // IDEMPIERE-1334 end this.appendChild(pnlBtnLeft); - // IDEMPIERE-1334 this.appendChild(pnlBtnCenter); this.appendChild(pnlBtnRight); this.setSclass("confirm-panel"); @@ -272,38 +279,43 @@ public final class ConfirmPanel extends Div } /** - * IDEMPIERE-1334 - * add a process button into center panel + * add button to center area of panel * @param btName * @param imgName * @return */ public Button addButton (String btName, String imgName){ - Button btProcess = createButton(btName); + Button button = createButton(btName); // replace default image with image set at info process if (m_withImage && imgName != null && imgName.trim().length() > 0) { if (ThemeManager.isUseFontIconForImage()) - btProcess.setIconSclass(ThemeManager.getIconSclass(imgName)); + button.setIconSclass(ThemeManager.getIconSclass(imgName)); else - btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); + button.setImage(ThemeManager.getThemeResource("images/" + imgName)); } - addComponentsCenter(btProcess); - return btProcess; + addComponentsCenter(button); + return button; } + /** + * add process button to center area of panel + * @param btName + * @param imgName + * @return Button + */ public Button addProcessButton (String btName, String imgName){ - Button btProcess = createButton(btName, imgName, null); - // replace default image with image set at info process - if (m_withImage && imgName != null && imgName.trim().length() > 0) - { - if (ThemeManager.isUseFontIconForImage()) - btProcess.setIconSclass(ThemeManager.getIconSclass(imgName)); - else - btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); - } - addComponentsCenter(btProcess); - return btProcess; + Button btProcess = createButton(btName, imgName, null); + // replace default image with image set at info process + if (m_withImage && imgName != null && imgName.trim().length() > 0) + { + if (ThemeManager.isUseFontIconForImage()) + btProcess.setIconSclass(ThemeManager.getIconSclass(imgName)); + else + btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); + } + addComponentsCenter(btProcess); + return btProcess; } /** @@ -333,7 +345,7 @@ public final class ConfirmPanel extends Div } /** - * add button to the front of right side of the confirm panel + * add button to the front of right area of the confirm panel * @param button button */ public void addComponentsBeforeRight(Button button) @@ -346,8 +358,7 @@ public final class ConfirmPanel extends Div } /** - * IDEMPIERE-1334 - * add button to the center side of the confirm panel + * add button to the center area of the confirm panel * @param button button */ public void addComponentsCenter(Button button) @@ -360,7 +371,7 @@ public final class ConfirmPanel extends Div } /** - * Add combobox to center panel + * Add combobox to center area of panel * @param cbb */ public void addComponentsCenter(Combobox cbb){ @@ -368,7 +379,7 @@ public final class ConfirmPanel extends Div } /** - * Add checkbox to center panel + * Add checkbox to center area of panel * @param cb */ public void addComponentsCenter(Checkbox cb){ @@ -429,6 +440,7 @@ public final class ConfirmPanel extends Div btn.setVisible(visible); } } + /** * returns whether the specified button is visible or not * @param btnName @@ -469,6 +481,7 @@ public final class ConfirmPanel extends Div return false; } } + /** * enable specific button * @param id button id @@ -500,8 +513,8 @@ public final class ConfirmPanel extends Div } /** - * enable all components - * @param enabled enabled + * enable/disable all buttons + * @param enabled true to enable, false otherwise */ public void setEnabledAll(boolean enabled) { @@ -524,18 +537,16 @@ public final class ConfirmPanel extends Div Button button = (Button)iter2.next(); button.setEnabled(enabled); } - // IDEMPIERE-1334 start while (iter3.hasNext()) { Button button = (Button)iter3.next(); button.setEnabled(enabled); } - // IDEMPIERE-1334 end } /** - * add action listener on the existing buttons - * @param event event - * @param listener listener + * add event listener on existing buttons + * @param event event name + * @param listener EventListener */ public void addActionListener(String event, EventListener listener) { @@ -558,7 +569,6 @@ public final class ConfirmPanel extends Div Button button = (Button)iter2.next(); button.addEventListener(event, listener); } - // IDEMPIERE-1334 start while (iter3.hasNext()) { Object element = iter3.next(); @@ -567,12 +577,11 @@ public final class ConfirmPanel extends Div ((Button)element).addEventListener(event, listener); } } - // IDEMPIERE-1334 start } /** - * added to ease porting of swing form - * @param listener + * add ON_CLICK listener for all buttons + * @param listener EventListener */ public void addActionListener(EventListener listener) { addActionListener(Events.ON_CLICK, listener); @@ -594,6 +603,11 @@ public final class ConfirmPanel extends Div return getButton(A_OK); } + /** + * Add cls to sclass property of all buttons. + * Keep as {@link #extraButtonSClass} for new button created. + * @param cls + */ public void addButtonSclass(String cls) { for(Button btn : buttonMap.values()) { LayoutUtils.addSclass(cls, btn); @@ -601,18 +615,27 @@ public final class ConfirmPanel extends Div extraButtonSClass = cls; } + /** + * Remove cls from sclass property of all buttons + * @param cls + */ public void removeButtonSclass(String cls) { for(Button btn : buttonMap.values()) { LayoutUtils.removeSclass(cls, btn); } } + /** + * Enable the use of {@link #SMALL_SCREEN_BUTTON_CLASS} for all buttons. + */ public void useSmallButtonClassForSmallScreen() { useSmallButtonClassForSmallScreen = true; addButtonSclass(SMALL_SCREEN_BUTTON_CLASS); } - /** Returns the map containing all buttons attached to the ConfirmPanel */ + /** + * @return map containing all buttons attached to ConfirmPanel + */ public Map getMap() { return buttonMap; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Datebox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Datebox.java index 9989878fbd..d7f5a2c380 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Datebox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Datebox.java @@ -22,7 +22,7 @@ import org.compiere.util.DisplayType; import org.compiere.util.Env; /** - * + * Extend {@link org.zkoss.zul.Datebox} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -30,15 +30,22 @@ import org.compiere.util.Env; public class Datebox extends org.zkoss.zul.Datebox { /** - * + * generated serial id */ private static final long serialVersionUID = -5890574778856946570L; + /** + * Default constructor. + * Set format to pattern from {@link DisplayType#getDateFormat(org.compiere.util.Language)}. + */ public Datebox() { super(); setFormat(DisplayType.getDateFormat(AEnv.getLanguage(Env.getCtx())).toPattern()); } + /** + * @param enabled + */ public void setEnabled(boolean enabled) { this.setReadonly(!enabled); @@ -46,6 +53,9 @@ public class Datebox extends org.zkoss.zul.Datebox this.setButtonVisible(enabled); } + /** + * @return true if enable, false otherwise + */ public boolean isEnabled() { return !isReadonly(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DatetimeBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DatetimeBox.java index a50dfad606..f2ad7658b3 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DatetimeBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DatetimeBox.java @@ -22,20 +22,23 @@ import java.util.TimeZone; import org.zkoss.zk.ui.event.EventListener; /** - * + * Composite component with {@link Datebox} and {@link Timebox} * @author Low Heng Sin * */ public class DatetimeBox extends Panel { /** - * + * generated serial id */ private static final long serialVersionUID = -1075410511739601354L; private Datebox dateBox; private Timebox timeBox; private TimeZone timeZone; + /** + * Default constructor + */ public DatetimeBox() { dateBox = new Datebox(); dateBox.setCols(10); @@ -47,6 +50,9 @@ public class DatetimeBox extends Panel { initComponents(); } + /** + * Set initial state of component + */ private void initComponents() { this.setSclass("datetime-box"); } @@ -60,7 +66,7 @@ public class DatetimeBox extends Panel { } /** - * @param text + * @param text input datetime text. assume date and time part is separated by white space character. */ public void setText(String text) { if (text != null && text.trim().length() > 0) @@ -78,25 +84,33 @@ public class DatetimeBox extends Panel { } /** - * @return String + * @return text from {@link #dateBox} and {@link #timeBox}, separated by single white space character */ public String getText() { return dateBox.getText() + " " + timeBox.getText(); } + /** + * add event listener to {@link #dateBox} and {@link #timeBox} + * @param evtnm + * @param listener + * @return true if added + */ @Override public boolean addEventListener(String evtnm, EventListener listener) { return dateBox.addEventListener(evtnm, listener) && timeBox.addEventListener(evtnm, listener); } /** - * @return boolean + * @return true if enable, false otherwise */ public boolean isEnabled() { return !dateBox.isReadonly(); } /** + * Enable/disable {@link #dateBox} and {@link #timeBox}.
    + * Hide button of {@link #dateBox} and {@link #timeBox} if disable/readonly. * @param readWrite */ public void setEnabled(boolean readWrite) { @@ -107,7 +121,7 @@ public class DatetimeBox extends Panel { } /** - * @return date + * @return Date (include date and time) */ public Date getValue() { Date d = null; @@ -150,7 +164,7 @@ public class DatetimeBox extends Panel { } /** - * + * Set format of {@link #dateBox} * @param dateFormat */ public void setDateFormat(SimpleDateFormat dateFormat) { @@ -174,8 +188,8 @@ public class DatetimeBox extends Panel { } /** - * - * @param tz + * Set time zone of {@link #dateBox} and {@link #timeBox} + * @param tz TimeZone */ public void setTimeZone(TimeZone tz) { this.timeZone = tz; @@ -188,8 +202,7 @@ public class DatetimeBox extends Panel { } /** - * - * @param localTime + * @param localTime LocalDateTime */ public void setValueInLocalDateTime(LocalDateTime localTime) { dateBox.setValueInLocalDateTime(localTime); @@ -197,8 +210,7 @@ public class DatetimeBox extends Panel { } /** - * - * @param zdt + * @param zdt ZonedDateTime */ public void setValueInZonedDateTime(ZonedDateTime zdt) { dateBox.setValueInZonedDateTime(zdt); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DesktopTabpanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DesktopTabpanel.java index 4c7aedcb19..68377fa15e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DesktopTabpanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DesktopTabpanel.java @@ -12,17 +12,18 @@ *****************************************************************************/ package org.adempiere.webui.component; +import org.adempiere.webui.desktop.DefaultDesktop; import org.zkoss.zk.ui.IdSpace; /** - * Tabpanel use by desktop to host AD Window, implements IdSpace to avoid Id conflict + * Tabpanel use by {@link DefaultDesktop} to display each open window (AD Window, form, process dialog, etc) as tab. Implements IdSpace to avoid Id conflict. * @author Low Heng Sin * */ public class DesktopTabpanel extends Tabpanel implements IdSpace { /** - * generated serail version id + * generated serial id */ private static final long serialVersionUID = -7142048018260264752L; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DocumentLink.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DocumentLink.java index 4ada9fd394..27cc47d54f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DocumentLink.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DocumentLink.java @@ -36,7 +36,7 @@ import org.zkoss.zul.A; */ public class DocumentLink extends A implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = 1498406053715803814L; @@ -45,28 +45,54 @@ public class DocumentLink extends A implements EventListener { protected int recordId; + /** + * @return Record_ID + */ public int getRecordId() { return recordId; } + /** + * set Record_ID + * @param recordId + */ public void setRecordId(int recordId) { this.recordId = recordId; } protected int adTableId; + /** + * @return AD_Table_ID + */ public int getAdTableId() { return adTableId; } + /** + * set AD_Table_ID + * @param adTableId + */ public void setAdTableId(int adTableId) { this.adTableId = adTableId; } + /** + * @param label + * @param adTableId AD_Table_ID + * @param recordId Record_ID + */ public DocumentLink(String label, int adTableId, int recordId){ this(label, adTableId, recordId, null); } + /** + * @param label + * @param adTableId AD_Table_ID + * @param recordId Record_ID + * @param clickHandle Optional listener for ON_CLICK event. If null, the component + * will handle ON_CLICK event and zoom to AD Window by table and record id. + */ public DocumentLink(String label, int adTableId, int recordId, EventListener clickHandle){ super(); if (label == null || label.trim().length() == 0) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DrillCommand.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DrillCommand.java index 6bad2d29e5..861f8bfa0a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DrillCommand.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DrillCommand.java @@ -23,19 +23,24 @@ import org.zkoss.zk.au.AuRequest; import org.zkoss.zk.au.AuService; import org.zkoss.zk.mesg.MZk; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Desktop; import org.zkoss.zk.ui.UiException; import org.zkoss.zk.ui.event.Events; /** - * + * {@link Desktop} listener for onDrillAcross and onDrillDown {@link AuRequest}.
    + * Create {@link DrillEvent} from {@link AuRequest} and post to the component that send the {@link AuRequest}. * @author hengsin - * */ public class DrillCommand implements AuService { + /** + * Default constructor + */ public DrillCommand() { } + @Override public boolean service(AuRequest request, boolean everError) { if (!DrillEvent.ON_DRILL_ACROSS.equals(request.getCommand()) && !DrillEvent.ON_DRILL_DOWN.equals(request.getCommand())) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DynamicMediaLink.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DynamicMediaLink.java index b645080615..f4f374938f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DynamicMediaLink.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/DynamicMediaLink.java @@ -22,8 +22,8 @@ import org.zkoss.zul.A; import org.zkoss.zul.Filedownload; /** + * Link to download media * @author hengsin - * */ public class DynamicMediaLink extends A { @@ -33,7 +33,10 @@ public class DynamicMediaLink extends A { private static final long serialVersionUID = 5017833977652241179L; private AMedia media; - + + /** + * Default constructor + */ public DynamicMediaLink() { super(); this.addEventListener(Events.ON_CLICK, new EventListener() { @@ -45,14 +48,25 @@ public class DynamicMediaLink extends A { }); } + /** + * @param label + * @param image + */ public DynamicMediaLink(String label, String image) { super(label, image); } + /** + * @param label + */ public DynamicMediaLink(String label) { super(label); } + /** + * Set media for download + * @param media + */ public void setMedia(AMedia media) { this.media = media; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/EditorBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/EditorBox.java index 3142b5cdab..07e08f3493 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/EditorBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/EditorBox.java @@ -22,18 +22,21 @@ import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Div; /** + * Composite component with {@link Textbox} and {@link Button} * @author Low Heng Sin */ public class EditorBox extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = -3152111756471436612L; - protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport( - this); + protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this); protected Textbox txt; protected Button btn; + /** + * Default constructor + */ public EditorBox() { initComponents(); } @@ -53,6 +56,9 @@ public class EditorBox extends Div { btn.setImage(imageSrc); } + /** + * Layout component + */ private void initComponents() { txt = new Textbox(); txt.setSclass("editor-input"); @@ -69,13 +75,14 @@ public class EditorBox extends Div { } /** - * @return textbox component + * @return Textbox component */ public Textbox getTextbox() { return txt; } /** + * Set value to text box * @param value */ public void setText(String value) { @@ -83,13 +90,15 @@ public class EditorBox extends Div { } /** - * @return text + * @return text from text box */ public String getText() { return txt.getText(); } /** + * Enable/disable component. + * Hide button when component is diable/readonly. * @param enabled */ public void setEnabled(boolean enabled) { @@ -111,15 +120,16 @@ public class EditorBox extends Div { } /** - * @return boolean + * @return true if enable, false otherwise */ public boolean isEnabled() { return btn.isEnabled(); } /** - * @param evtnm - * @param listener + * If evtnm is ON_CLICK, add listener to {@link #btn}, else add listener to {@link #txt} + * @param evtnm Event name + * @param listener EventListener */ public boolean addEventListener(String evtnm, EventListener listener) { if (Events.ON_CLICK.equals(evtnm)) { @@ -130,7 +140,7 @@ public class EditorBox extends Div { } /** - * @param l + * @param l PropertyChangeListener */ public synchronized void addPropertyChangeListener(PropertyChangeListener l) { m_propertyChangeListeners.addPropertyChangeListener(l); @@ -150,6 +160,10 @@ public class EditorBox extends Div { return btn; } + /** + * Set grid view mode. + * @param flag + */ public void setTableEditorMode(boolean flag) { if (flag) { ZKUpdateUtil.setHflex(this, "0"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FToolbar.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FToolbar.java index 060db7df65..1469942217 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FToolbar.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FToolbar.java @@ -20,18 +20,23 @@ package org.adempiere.webui.component; import org.zkoss.zul.Toolbar; /** - * + * Extend {@link Toolbar} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ + * @deprecated Replace by {@link ToolBar} */ +@Deprecated public class FToolbar extends Toolbar { /** - * + * generated serial id */ private static final long serialVersionUID = 7108523012451551639L; + /** + * @return id of component + */ public String getName() { return getId(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FWindow.java index d0c6dee25a..9a1e66e7df 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FWindow.java @@ -19,18 +19,23 @@ package org.adempiere.webui.component; /** - * + * Extend {@link org.zkoss.zul.Window} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ + * @deprecated Just use {@link Window} instead */ +@Deprecated public class FWindow extends Window { /** - * + * generated serial id */ private static final long serialVersionUID = 7047997664627639977L; + /** + * Default constructor + */ public FWindow() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FavoriteSimpleTreeModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FavoriteSimpleTreeModel.java index c9e33c0907..680427b055 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FavoriteSimpleTreeModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FavoriteSimpleTreeModel.java @@ -59,9 +59,8 @@ import org.zkoss.zul.event.TreeDataEvent; */ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventListener, TreeitemRenderer { - /** - * + * generated serial id */ private static final long serialVersionUID = 6950349031548896628L; private static final CLogger LOG = CLogger.getCLogger(FavoriteSimpleTreeModel.class); @@ -72,7 +71,9 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis private boolean itemDraggable; - // + /** + * @param root + */ public FavoriteSimpleTreeModel(DefaultTreeNode root) { super(root); @@ -122,7 +123,7 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis /** * Creating Tree hierarchy * - * @param root + * @param root MTreeNode * @return {@link FavoriteSimpleTreeModel} */ public static FavoriteSimpleTreeModel createFrom(MTreeNode root) @@ -136,8 +137,8 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis /** * Populate Node * - * @param stNode - * @param root + * @param stNode Root DefaultTreeNode + * @param root Root MTreeNode */ private static void populate(DefaultTreeNode stNode, MTreeNode root) { @@ -299,6 +300,10 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis } } // onEvent + /** + * Add new node to tree + * @param newNode + */ public void addNode(DefaultTreeNode newNode) { DefaultTreeNode root = (DefaultTreeNode) getRoot(); @@ -307,11 +312,21 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis fireEvent(TreeDataEvent.INTERVAL_ADDED, getPath(root), root.getChildCount() - 1, root.getChildCount() - 1); } // addNode + /** + * Get child node + * @param parent Parent node + * @param index Index of child node + * @return DefaultTreeNode + */ public DefaultTreeNode getChild(DefaultTreeNode parent, int index) { return (DefaultTreeNode) (parent).getChildAt(index); } // getChild + /** + * Open window to create new record + * @param menuID + */ private void onNewRecord(int menuID) { try @@ -344,21 +359,35 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis } } // onNewRecord + /** + * @param listener + */ public void addOnDropEventListener(EventListener listener) { onDropListners.add(listener); } + /** + * @param isDraggable + */ public void setItemDraggable(boolean isDraggable) { itemDraggable = isDraggable; } + /** + * @return true if item is draggable, false otherwise + */ public boolean isItemDraggable() { return itemDraggable; } + /** + * Get icon image url for tree node (folder, window, report, etc) + * @param mt MTreeNode + * @return icon image url + */ private static String getIconFile(MTreeNode mt) { if (mt.isSummary()) @@ -378,6 +407,11 @@ public class FavoriteSimpleTreeModel extends SimpleTreeModel implements EventLis return "images/mWindow.png"; } + /** + * Get font icon sclass for tree node (summary, window, report, etc) + * @param mt + * @return font icon sclass + */ private static String getIconSclass(MTreeNode mt) { if (mt.isSummary()) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FilenameBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FilenameBox.java index 7cdb5dc82b..042b40342e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FilenameBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FilenameBox.java @@ -17,17 +17,20 @@ import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; /** - * + * Composite component of textbox and file upload button. * @author Low Heng Sin * */ public class FilenameBox extends EditorBox { /** - * + * generated serial id */ private static final long serialVersionUID = -3438731624652907300L; + /** + * Default constructor + */ public FilenameBox() { super(); @@ -44,8 +47,9 @@ public class FilenameBox extends EditorBox btn.setUpload(AdempiereWebUI.getUploadSetting()); } - /* (non-Javadoc) - * @see org.adempiere.webui.component.EditorBox#addEventListener(java.lang.String, org.zkoss.zk.ui.event.EventListener) + /** + * If evtnm is ON_UPLOAD, add listener to button.
    + * {@inheritDoc} */ @Override public boolean addEventListener(String evtnm, EventListener listener) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java index 5a42ab0736..8c24f9ea3c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java @@ -41,11 +41,12 @@ import org.zkoss.zul.South; public class FolderBrowser extends Window implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = 5477614056976038703L; private Textbox txtPath = new Textbox(); + /** Listbox of folders and files */ private Listbox listDir = new Listbox(); private ConfirmPanel confirmPanel = new ConfirmPanel(true); @@ -53,13 +54,15 @@ public class FolderBrowser extends Window implements EventListener private String path; private File root; + /** + * Default constructor + */ public FolderBrowser() { this(null, false); } /** - * * @param browseForFolder */ public FolderBrowser(boolean browseForFolder) @@ -68,9 +71,8 @@ public class FolderBrowser extends Window implements EventListener } /** - * - * @param rootPath - * @param browseForFolder + * @param rootPath Optional root folder. If null, take ZK_ROOT_FOLDER_BROWSER from AD_SysConfig or iDempiere home as root folder. + * @param browseForFolder true for folder browser, false for file. */ public FolderBrowser(String rootPath, boolean browseForFolder) { @@ -117,6 +119,10 @@ public class FolderBrowser extends Window implements EventListener AEnv.showWindow(this); } + /** + * Get files and folders under dirPath + * @param dirPath Directory path + */ private void getFileListing(String dirPath) { File dir = new File(dirPath); @@ -169,6 +175,7 @@ public class FolderBrowser extends Window implements EventListener txtPath.setValue(dir.getAbsolutePath()); } + @Override public void onEvent(Event e) throws Exception { if(e.getName().equals(Events.ON_DOUBLE_CLICK) && e.getTarget() instanceof ListItem) @@ -224,6 +231,9 @@ public class FolderBrowser extends Window implements EventListener } } + /** + * @return selected path + */ public String getPath() { return path; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Grid.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Grid.java index 3ecf136b1d..c9f247d4d1 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Grid.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Grid.java @@ -28,25 +28,39 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; /** - * + * Extend {@link org.zkoss.zul.Grid} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ */ public class Grid extends org.zkoss.zul.Grid implements IdSpace { + /** + * Generated serial id + */ private static final long serialVersionUID = -4483759833677794926L; + /** Event Name:List<EventListenerInfo> */ private transient Map> listeners; + /** + * Default constructor + */ public Grid() { super(); listeners = new HashMap>(); } + /** + * Remove the alternate background color rendering of grid rows. + */ public void makeNoStrip() { setOddRowSclass("z-dummy"); } + /** + * Add and return new Rows instance + * @return Rows + */ public Rows newRows() { Rows rows = new Rows(); appendChild(rows); @@ -101,6 +115,11 @@ public class Grid extends org.zkoss.zul.Grid implements IdSpace return b; } + /** + * Copy event listeners from another grid. + * Use in the re-initialization grid view. + * @param grid + */ public void copyEventListeners(Grid grid) { for(String evtnm : listeners.keySet()) { if (evtnm.equals("onInitModel")) @@ -112,6 +131,9 @@ public class Grid extends org.zkoss.zul.Grid implements IdSpace } } + /** + * Class to hold event listener details + */ private static class EventListenerInfo { private final int priority; private final EventListener listener; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Group.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Group.java index e8c72db212..cb82be9787 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Group.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Group.java @@ -1,3 +1,29 @@ +/*********************************************************************** + * This file is part of iDempiere ERP Open Source * + * http://www.idempiere.org * + * * + * Copyright (C) Contributors * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * 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., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301, USA. * + * * + * Contributors: * + * - etan * + * - carlos * + * - hengsin * + **********************************************************************/ package org.adempiere.webui.component; import java.util.ArrayList; @@ -14,31 +40,49 @@ import org.zkoss.zul.Label; import org.zkoss.zul.Row; import org.zkoss.zul.Span; +/** + * Extend {@link org.zkoss.zul.Group} + */ public class Group extends org.zkoss.zul.Group { /** - * + * generated serial id */ private static final long serialVersionUID = -6735090880559291438L; + /** {@link Row} attribute to hold visibility state of row */ public static final String GROUP_ROW_VISIBLE_KEY = "groupRowVisible"; private List m_rows = new ArrayList(); + /** + * Default constructor + */ public Group() { super(); setZclass("z-group"); } + /** + * @param label + */ public Group(String label) { super(label); setZclass("z-group"); } + /** + * @param + * @param label + * @param value + */ public Group(String label, T value) { super(label, value); setZclass("z-group"); } + /** + * @return group label + */ public String getLabel() { final Component cell = getFirstChild(); return cell != null && cell instanceof GroupHeader ? ((GroupHeader)cell).getTitle() : null; @@ -49,6 +93,9 @@ public class Group extends org.zkoss.zul.Group { autoFirstCell().setTitle(label); } + /** + * @return GroupHeader + */ private GroupHeader autoFirstCell() { Component cell = getFirstChild(); if (cell == null || cell instanceof GroupHeader) { @@ -60,6 +107,10 @@ public class Group extends org.zkoss.zul.Group { throw new UiException("Unsupported child for setLabel: "+cell); } + /** + * Set open/close state of group + * @param open true for open state, false for close state + */ public void setOpen(boolean open) { super.setOpen(open); autoFirstCell().setOpen(isOpen()); @@ -77,14 +128,21 @@ public class Group extends org.zkoss.zul.Group { } } + /** + * Add row to group + * @param row + */ public void add(org.adempiere.webui.component.Row row) { m_rows.add(row); } + /** + * Group header component + */ public static class GroupHeader extends Cell implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = -4070011056533999557L; private Span span; @@ -93,6 +151,9 @@ public class Group extends org.zkoss.zul.Group { private String title; private boolean open; + /** + * Default constructor + */ public GroupHeader() { super(); @@ -101,6 +162,9 @@ public class Group extends org.zkoss.zul.Group { setOpen(true); } + /** + * Layout component + */ private void init() { setZclass("z-group-header"); @@ -120,19 +184,33 @@ public class Group extends org.zkoss.zul.Group { div.appendChild(lbl); } + /** + * @return group title + */ public String getTitle() { return title; } + /** + * set group title + * @param title + */ public void setTitle(String title) { this.title = title; lbl.setValue(this.title); } + /** + * @return true if open, false otherwise + */ public boolean isOpen() { return open; } + /** + * Set open/close state of group + * @param open + */ public void setOpen(boolean open) { this.open = open; span.setSclass(this.open ? "z-group-icon-open" : "z-group-icon-close"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Label.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Label.java index 5881d68023..1f6360bd88 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Label.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Label.java @@ -21,7 +21,7 @@ import org.adempiere.webui.LayoutUtils; import org.zkoss.zk.ui.Component; /** - * + * Extend {@link org.zkoss.zul.Label} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -29,7 +29,7 @@ import org.zkoss.zk.ui.Component; public class Label extends org.zkoss.zul.Label { /** - * + * generated serial id */ private static final long serialVersionUID = -6818124304324329510L; @@ -37,25 +37,41 @@ public class Label extends org.zkoss.zul.Label private boolean mandatory; + /** + * Default constructor + */ public Label() { super(); } + /** + * @param value + */ public Label(String value) { super(value != null ? value.replaceAll("[&]", "") : null); } + /** + * @return true if using mandatory style, false otherwise + */ public boolean isMandatory() { return mandatory; } + /** + * set mandatory/optional style + * @param mandatory true for mandatory style, false for optional + */ public void setMandatory(boolean mandatory) { this.mandatory = mandatory; setupMandatoryDecorator(); } + /** + * @return Decorator Component + */ public Component getDecorator() { return decorator; } @@ -78,6 +94,9 @@ public class Label extends org.zkoss.zul.Label return super.setVisible(visible); } + /** + * Setup mandatory style decorator + */ private void setupMandatoryDecorator() { if (decorator == null) createMandatoryDecorator(); @@ -88,6 +107,9 @@ public class Label extends org.zkoss.zul.Label decorator.setVisible(false); } + /** + * Create mandatory style decorator + */ private void createMandatoryDecorator() { decorator = new Label("*"); ((Label)decorator).setSclass("mandatory-decorator-text"); @@ -103,6 +125,9 @@ public class Label extends org.zkoss.zul.Label this.setValue(translate); } + /** + * @return right align Label wrapped in Div + */ public Component rightAlign() { return LayoutUtils.makeRightAlign(this); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListCell.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListCell.java index 499a479620..f84132c085 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListCell.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListCell.java @@ -17,16 +17,27 @@ package org.adempiere.webui.component; +/** + * Extend {@link org.zkoss.zul.Listcell} + */ public class ListCell extends org.zkoss.zul.Listcell { /** - * + * generated serial id */ private static final long serialVersionUID = 971168080286017036L; - public ListCell(String str) + + /** + * @param label + */ + public ListCell(String label) { - super(str); + super(label); } + + /** + * Default constructor + */ public ListCell() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHead.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHead.java index 69c9979752..3876812468 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHead.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHead.java @@ -17,10 +17,13 @@ package org.adempiere.webui.component; +/** + * Extend {@link org.zkoss.zul.Listhead} + */ public class ListHead extends org.zkoss.zul.Listhead { /** - * + * generated serial id */ private static final long serialVersionUID = -7675491092309862710L; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHeader.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHeader.java index 442eb62264..689c40fb63 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHeader.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListHeader.java @@ -17,16 +17,29 @@ package org.adempiere.webui.component; +import org.zkoss.zul.Listheader; + +/** + * Extend {@link Listheader} + */ public class ListHeader extends org.zkoss.zul.Listheader { /** - * + * generated serial id */ private static final long serialVersionUID = -2709047642743510762L; - public ListHeader(String str) + + /** + * @param label + */ + public ListHeader(String label) { - super(str); + super(label); } + + /** + * Default constructor + */ public ListHeader() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListItem.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListItem.java index b515501161..5567f70199 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListItem.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListItem.java @@ -22,8 +22,9 @@ import java.beans.PropertyChangeSupport; import org.compiere.util.KeyNamePair; import org.compiere.util.ValueNamePair; + /** - * + * Extend {@link org.zkoss.zul.Listitem} * @author Ashley G Ramdass * @date Mar 25, 2007 * @version $Revision: 0.10 $ @@ -31,31 +32,47 @@ import org.compiere.util.ValueNamePair; public class ListItem extends org.zkoss.zul.Listitem { /** - * + * generated serial id */ private static final long serialVersionUID = -8052056834118074979L; private PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this); + /** + * @param label + * @param value + */ public ListItem(String label, Object value) { super(label, value); } + /** + * Default constructor + */ public ListItem() { super(); } + /** + * @param l PropertyChangeListener + */ public synchronized void addPropertyChangeListener(PropertyChangeListener l) { m_propertyChangeListeners.addPropertyChangeListener(l); } + /** + * @return KeyNamePair(Value, Label) + */ public KeyNamePair toKeyNamePair() { return new KeyNamePair((Integer)getValue(), getLabel()); } + /** + * @return ValueNamePair(Value, Label) + */ public ValueNamePair toValueNamePair() { return new ValueNamePair((String)getValue(), getLabel()); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListModelTable.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListModelTable.java index 8b981095c8..cf5a868cf1 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListModelTable.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ListModelTable.java @@ -33,9 +33,9 @@ import org.zkoss.zul.event.ListDataEvent; import org.zkoss.zul.ext.Sortable; /** - * This is a ListModel to be used with Listbox. - * The model allows for a table structure to be created, with columns - * in addition to the rows provided by {@link org.zkoss.zul.ListModelList}. + * ListModel for Listbox and provide support for the Sortable interface.
    + * The model allows for a table structure to be created with columns, + * in addition to the functionalities provided by {@link org.zkoss.zul.ListModelList}. * * @author Andrew Kimball * @@ -43,7 +43,7 @@ import org.zkoss.zul.ext.Sortable; public class ListModelTable extends ListModelList implements Sortable { /** - * + * generated serial id */ private static final long serialVersionUID = 1891313647781142789L; /** Array of listeners to changes in the table model. */ @@ -65,7 +65,7 @@ public class ListModelTable extends ListModelList implements Sortable with a collection of objects. * A copy is made of the collection. - * The objects should be vectors of objects + * The element in collection should be vector of objects. * * @param collection The collection of objects with which to initialise the list */ @@ -90,7 +90,7 @@ public class ListModelTable extends ListModelList implements Sortable implements Sortable * Please note that the table cannot be shrunk. */ private void ensureRowSize() @@ -158,7 +158,7 @@ public class ListModelTable extends ListModelList implements Sortable implements Sortable * For each new row, an empty collection of the size specified by * {@link #setNoColumns(int)} is created. * @param rowCount The number of rows to be contained in the table @@ -279,7 +279,6 @@ public class ListModelTable extends ListModelList implements Sortable implements Sortableevent to all listeners. - * + * Fire table changed event to WTableModelListener in {@link #m_listeners}. + * * @param event The event tofire */ private void fireTableChange(WTableModelEvent event) @@ -323,8 +327,6 @@ public class ListModelTable extends ListModelList implements Sortable implements Sortable implements Sortable lme) { sorter = lme; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Listbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Listbox.java index 7dd5190997..a1045ebe9a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Listbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Listbox.java @@ -30,7 +30,7 @@ import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Listitem; /** - * + * Extend {@link org.zkoss.zul.Listbox} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -38,7 +38,7 @@ import org.zkoss.zul.Listitem; public class Listbox extends org.zkoss.zul.Listbox implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = -3713350125429939476L; @@ -47,6 +47,9 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener 0) { @@ -66,23 +73,41 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener + * Set selected to none if no item found matching the value given or + * value is null. * @param value Value of ListItem to set as selected */ public void setValue(Object value) @@ -137,11 +169,17 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener selectedItems = this.getSelectedItems(); int[] selecteds = new int[this.getSelectedCount()]; @@ -154,6 +192,10 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener 0) { this.setSelectedIndex(selected[0]); @@ -165,10 +207,18 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener listener) { onDropListeners.add(listener); } + /** + * Add listener for DOUBLE_CLICK event + * @param listener + */ public void addDoubleClickListener(EventListener listener) { doubleClickListeners.add(listener); } @@ -188,14 +238,21 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener listener : doubleClickListeners) { @@ -252,7 +309,7 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener 0) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Locationbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Locationbox.java index 6f065d9812..9ffe413405 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Locationbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Locationbox.java @@ -13,23 +13,28 @@ package org.adempiere.webui.component; /** - * + * Component for Location Editor * @author Low Heng Sin - * */ public class Locationbox extends EditorBox { /** - * + * generated serial id */ private static final long serialVersionUID = -9199586798474147872L; + /** + * Default constructor + */ public Locationbox() { super(); txt.setReadonly(true); } + /** + * @param text + */ public Locationbox(String text) { this(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Mask.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Mask.java index 004ae5a5a1..c6c025bb9c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Mask.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Mask.java @@ -16,12 +16,12 @@ package org.adempiere.webui.component; import org.zkoss.zul.Div; /** + * Background mask * @author hengsin - * */ public class Mask extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = 7462166722064971644L; @@ -33,11 +33,13 @@ public class Mask extends Div { "padding: 0; z-index:999; opacity:0.6; top: 0px; left: 0px;"); } + /** + * Close mask + */ public void hideMask() { if (this.getParent() != null){ this.detach(); - } - + } } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Menupopup.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Menupopup.java index 665a7eb596..fea9ecc923 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Menupopup.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Menupopup.java @@ -20,9 +20,8 @@ import org.zkoss.zk.ui.Page; import org.zkoss.zul.impl.XulElement; /** - * + * Extend {@link org.zkoss.zul.Menupopup} * @author hengsin - * */ public class Menupopup extends org.zkoss.zul.Menupopup { @@ -32,13 +31,13 @@ public class Menupopup extends org.zkoss.zul.Menupopup { private static final long serialVersionUID = -4929397362586559388L; /** - * listo of xulelement that use this as the context menu + * List of XulElement that uses this as the context menu */ private List elementList = new ArrayList(); /** * add xul element that want to use this as the context menu - * @param element + * @param element XulElement */ public void addContextElement(XulElement element) { elementList.add(element); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Messagebox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Messagebox.java index 7d2fc78df8..889cf73cda 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Messagebox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Messagebox.java @@ -55,18 +55,17 @@ import org.zkoss.zul.Vbox; * @date Jul 31, 2007 * @contributor Andreas Sumerauer IDEMPIERE-4702 */ - public class Messagebox extends Window implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = 8928526331932742124L; private static final String MESSAGE_PANEL_STYLE = "text-align:left; word-break: break-all; overflow: auto; max-height: 350pt; min-width: 230pt; max-width: 450pt;"; private static final String SMALLER_MESSAGE_PANEL_STYLE = "text-align:left; word-break: break-all; overflow: auto; max-height: 350pt; min-width: 180pt; "; - private String msg = new String(""); - private String imgSrc = new String(""); + private String msg = ""; + private String imgSrc = ""; private Text lblMsg = new Text(); @@ -83,6 +82,7 @@ public class Messagebox extends Window implements EventListener private Image img = new Image(); + /** button constant for button pressed by user */ private int returnValue; @SuppressWarnings("rawtypes") private Callback callback; @@ -127,11 +127,17 @@ public class Messagebox extends Window implements EventListener /** Contains no symbols. */ public static final String NONE = null; + /** + * Default constructor + */ public Messagebox() { super(); } + /** + * Layout dialog + */ private void init() { setSclass("popup-dialog"); @@ -254,21 +260,60 @@ public class Messagebox extends Window implements EventListener this.setPosition("left, top"); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL sfor message box icon + * @return button constant for button press by user + */ public int show(String message, String title, int buttons, String icon) { return show(message, title, buttons, icon, null); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param callback + * @return button constant for button press by user + */ public int show(String message, String title, int buttons, String icon, Callback callback) { return show(message, title, buttons, icon, callback, false); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param callback + * @param modal + * @return button constant for button press by user + */ public int show(String message, String title, int buttons, String icon, Callback callback, boolean modal) { return show(message, title, buttons, icon, null, false, callback, modal); } + /** + * Show message box dialog with optional input editor + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param editor optional input editor + * @param isInputMandatory true if editor input is mandatory + * @param callback + * @param modal + * @return button constant for button press by user + */ public int show(String message, String title, int buttons, String icon, WEditor editor, boolean isInputMandatory, Callback callback, boolean modal) { this.msg = message; @@ -350,32 +395,81 @@ public class Messagebox extends Window implements EventListener return returnValue; } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons + * @param icon image URL for message box icon + * @return button constant for button press by user + */ public static int showDialog(String message, String title, int buttons, String icon) { return showDialog(message, title, buttons, icon, null); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param callback + * @return button constant for button press by user + */ public static int showDialog(String message, String title, int buttons, String icon, Callback callback) { return showDialog(message, title, buttons, icon, callback, false); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param callback + * @param modal + * @return button constant for button press by user + */ public static int showDialog(String message, String title, int buttons, String icon, Callback callback, boolean modal) { return showDialog(message, title, buttons, icon, null, false, callback, modal); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param editor + * @param callback + * @param modal + * @return button constant for button press by user + */ public static int showDialog(String message, String title, int buttons, String icon, WEditor editor, Callback callback, boolean modal) { return showDialog(message, title, buttons, icon, editor, false, callback, modal); } + /** + * Show message box dialog + * @param message + * @param title + * @param buttons buttons to be shown in the dialog. use the | operator to combine multiple button constant. + * @param icon image URL for message box icon + * @param editor optional input editor + * @param isInputMandatory true if input editor is mandatory + * @param callback + * @param modal + * @return button constant for button press by user + */ public static int showDialog(String message, String title, int buttons, String icon, WEditor editor, boolean isInputMandatory, Callback callback, boolean modal) { Messagebox msg = new Messagebox(); return msg.show(message, title, buttons, icon, editor, isInputMandatory, callback, modal); } - // Andreas Sumerauer IDEMPIERE 4702 @Listen("onCancel") public void onCancel() throws Exception { @@ -383,7 +477,7 @@ public class Messagebox extends Window implements EventListener close(); } - + @Override public void onEvent(Event event) throws Exception { if (event == null) @@ -425,6 +519,10 @@ public class Messagebox extends Window implements EventListener validateOnClose(); } + /** + * Perform validation before closing of dialog.
    + * Throw {@link WrongValueException} if there's any validation error. + */ private void validateOnClose() { // Don't close on OK if input is mandatory while input field is empty @@ -454,6 +552,9 @@ public class Messagebox extends Window implements EventListener // } + /** + * Close dialog + */ private void close() { try { this.detach(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java index 14eb256214..2e3f98ad02 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/NumberBox.java @@ -39,7 +39,7 @@ import org.zkoss.zul.Popup; import org.zkoss.zul.Vbox; /** - * + * Composite component of {@link Decimalbox} and {@link Button} * @author Ashley G Ramdass * @date Mar 11, 2007 * @version $Revision: 0.10 $ @@ -49,29 +49,35 @@ import org.zkoss.zul.Vbox; public class NumberBox extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = 8543853599051754172L; + /** Text box for calculator */ private Textbox txtCalc = new Textbox(); - boolean integral = false; + /** true for integer, false for number with decimal point */ + protected boolean integral = false; - NumberFormat format = null; + protected NumberFormat format = null; private Decimalbox decimalBox = null; private Button btn; + /** calculator popup */ private Popup popup; + /** + * @param integral + */ public NumberBox(boolean integral) { this(integral, false); } /** - * * @param integral + * @param tableEditor */ public NumberBox(boolean integral, boolean tableEditor) { @@ -80,6 +86,10 @@ public class NumberBox extends Div init(tableEditor); } + /** + * Layout component + * @param tableEditor + */ private void init(boolean tableEditor) { decimalBox = new Decimalbox(); @@ -179,7 +189,7 @@ public class NumberBox extends Div } /** - * + * Set number format * @param format */ public void setFormat(NumberFormat format) @@ -188,7 +198,7 @@ public class NumberBox extends Div } /** - * + * Set value to {@link #decimalBox} * @param value */ public void setValue(Object value) @@ -204,7 +214,7 @@ public class NumberBox extends Div } /** - * + * Get value from {@link #decimalBox} * @return BigDecimal */ public BigDecimal getValue() @@ -213,7 +223,7 @@ public class NumberBox extends Div } /** - * + * Get text from {@link #decimalBox} * @return text */ public String getText() @@ -224,7 +234,7 @@ public class NumberBox extends Div } /** - * + * Set value to {@link #decimalBox} * @param value */ public void setValue(String value) @@ -248,6 +258,10 @@ public class NumberBox extends Div } } + /** + * Create calculator popup + * @return Popup + */ private Popup getCalculatorPopup() { Popup popup = new Popup(); @@ -437,16 +451,15 @@ public class NumberBox extends Div } /** - * - * @return boolean + * @return true if it is for integer, false for decimal number */ public boolean isIntegral() { return integral; } /** - * - * @param integral + * Set integer or decimal number mode + * @param integral true for integer mode, false for decimal number mode */ public void setIntegral(boolean integral) { this.integral = integral; @@ -457,7 +470,8 @@ public class NumberBox extends Div } /** - * + * Set enable/disable. + * Hide calculator button if set to disable. * @param enabled */ public void setEnabled(boolean enabled) @@ -483,14 +497,20 @@ public class NumberBox extends Div } /** - * - * @return boolean + * @return true if enable, false otherwise */ public boolean isEnabled() { return !decimalBox.isReadonly(); } + /** + * If evtnm is ON_CLICK, add listener to {@link #btn}. + * Otherwise, add listener to {@link #decimalBox}. + * @param evtnm + * @param listener + * @return true if listener added + */ @Override public boolean addEventListener(String evtnm, EventListener listener) { @@ -504,6 +524,9 @@ public class NumberBox extends Div } } + /** + * Focus to {@link #decimalBox} + */ @Override public void focus() { @@ -511,7 +534,6 @@ public class NumberBox extends Div } /** - * * @return decimalBox */ public Decimalbox getDecimalbox() @@ -519,11 +541,18 @@ public class NumberBox extends Div return decimalBox; } + /** + @return Button + */ public Button getButton() { return btn; } + /** + * Set to form or grid view mode. + * @param flag true for grid view mode, false otherwise + */ public void setTableEditorMode(boolean flag) { if (flag) { ZKUpdateUtil.setHflex(this, "0"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/PAttributebox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/PAttributebox.java index 5e1f5b587a..46f0504dac 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/PAttributebox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/PAttributebox.java @@ -17,16 +17,19 @@ package org.adempiere.webui.component; /** - * Product Attribute Box + * Component for Product Attribute editor * @author Low Heng Sin */ public class PAttributebox extends EditorBox { /** - * + * generated serial id */ private static final long serialVersionUID = 6822449202155516221L; + /** + * Default constructor + */ public PAttributebox() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Panel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Panel.java index 31f5d03f86..7943c10eb6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Panel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Panel.java @@ -20,7 +20,7 @@ package org.adempiere.webui.component; import org.zkoss.zul.Div; /** - * + * Extend {@link Div} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -28,14 +28,19 @@ import org.zkoss.zul.Div; public class Panel extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = -5549821938132356378L; + @Deprecated public static final String HORIZONTAL = "horizontal"; + @Deprecated public static final String VERTICAL = "vertical"; + /** + * Default constructor + */ public Panel() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Paymentbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Paymentbox.java index 041e934478..ea66a626fa 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Paymentbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Paymentbox.java @@ -26,33 +26,47 @@ import org.zkoss.zul.Comboitem; import org.zkoss.zul.Div; /** - * + * Composite component of {@link Combobox} and {@link Button}. + * For Payment Rule editor. * @author Elaine - * */ public class Paymentbox extends Div { - /** - * + * generated serial id */ private static final long serialVersionUID = 1807586169091171780L; protected PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this); + /** List of payment rules */ protected Combobox combo; + /** Button to open payment form */ protected Button btn; + /** + * Default constructor + */ public Paymentbox() { initComponents(); } + /** + * @param comboitem + */ public Paymentbox(Comboitem comboitem) { initComponents(); setSelectedComboItem(comboitem); } + /** + * Set image URL of button + * @param imageSrc + */ public void setButtonImage(String imageSrc) { btn.setImage(imageSrc); } + /** + * Layout component + */ private void initComponents() { combo = new Combobox(); appendChild(combo); @@ -67,18 +81,33 @@ public class Paymentbox extends Div { LayoutUtils.addSclass("payment-rule-editor", this); } + /** + * @return Combobox + */ public Combobox getCombobox() { return combo; } + /** + * Set selected Combo Item + * @param comboitem + */ public void setSelectedComboItem(Comboitem comboitem) { combo.setSelectedItem(comboitem); } + /** + * @return selected Comboitem + */ public Comboitem getSelectedComboItem() { return combo.getSelectedItem(); } + /** + * Set enable/disable. Hide button if disable. + * @param isComboEnabled + * @param isBtnEnabled + */ public void setEnabled(boolean isComboEnabled, boolean isBtnEnabled) { if (! MSysConfig.getBooleanValue(MSysConfig.ENABLE_PAYMENTBOX_BUTTON, true, Env.getAD_Client_ID(Env.getCtx()))) isBtnEnabled = false; @@ -105,10 +134,20 @@ public class Paymentbox extends Div { } } + /** + * @return true if enable, false otherwise + */ public boolean isEnabled() { return combo.isEnabled(); } + /** + * If evtnm is ON_CLICK, add listener to {@link #btn}. + * Otherwise add listener to {@link #combo}. + * @param evtnm + * @param listener + * @return true if listener added to Button or Combobox + */ public boolean addEventListener(String evtnm, EventListener listener) { if (Events.ON_CLICK.equals(evtnm)) { return btn.addEventListener(evtnm, listener); @@ -117,10 +156,16 @@ public class Paymentbox extends Div { } } + /** + * @param l PropertyChangeListener + */ public synchronized void addPropertyChangeListener(PropertyChangeListener l) { m_propertyChangeListeners.addPropertyChangeListener(l); } + /** + * @return Button + */ public Button getButton() { return btn; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ProcessInfoDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ProcessInfoDialog.java index 35748901c4..6f8a22d7b9 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ProcessInfoDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ProcessInfoDialog.java @@ -48,14 +48,14 @@ import org.zkoss.zul.Image; import org.zkoss.zul.Separator; /** - * + * Dialog to display {@link ProcessInfo} details. * @author milap.doshi * @author Deepak Pansheriya */ public class ProcessInfoDialog extends Window implements EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = -1712025652050086903L; @@ -63,13 +63,17 @@ public class ProcessInfoDialog extends Window implements EventListener { private Text lblMsg = new Text(); private Button btnOk = ButtonFactory.createNamedButton(ConfirmPanel.A_OK); + /** Button to print document from {@link #m_logs} */ private Button btnPrint = ButtonFactory.createNamedButton(ConfirmPanel.A_PRINT); + /** Info or Error image icon */ private Image img = new Image(); + /** Array of ProcessInfoLog from ProcessInfo */ private ProcessInfoLog[] m_logs; public static final String INFORMATION = "~./zul/img/msgbox/info-btn.png"; public static final String ERROR = "~./zul/img/msgbox/info-btn.png"; + /** If true, auto close dialog after user has click on zoom to window link */ private boolean isAutoCloseAfterZoom = false; /** @@ -97,8 +101,8 @@ public class ProcessInfoDialog extends Window implements EventListener { /** * show result after run a process - * @param pi - * @param needFillLogFromDb + * @param pi ProcessInfo + * @param needFillLogFromDb true to load ProcessInfoLog from DB */ public ProcessInfoDialog(ProcessInfo pi, boolean needFillLogFromDb) { if (needFillLogFromDb) @@ -107,10 +111,11 @@ public class ProcessInfoDialog extends Window implements EventListener { } /** - * + * Layout dialog * @param title * @param header - * @param m_logs + * @param pi ProcessInfo + * @param m_logs ProcessInfoLog[] */ private void init(String title, String header, ProcessInfo pi, ProcessInfoLog[] m_logs) { this.setTitle(title); @@ -120,8 +125,6 @@ public class ProcessInfoDialog extends Window implements EventListener { this.setBorder("normal"); this.setContentStyle("background-color:#ffffff;"); - //this.setId(title); - lblMsg.setEncode(false); lblMsg.setValue(header); @@ -231,6 +234,7 @@ public class ProcessInfoDialog extends Window implements EventListener { } + @Override public void onEvent(Event event) throws Exception { if (event == null) return; @@ -244,10 +248,9 @@ public class ProcessInfoDialog extends Window implements EventListener { } /** - * On Print + * Print all printable documents in {@link #m_logs} */ - private void onPrint() { - + private void onPrint() { Clients.clearBusy(); // Loop through all items List pdfList = new ArrayList(); @@ -285,8 +288,7 @@ public class ProcessInfoDialog extends Window implements EventListener { } /** - * Is Printable - * @return boolean + * @return true if there are printable document in {@link #m_logs} */ public boolean isPrintable() { if (m_logs == null) @@ -322,11 +324,11 @@ public class ProcessInfoDialog extends Window implements EventListener { /** * after run a process, call this function to show result in a dialog - * @param pi + * @param pi ProcessInfo * @param windowNo - * @param comp + * @param comp Component * @param needFillLogFromDb if ProcessInfoUtil.setLogFromDB(pi) is called by outer function, - * just pass false, other pass true to avoid duplicate message + * just pass false, otherwise pass true to avoid duplicate message */ public static ProcessInfoDialog showProcessInfo (ProcessInfo pi, int windowNo, final Component comp, boolean needFillLogFromDb) { ProcessInfoDialog dialog = new ProcessInfoDialog(pi, needFillLogFromDb); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Row.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Row.java index 8c34ac62be..dac6b3d6ab 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Row.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Row.java @@ -21,7 +21,7 @@ import org.zkoss.zk.ui.Component; import org.zkoss.zul.Cell; /** - * + * Extend {@link org.zkoss.zul.Row} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -29,16 +29,28 @@ import org.zkoss.zul.Cell; public class Row extends org.zkoss.zul.Row { /** - * + * generated serial id */ private static final long serialVersionUID = -5813452501151101553L; + /** Last Cell added to Row */ private Cell m_lastCell; + /** + * Add component to row + * @param child Component + * @return true if added + */ public boolean appendCellChild(Component child) { return this.appendCellChild(child, 1); } + /** + * Add component to row. A new {@link Cell} with colspan will be created as parent of the component. + * @param child Component + * @param colspan Column span + * @return true if added + */ public boolean appendCellChild(Component child, int colspan) { Cell cell = new Cell(); cell.setColspan(colspan); @@ -48,18 +60,29 @@ public class Row extends org.zkoss.zul.Row return super.appendChild(cell); } + /** Optional Group that own this Row instance */ private Group m_group; + /** + * @return Group + */ public Group getGroup() { return m_group; } + /** + * Add row to Group + * @param group Group + */ public void setGroup(Group group) { this.m_group = group; if (m_group != null) m_group.add(this); } + /** + * @return last Cell added to Row + */ public Cell getLastCell() { return m_lastCell; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Rows.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Rows.java index 52960a647f..e9692e1fd8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Rows.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Rows.java @@ -18,7 +18,7 @@ package org.adempiere.webui.component; /** - * + * Extend {@link org.zkoss.zul.Rows} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -26,10 +26,14 @@ package org.adempiere.webui.component; public class Rows extends org.zkoss.zul.Rows { /** - * + * generated serial id */ private static final long serialVersionUID = 5100123951371296683L; + /** + * Create new Row + * @return Row + */ public Row newRow() { Row row = new Row(); appendChild(row); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Searchbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Searchbox.java index 80001f86f5..574dd2965f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Searchbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Searchbox.java @@ -12,18 +12,22 @@ *****************************************************************************/ package org.adempiere.webui.component; +import org.adempiere.webui.apps.form.WTreeMaintenance; + /** - * + * Search box for {@link WTreeMaintenance} form. * @author Low Heng Sin - * */ public class Searchbox extends EditorBox { /** - * + * generated serial id */ private static final long serialVersionUID = -5164796522319002269L; + /** + * Default constructor + */ public Searchbox() { } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleListModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleListModel.java index 9ca501a07b..d9bb928e6d 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleListModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleListModel.java @@ -31,29 +31,39 @@ import org.zkoss.zul.event.ListDataEvent; import org.zkoss.zul.ext.Sortable; /** - * + * List model for {@link Listbox} that also implements {@link ListitemRenderer} interface. * @author Low Heng Sin - * */ public class SimpleListModel extends AbstractListModel implements ListitemRenderer, ListitemRendererExt, Sortable { /** - * + * generated serial id */ private static final long serialVersionUID = -572148106182756840L; + /** List backing this model instance */ protected List list; + /** Comparator for sorting */ private Comparator _sorting; + /** Sort Direction. True for Ascending, False for Descrending */ private boolean _sortDir; + /** Max length for each column (value <= 0 means no Max length) */ private int[] maxLength; + /** + * Default constructor + */ public SimpleListModel() { this(new ArrayList()); } + /** + * Create model from list + * @param list List + */ @SuppressWarnings("unchecked") public SimpleListModel(List list) { this.list = (List)list; @@ -72,6 +82,13 @@ public class SimpleListModel extends AbstractListModel implements Listit return list.size(); } + /** + * Truncate src to maxLength.
    + * "..." will be added to the end of truncated text to indicate text have been truncated. + * @param src Input text + * @param maxLength Maximum length of text + * @return truncated text + */ protected StringBuffer truncate(String src, int maxLength) { int j = maxLength; while (j > 0 && Character.isWhitespace(src.charAt(j - 1))) @@ -92,6 +109,12 @@ public class SimpleListModel extends AbstractListModel implements Listit } } + /** + * Render text {@link Listbox} cell/column + * @param col Column index + * @param item Listitem + * @param value Text content for cell + */ protected void renderCell(int col, Listitem item, String value) { String tooltip = null; if (maxLength != null && maxLength.length > col && maxLength[col] > 0 && value.length() > maxLength[col]) { @@ -113,6 +136,11 @@ public class SimpleListModel extends AbstractListModel implements Listit ZkCssHelper.appendStyle(listCell, "font-weight: bold"); } + /** + * Render collection of values + * @param item Listitem + * @param data Collection + */ private void renderCollection(Listitem item, Collection data) { int i = 0; for (Object col : data) { @@ -122,6 +150,11 @@ public class SimpleListModel extends AbstractListModel implements Listit } } + /** + * Render array of values + * @param item Listitem + * @param data Object[] + */ private void renderArray(Listitem item, Object[] data) { int i = 0; for (Object col : data) { @@ -148,32 +181,57 @@ public class SimpleListModel extends AbstractListModel implements Listit return item; } + /** + * Set max length for each column + * @param maxLength int[] + */ public void setMaxLength(int[] maxLength) { this.maxLength = maxLength; } + /** + * Append new row + * @param obj Object + */ public void addElement(Object obj) { list.add(obj); int index = list.size() - 1; fireEvent(ListDataEvent.INTERVAL_ADDED, index, index); } + /** + * Add new row at index + * @param index + * @param obj Object + */ public void add(int index, Object obj) { list.add(index, obj); fireEvent(ListDataEvent.INTERVAL_ADDED, index, index); } + /** + * Remove all elements + */ public void removeAllElements() { list.clear(); fireEvent(ListDataEvent.CONTENTS_CHANGED, -1, -1); } + /** + * Remove element from list + * @param element + */ public void removeElement(Object element) { int index = list.indexOf(element); list.remove(element); fireEvent(ListDataEvent.INTERVAL_REMOVED, index, index); } + /** + * Replace element at index + * @param element Object + * @param index List index + */ public void setElementAt(Object element, int index) { list.set(index, element); fireEvent(ListDataEvent.CONTENTS_CHANGED, index, index); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleTreeModel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleTreeModel.java index f36c7f7b29..0954f27858 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleTreeModel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/SimpleTreeModel.java @@ -19,6 +19,7 @@ import java.util.List; import java.util.logging.Level; import org.adempiere.webui.ClientInfo; +import org.adempiere.webui.adwindow.ADTreePanel; import org.adempiere.webui.panel.TreeSearchPanel; import org.compiere.model.MTree; import org.compiere.model.MTreeNode; @@ -40,21 +41,27 @@ import org.zkoss.zul.Treerow; import org.zkoss.zul.event.TreeDataEvent; /** - * + * {@link org.zkoss.zul.DefaultTreeModel} implementation that also implements the {@link TreeitemRenderer} interface.
    + * Use by {@link ADTreePanel}. * @author Low Heng Sin * */ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel implements TreeitemRenderer, EventListener { /** - * + * generated serial id */ private static final long serialVersionUID = 4945968834244672653L; private static final CLogger logger = CLogger.getCLogger(SimpleTreeModel.class); + /** True if each tree item is draggable */ private boolean itemDraggable; + /** Listeners for ON_DROP event */ private List> onDropListners = new ArrayList>(); + /** + * @param root Root node + */ public SimpleTreeModel(DefaultTreeNode root) { super(root); } @@ -69,6 +76,14 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl return initADTree(tree, AD_Tree_ID, windowNo, true, null); } + /** + * @param tree + * @param AD_Tree_ID + * @param windowNo + * @param linkColName + * @param linkID + * @return + */ public static SimpleTreeModel initADTree(Tree tree, int AD_Tree_ID, int windowNo, String linkColName, int linkID) { return initADTree(tree, AD_Tree_ID, windowNo, true, null, linkColName, linkID); } @@ -85,6 +100,17 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl return initADTree(tree, AD_Tree_ID, windowNo, editable, trxName, null, 0); } + /** + * Create tree model from AD_Tree structure + * @param tree + * @param AD_Tree_ID + * @param windowNo + * @param editable + * @param trxName + * @param linkColName + * @param linkID + * @return SimpleTreeModel + */ public static SimpleTreeModel initADTree(Tree tree, int AD_Tree_ID, int windowNo, boolean editable, String trxName, String linkColName, int linkID) { MTree vTree = new MTree (Env.getCtx(), AD_Tree_ID, editable, true, trxName, linkColName, linkID); MTreeNode root = vTree.getRoot(); @@ -96,11 +122,11 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl if (tree.getTreecols() == null) { - Treecols treeCols = new Treecols(); - tree.getTreecols(); - tree.appendChild(treeCols); - Treecol treeCol = new Treecol(); - treeCols.appendChild(treeCol); + Treecols treeCols = new Treecols(); + tree.getTreecols(); + tree.appendChild(treeCols); + Treecol treeCol = new Treecol(); + treeCols.appendChild(treeCol); } tree.setPageSize(-1); @@ -116,27 +142,41 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl private boolean isTreeDrivenByValue = false; + /** + * @return true if sort by Value, false otherwise + */ public boolean isTreeDrivenByValue() { return isTreeDrivenByValue; } + /** + * Set tree sorted by Value or Name + * @param isTreeDrivenByValue + */ public void setTreeDrivenByValue(boolean isTreeDrivenByValue) { this.isTreeDrivenByValue = isTreeDrivenByValue; } private boolean isValueDisplayed = false; + /** + * @return true if Value is display in front of Name + */ public boolean isValueDisplayed() { return isValueDisplayed; } + /** + * Set whether Value is display + * @param isValueDisplayed + */ public void setIsValueDisplayed(boolean isValueDisplayed) { this.isValueDisplayed = isValueDisplayed; } /** - * - * @param root + * Create model from {@link MTreeNode} structure + * @param root Root node * @return SimpleTreeModel */ public static SimpleTreeModel createFrom(MTreeNode root) { @@ -146,24 +186,29 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl DefaultTreeNode stRoot = new DefaultTreeNode(root, nodeEnum.hasMoreElements() ? new ArrayList>() : null); while(nodeEnum.hasMoreElements()) { MTreeNode childNode = (MTreeNode)nodeEnum.nextElement(); - DefaultTreeNode stNode = childNode.getChildCount() > 0 ? new DefaultTreeNode(childNode, new ArrayList>()) + DefaultTreeNode stChildNode = childNode.getChildCount() > 0 ? new DefaultTreeNode(childNode, new ArrayList>()) : new DefaultTreeNode(childNode); - stRoot.getChildren().add(stNode); + stRoot.getChildren().add(stChildNode); if (childNode.getChildCount() > 0) { - populate(stNode, childNode); + populate(stChildNode, childNode); } } model = new SimpleTreeModel(stRoot); return model; } - private static void populate(DefaultTreeNode stNode, MTreeNode root) { - Enumeration nodeEnum = root.children(); + /** + * + * @param stParentNode DefaultTreeNode wrapper for parentNode + * @param parentNode + */ + private static void populate(DefaultTreeNode stParentNode, MTreeNode parentNode) { + Enumeration nodeEnum = parentNode.children(); while(nodeEnum.hasMoreElements()) { MTreeNode childNode = (MTreeNode)nodeEnum.nextElement(); DefaultTreeNode stChildNode = childNode.getChildCount() > 0 ? new DefaultTreeNode(childNode, new ArrayList>()) : new DefaultTreeNode(childNode); - stNode.getChildren().add(stChildNode); + stParentNode.getChildren().add(stChildNode); if (childNode.getChildCount() > 0) { populate(stChildNode, childNode); } @@ -173,6 +218,7 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl /** * @param ti * @param node + * @param index */ @Override public void render(Treeitem ti, Object node, int index) { @@ -250,6 +296,7 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl } /** + * Set draggable or not draggable for each tree node * @param b */ public void setItemDraggable(boolean b) { @@ -257,13 +304,14 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl } /** - * @return boolean + * @return true if tree item is draggable, false otherwise */ public boolean isItemDraggable() { return itemDraggable; } /** + * Add listener for ON_DROP event * @param listener */ public void addOnDropEventListener(EventListener listener) { @@ -274,6 +322,7 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl * @param event * @see EventListener#onEvent(Event) */ + @Override public void onEvent(Event event) throws Exception { if (Events.ON_DROP.equals(event.getName())) { for (EventListener listener : onDropListners) { @@ -283,8 +332,9 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl } /** + * Find parent node for treeNode * @param treeNode - * @return DefaultTreeNode + * @return DefaultTreeNode or null if not found */ public DefaultTreeNode getParent(DefaultTreeNode treeNode) { int path[] = this.getPath(treeNode); @@ -306,7 +356,7 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl * @param newParent * @param newNode * @param index - * @return parent node. this could be a new instance created to replace the newParent node param + * @return parent node. this could be a new instance created to replace the newParent node parameter */ public DefaultTreeNode addNode(DefaultTreeNode newParent, DefaultTreeNode newNode, int index) { @@ -322,8 +372,9 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl } /** - * @param fromNode - * @param recordId + * Find node with Node_ID=recordId starting from fromNode or root node. + * @param fromNode Optional starting node. If null, start from Root node + * @param recordId Node_ID * @return DefaultTreeNode */ public DefaultTreeNode find(DefaultTreeNode fromNode, int recordId) { @@ -345,7 +396,8 @@ public class SimpleTreeModel extends org.zkoss.zul.DefaultTreeModel impl } /** - * @param node + * Fire CONTENTS_CHANGED event for node + * @param node DefaultTreeNode */ public void nodeUpdated(DefaultTreeNode node) { DefaultTreeNode parent = getParent(node); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java index e250f7d1fb..a45fe8934f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tab.java @@ -41,30 +41,39 @@ import org.zkoss.zul.Include; import org.zkoss.zul.impl.LabelImageElement; /** - * + * Extend {@link org.zkoss.zul.Tab} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ */ public class Tab extends org.zkoss.zul.Tab { - /** - * + * generated serial id */ private static final long serialVersionUID = -7504310693884092219L; private boolean isDisableDraggDrop = false; - public Tab(String str) + /** + * @param label + */ + public Tab(String label) { - this.setLabel(str); + this.setLabel(label); } + /** + * Default constructor + */ public Tab() { } + /** + * Set decorator for tab label + * @param decorateInfo + */ public void setDecorateInfo (DecorateInfo decorateInfo){ if (decorateInfo != null) decorateInfo.decorate(this); @@ -78,13 +87,16 @@ public class Tab extends org.zkoss.zul.Tab } } + /** + * @return true if dragged and drop is disable + */ public boolean isDisableDraggDrop() { return isDisableDraggDrop; } /** * home tab don't want to drag and drop. - * {@link Tab} like that can be set true for this properties + * {@link Tab} like that can be set true for this properties. * @param isDisableDraggDrop */ public void setDisableDraggDrop(boolean isDisableDraggDrop) { @@ -92,7 +104,7 @@ public class Tab extends org.zkoss.zul.Tab } /** - * class contain decorate info + * class contain decorate info.
    * at the moment, has only image info * at the moment, it's use to transfer decorate info from info window, standard window, report, process,... to tab * @author hieplq @@ -102,6 +114,9 @@ public class Tab extends org.zkoss.zul.Tab private String imageKey; private URL imageIntenalUrl; + /** + * @param comp + */ public void decorate (LabelImageElement comp){ if (imageIntenalUrl != null) { if (ThemeManager.isUseFontIconForImage()) { @@ -119,6 +134,9 @@ public class Tab extends org.zkoss.zul.Tab } } + /** + * @param imageData MImage + */ public DecorateInfo (MImage imageData){ if (imageData != null) { imageIntenalUrl = ManageImageCache.getImageInternalUrl(imageData); @@ -127,6 +145,9 @@ public class Tab extends org.zkoss.zul.Tab } } + /** + * @param imagePath Image URL + */ public DecorateInfo (String imagePath){ if (imagePath != null) { imageIntenalUrl = ManageImageCache.getImageInternalUrl(imagePath); @@ -136,14 +157,19 @@ public class Tab extends org.zkoss.zul.Tab } /** - * Helper method for create decorate info from adWindow info + * Helper method to create decorate info from adWindow info * @param adWindow - * @return + * @return DecorateInfo */ public static DecorateInfo get (ADWindow adWindow){ return adWindow == null?null:new DecorateInfo(adWindow.getMImage()); } + /** + * Create DecorateInfo from Info Window. + * @param mInfo + * @return DecorateInfo + */ public static DecorateInfo get (MInfoWindow mInfo){ if (mInfo != null) { @@ -220,9 +246,10 @@ public class Tab extends org.zkoss.zul.Tab } /** - * http://tracker.zkoss.org/browse/ZK-3705 - * change default behavior to get prev tab is new active tab - * @return + * http://tracker.zkoss.org/browse/ZK-3705.
    + * Select next active tab.
    + * Replace the default algorithm uses by Zk (org.zkoss.zul.Tab.selectNextTab()). + * @return org.zkoss.zul.Tab */ protected org.zkoss.zul.Tab selectNextTabWR() { Tabbox idTabbox = null; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java index 80d95336ce..bc630266c4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabbox.java @@ -31,28 +31,39 @@ import org.zkoss.zul.Tabpanels; import org.zkoss.zul.Tabs; /** - * + * Extend {@link org.zkoss.zul.Tabbox} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ */ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener { - /** - * + * generated serial id */ private static final long serialVersionUID = 1400484283064851775L; private boolean isSupportTabDragDrop = false; private boolean isActiveBySeq = false; private boolean isCheckVisibleOnlyForNextActive = true; + /** + * Deque of tab by selection sequence. Each time when a Tab is selected by user, the Tab is push to front of queue. + */ private Deque activeTabSeq = new ArrayDeque<>(); + + /** + * Default constructor + */ public Tabbox () { super(); this.addEventListener(Events.ON_SELECT, this); } + /** + * Get tab panel at index + * @param index + * @return Tabpanel. Throw IndexOutOfBoundsException if index is invalid. + */ public Tabpanel getTabpanel(int index) { try @@ -67,23 +78,32 @@ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener } } + /** + * @return selected Tabpanel + */ public Tabpanel getSelectedTabpanel() { return getTabpanel(this.getSelectedIndex()); } + /** + * @return true if drag and drop of tab is enable + */ public boolean isSupportTabDragDrop() { return isSupportTabDragDrop; } /** - * let support drag&drop {@link Tab} + * Set enable/disable the drag and drop of {@link Tab} * @param isSupportTabDragDrop */ public void setSupportTabDragDrop(boolean isSupportTabDragDrop) { this.isSupportTabDragDrop = isSupportTabDragDrop; } + /** + * Send onPageAttached event + */ @Override public void onPageAttached(Page newpage, Page oldpage) { super.onPageAttached(newpage, oldpage); @@ -91,6 +111,9 @@ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener } + /** + * Send onPageDetached event + */ @Override public void onPageDetached(Page page) { super.onPageDetached(page); @@ -109,10 +132,8 @@ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener Iterator itPrevSelectedTab = selectEvent.getPreviousSelectedItems().iterator(); if (itPrevSelectedTab.hasNext()) { activeTabSeq.push((Tab)itPrevSelectedTab.next()); - } - - } - + } + } } /** @@ -126,17 +147,25 @@ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener super.setSelectedTab(tab); } + /** + * @return true if set next active tab using {@link #activeTabSeq} + */ public boolean isActiveBySeq() { return isActiveBySeq; } + /** + * Enable/disable the use of {@link #activeTabSeq} for the setting of next active tab. + * @param isActiveBySeq + */ public void setActiveBySeq(boolean isActiveBySeq) { this.isActiveBySeq = isActiveBySeq; } /** - * select next active tab by order store on stack folow FILO - * @return + * Get next active tab by selection sequence store on {@link #activeTabSeq}. + * @param currentTab current Tab to skip/ignore + * @return Tab or null if no valid candidate from {@link #activeTabSeq}. */ public Tab getNextActiveBySeq (Tab currentTab) { Tab cadidateTabActive = null; @@ -146,8 +175,8 @@ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener // move disable item to last stack it can be active late cadidateTabActive = activeTabSeq.pop(); activeTabSeq.addLast(cadidateTabActive); - }else if (cadidateTabActive.getParent() == null || currentTab == cadidateTabActive) {// when call close other tab menu, remain tab = first tab on stack, so have to ignore it when find next tab - activeTabSeq.pop();// this tab is close by code or by close at unselected state so just remove it from stack + }else if (cadidateTabActive.getParent() == null || currentTab == cadidateTabActive) { + activeTabSeq.pop(); //not attached to page or == currentTab, remove }else { return activeTabSeq.pop(); } @@ -157,20 +186,22 @@ public class Tabbox extends org.zkoss.zul.Tabbox implements EventListener } /** - * activeTabSeq is maintain by selected tab event, so when close by code or close on unselected state should call this function to save memory
    - * in case don't call it, it still manage from {@link #getNextActiveBySeq(Tab)} + * {@link #activeTabSeq} is maintain by selected tab event, so when a tab is close, code should call this function to save memory
    * @param closeTab */ public void removeTabFromActiveSeq (Tab closeTab) { activeTabSeq.remove(closeTab); } + /** + * @return true if {@link #activeTabSeq} should ignore invisible tab. + */ public boolean isCheckVisibleOnlyForNextActive() { return isCheckVisibleOnlyForNextActive; } /** - * Ignore invisible tab for next active by seq + * Ignore invisible tab for next active by selection sequence * @param isVisibleOnly */ public void setCheckVisibleOnlyForNextActive(boolean isVisibleOnly) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanel.java index 71f9d45710..46025fb677 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanel.java @@ -25,7 +25,7 @@ import org.zkoss.zk.ui.IdSpace; import org.zkoss.zul.Tab; /** - * + * Extend {@link org.zkoss.zul.Tabpanel} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -33,18 +33,23 @@ import org.zkoss.zul.Tab; public class Tabpanel extends org.zkoss.zul.Tabpanel implements IdSpace, ISupportMask { /** - * + * generated serial id */ private static final long serialVersionUID = -1057250877531248907L; + /** optional onClose handler */ private ITabOnCloseHandler onCloseHandler = null; private boolean enabled; + @Deprecated private int tabLevel; protected ShowMaskWrapper showMaskWrapper = new ShowMaskWrapper(this); + /** + * @return true if enable, false otherwise + */ public boolean isEnabled() { return enabled; @@ -52,31 +57,46 @@ public class Tabpanel extends org.zkoss.zul.Tabpanel implements IdSpace, ISuppor @Override public boolean setVisible(boolean visible) { - // TODO Auto-generated method stub return super.setVisible(visible); } @Override protected void setVisibleDirectly(boolean visible) { - // TODO Auto-generated method stub super.setVisibleDirectly(visible); } + /** + * Enable/disable tab panel + * @param enabled + */ public void setEnabled(boolean enabled) { this.enabled = enabled; } + /** + * @return AD_Tab Tab level + */ + @Deprecated public int getTabLevel() { return tabLevel; } + /** + * Set AD_Tab tab level + * @param l Tab level + */ + @Deprecated public void setTabLevel(int l) { tabLevel = l; } + /** + * Call {@link #onCloseHandler} (if not null).
    + * If {@link #onCloseHandler} is null, close linked tab. + */ public void onClose() { if (onCloseHandler != null) { onCloseHandler.onClose(this); @@ -87,6 +107,10 @@ public class Tabpanel extends org.zkoss.zul.Tabpanel implements IdSpace, ISuppor } } + /** + * Set on close handler + * @param handler ITabOnCloseHandler + */ public void setOnCloseHandler(ITabOnCloseHandler handler) { this.onCloseHandler = handler; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanels.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanels.java index 74ecf97bc7..8146dc5e89 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanels.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabpanels.java @@ -18,7 +18,7 @@ package org.adempiere.webui.component; /** - * + * Extend {@link org.zkoss.zul.Tabpanels} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -26,10 +26,13 @@ package org.adempiere.webui.component; public class Tabpanels extends org.zkoss.zul.Tabpanels { /** - * + * generated serial id */ private static final long serialVersionUID = -2520923256815587165L; + /** + * Default constructor + */ public Tabpanels() { super(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java index 217ba1a3e9..71ee1f19bc 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Tabs.java @@ -28,27 +28,29 @@ import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Tab; import org.zkoss.zul.Tabpanels; -/** - * +/** + * Extend {@link org.zkoss.zul.Tabs} * @author Ashley G Ramdass * @date Mar 2, 2007 * @version $Revision: 0.10 $ */ public class Tabs extends org.zkoss.zul.Tabs implements EventListener { - /** - * + * generated serial id */ private static final long serialVersionUID = 4939779587719677815L; + /** + * Default constructor + */ public Tabs() { super(); } /** - * override to set drag/drop for {@link Tab} already add to {@link Tabs} before {@link Tabs} add to {@link Tabbox} + * override to set drag/drop for {@link Tab} already added to {@link Tabs} before {@link Tabs} added to {@link Tabbox} */ @Override public void setParent(Component parent) { @@ -144,7 +146,7 @@ public class Tabs extends org.zkoss.zul.Tabs implements EventListener if (dropComp instanceof Tab) { dropIndex = this.getChildren().indexOf(dropComp); dropPanel = tabpanels.getChildren().get(dropIndex); - }// other case is drop to tabs + }// else is drop to tabs int draggIndex = this.getChildren().indexOf(draggComp); Component draggPanel = tabpanels.getChildren().get(draggIndex); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Textbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Textbox.java index c78d8b1a18..86d2eab911 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Textbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Textbox.java @@ -24,7 +24,7 @@ import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; /** - * + * Extend {@link org.zkoss.zul.Textbox}. * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -36,23 +36,35 @@ public class Textbox extends org.zkoss.zul.Textbox implements EventListener 0) @@ -78,7 +94,7 @@ public class Textbox extends org.zkoss.zul.Textbox implements EventListener listener) { @@ -110,6 +126,7 @@ public class Textbox extends org.zkoss.zul.Textbox implements EventListener + * Create {@link TokenEvent} from {@link AuRequest} and post to the component that send the {@link AuRequest}. * @author hengsin - * */ public class TokenCommand implements AuService { + /** + * Default constructor + */ public TokenCommand() { } + /** + * Post {@link TokenEvent} created from ON_USER_TOKEN {@link AuRequest} command. + */ + @Override public boolean service(AuRequest request, boolean everError) { if (!TokenEvent.ON_USER_TOKEN.equals(request.getCommand())) return false; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBar.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBar.java index 3ba7f1a49e..f596439bc9 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBar.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBar.java @@ -18,13 +18,14 @@ package org.adempiere.webui.component; /** + * Extend {@link org.zkoss.zul.Toolbar} * @author Sendy Yagambrum * @date July, 10 2007 */ public class ToolBar extends org.zkoss.zul.Toolbar { /** - * + * generated serial id */ private static final long serialVersionUID = 6908196335129904216L; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBarButton.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBarButton.java index bbb84f5770..f9fd8aeb43 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBarButton.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ToolBarButton.java @@ -20,20 +20,25 @@ package org.adempiere.webui.component; import org.adempiere.webui.LayoutUtils; /** + * Extend {@link org.zkoss.zul.Toolbarbutton} * @author Sendy Yagambrum * @date July, 10 2007 */ public class ToolBarButton extends org.zkoss.zul.Toolbarbutton { /** - * + * generated serial id */ private static final long serialVersionUID = -1214319982911389339L; private String name; - private boolean pressed; // Elaine 2008/12/09 + /** true if using toggle mode and checked */ + private boolean pressed; + /** + * Default constructor + */ public ToolBarButton() { setAutodisable("self"); } @@ -53,6 +58,10 @@ public class ToolBarButton extends org.zkoss.zul.Toolbarbutton } } + /** + * Set to toggle or default mode. + * @param pressed true for toggle mode. + */ public void setPressed(boolean pressed) { this.pressed = pressed; // Elaine 2008/12/09 @@ -67,23 +76,34 @@ public class ToolBarButton extends org.zkoss.zul.Toolbarbutton } } - // Elaine 2008/12/09 + /** + * @return true if toggle mode and checked + */ public boolean isPressed() { return pressed; } - // + /** + * @param name + */ public ToolBarButton(String name) { super(); this.name = name; setAutodisable("self"); } + /** + * @return name of button + */ public String getName() { return name; } + /** + * Set name of button + * @param name + */ public void setName(String name) { this.name = name; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Urlbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Urlbox.java index 1c9e4d1e59..2bffc6f8e7 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Urlbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Urlbox.java @@ -23,13 +23,13 @@ import org.zkoss.zul.A; import org.zkoss.zul.Div; /** - * URL Box + * URL Input Box. Composite component with {@link Textbox} and {@link A} (as Button). * @author Low Heng Sin */ public class Urlbox extends Div { /** - * + * generated serial id */ private static final long serialVersionUID = -5493978668402134644L; @@ -37,6 +37,9 @@ public class Urlbox extends Div protected Textbox txt; protected A btn; + /** + * Default constructor + */ public Urlbox() { initComponents(); @@ -51,6 +54,9 @@ public class Urlbox extends Div setText(url); } + /** + * Layout component + */ private void initComponents() { txt = new Textbox(); appendChild(txt); @@ -70,7 +76,7 @@ public class Urlbox extends Div } /** - * @param imageSrc + * @param imageSrc image URL for Button */ public void setButtonImage(String imageSrc) { btn.setImage(imageSrc); @@ -84,7 +90,7 @@ public class Urlbox extends Div } /** - * @param value + * @param value URL text */ public void setText(String value) { txt.setText(value); @@ -103,12 +109,16 @@ public class Urlbox extends Div } /** - * @return text + * @return URL text */ public String getText() { return txt.getText(); } + /** + * Enable/disable component + * @param enabled + */ public void setEnabled(boolean enabled) { txt.setReadonly(!enabled); if (enabled) { @@ -119,15 +129,17 @@ public class Urlbox extends Div } /** - * @return boolean + * @return true if enable, false otherwise */ public boolean isEnabled() { return !txt.isReadonly(); } /** - * @param evtnm - * @param listener + * If evtnm is ON_CLICK, add listener to Button.
    + * Otherwise, add listener to Text box. + * @param evtnm Event name + * @param listener EventListener */ public boolean addEventListener(String evtnm, EventListener listener) { if (Events.ON_CLICK.equals(evtnm)) { @@ -138,7 +150,7 @@ public class Urlbox extends Div } /** - * @param l + * @param l PropertyChangeListener */ public synchronized void addPropertyChangeListener(PropertyChangeListener l) { m_propertyChangeListeners.addPropertyChangeListener(l); @@ -158,6 +170,10 @@ public class Urlbox extends Div return btn; } + /** + * Set grid view or form mode + * @param flag true for grid view, false for form + */ public void setTableEditorMode(boolean flag) { if (flag) { ZKUpdateUtil.setHflex(this, "0"); @@ -167,8 +183,7 @@ public class Urlbox extends Div ZKUpdateUtil.setHflex(this, "1"); LayoutUtils.removeSclass("grid-editor-input", txt); LayoutUtils.removeSclass("grid-editor-button", btn); - } - + } } @Override diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/VerticalBox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/VerticalBox.java index 3825bf78ae..85afd9be29 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/VerticalBox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/VerticalBox.java @@ -18,7 +18,7 @@ package org.adempiere.webui.component; /** - * + * Extend {@link org.zkoss.zul.Vbox} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -26,7 +26,7 @@ package org.adempiere.webui.component; public class VerticalBox extends org.zkoss.zul.Vbox { /** - * + * generated serial id */ private static final long serialVersionUID = 5995926218043737398L; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java index 8f492b5784..c9c39dd705 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java @@ -27,11 +27,12 @@ import org.compiere.util.Env; import org.compiere.util.Msg; /** + *
      *  Application Action.
      *      Creates Action with Button
      *      The ActionCommand is translated for display
      *      If translated text contains &, the next character is the Mnemonic
    - *
    + *  
    * @author Andrew Kimball */ public class WAppsAction @@ -52,7 +53,7 @@ public class WAppsAction * * @param action base action command - used as AD_Message for Text and Icon name * @param accelerator optional keystroke for accelerator - * @param toolTipText text, if null defered from action + * @param toolTipText text, if null deferred from action */ public WAppsAction (String action, String accelerator, String toolTipText) throws IOException { @@ -68,7 +69,6 @@ public class WAppsAction m_accelerator = accelerator; } - // Data if (newToolTipText == null) { @@ -114,15 +114,16 @@ public class WAppsAction } // Action private Button m_button; - + /** Action Command */ private String m_action = null; + /** shortcut key. not implemented. */ private String m_accelerator = null; /** - * Get Icon with name action + * Get image with name action * @param name name * @param small small - * @return Icon + * @return image URI */ private URI getImage(String name, boolean small) throws IOException { @@ -141,7 +142,6 @@ public class WAppsAction } // getName /** - * Return Button * @return Button */ public Button getButton() @@ -149,7 +149,10 @@ public class WAppsAction return m_button; } // getButton - + /** + * Support for this is not implemented yet. + * @return shortcut key + */ public String getCtrlKeys() { return this.m_accelerator; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WInfoWindowListItemRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WInfoWindowListItemRenderer.java index 66cc240952..29d22c7e97 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WInfoWindowListItemRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WInfoWindowListItemRenderer.java @@ -39,23 +39,38 @@ import org.compiere.util.Evaluatee; import org.compiere.util.KeyNamePair; import org.zkoss.zul.Listcell; +/** + * List item renderer for Info Window list box. + */ public class WInfoWindowListItemRenderer extends WListItemRenderer { private InfoColumnVO[] gridDisplayedInfoColumns = null; private ColumnInfo[] gridDisplayedColumnInfos = null; private InfoWindow infoWindow = null; + /** + * @param infoWindow + */ public WInfoWindowListItemRenderer(InfoWindow infoWindow) { this.infoWindow = infoWindow; } + /** + * @param infoWindow + * @param columnNames + */ public WInfoWindowListItemRenderer(InfoWindow infoWindow, List columnNames) { super(columnNames); this.infoWindow = infoWindow; } + /** + * Set columns to display + * @param infoColumns + * @param columnInfos + */ public void setGridDisplaydInfoColumns(InfoColumnVO[] infoColumns, ColumnInfo[] columnInfos) { this.gridDisplayedInfoColumns = infoColumns; @@ -77,57 +92,52 @@ public class WInfoWindowListItemRenderer extends WListItemRenderer InfoColumnVO infoColumn = gridDisplayedInfoColumns[columnIndex]; if (infoColumn != null) - { - + { final GridField gridField = gridDisplayedColumnInfos[columnIndex].getGridField(); final WEditor editor = WebEditorFactory.getEditor(gridField, false); if(model.isSelected(obj)) // First index may be null - { - if(infoColumn.isReadOnly() == false - && columnIndex > 0) { - ListCell listCell = new ListCell(); - - - // Set editor value - - Object value = table.getValueAt(rowIndex, columnIndex); - - if(value instanceof IDColumn) + if(infoColumn.isReadOnly() == false && columnIndex > 0) { - IDColumn idc = (IDColumn)value; - value = idc.getRecord_ID(); - } - else if(value instanceof KeyNamePair) - { - KeyNamePair knp = (KeyNamePair)value; - value = knp.getKey(); - } - - editor.setValue(value); - - editor.addValueChangeListener(new ValueChangeListener() - { - @Override - public void valueChange(ValueChangeEvent evt) + ListCell listCell = new ListCell(); + + // Set editor value + Object value = table.getValueAt(rowIndex, columnIndex); + + if(value instanceof IDColumn) { - infoWindow.onCellEditCallback(evt, rowIndex, columnIndex, editor, gridField); + IDColumn idc = (IDColumn)value; + value = idc.getRecord_ID(); } - }); - - listCell.appendChild(editor.getComponent()); - listcell = listCell; + else if(value instanceof KeyNamePair) + { + KeyNamePair knp = (KeyNamePair)value; + value = knp.getKey(); + } + + editor.setValue(value); + + editor.addValueChangeListener(new ValueChangeListener() + { + @Override + public void valueChange(ValueChangeEvent evt) + { + infoWindow.onCellEditCallback(evt, rowIndex, columnIndex, editor, gridField); + } + }); + + listCell.appendChild(editor.getComponent()); + listcell = listCell; + } } - } - if(listcell == null) - listcell = super.getCellComponent(table, field, rowIndex, columnIndex); + if(listcell == null) + listcell = super.getCellComponent(table, field, rowIndex, columnIndex); if (gridField.getAD_FieldStyle_ID() > 0) { MStyle style = MStyle.get(Env.getCtx(), gridField.getAD_FieldStyle_ID()); - //devCoffee #5960 String styleStr = style.buildStyle(ThemeManager.getTheme(), new Evaluatee() { @Override @@ -166,51 +176,4 @@ public class WInfoWindowListItemRenderer extends WListItemRenderer return listcell; } - -// -// //devCoffee #5960 - Get CSS Style if pass through display logic. -// private String getStatusStyle(ListCell listcell, PO po) { -// if(po instanceof MInfoWindow) { -// if(po.get_ValueAsInt("AD_FieldStyle_ID") != 0 && listcell != null) { -// try { -// MTable t = new MTable(Env.getCtx(), po.get_ValueAsInt("AD_Table_ID"), null); -// PO recordPO = (PO) new Query(Env.getCtx(), t.getTableName(), t.getTableName() + "_ID =" + listcell.getValue(), null).first(); -// -// List lines = new Query(Env.getCtx(), X_AD_StyleLine.Table_Name, "AD_Style_ID = " + po.get_ValueAsInt("AD_FieldStyle_ID"), null).list(); -// -// StringBuilder styleBuilder = new StringBuilder(); -// for (X_AD_StyleLine line : lines) -// { -// String inlineStyle = line.getInlineStyle().trim(); -// String displayLogic = line.getDisplayLogic(); -// String theme = line.getTheme(); -// if (!Util.isEmpty(theme)) { -// if (!ThemeManager.getTheme().equals(theme)) -// continue; -// } -// if (!Util.isEmpty(displayLogic)) -// { -// if (!Evaluator.evaluateLogic(recordPO, displayLogic)) -// continue; -// } -// if (styleBuilder.length() > 0 && !(styleBuilder.charAt(styleBuilder.length()-1)==';')) -// styleBuilder.append("; "); -// -// styleBuilder.append(inlineStyle); -// } -// -// //listcell.setStyle(styleBuilder.toString()); -// return styleBuilder.toString(); -// } catch (Exception e) { -// throw new AdempiereException(e.getMessage()); -// } -// } -// } -// -// return ""; -// } - - - - } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListItemRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListItemRenderer.java index 4ac0012563..629c9e8687 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListItemRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListItemRenderer.java @@ -61,7 +61,7 @@ import org.zkoss.zul.ListitemRendererExt; /** * Renderer for {@link org.adempiere.webui.component.ListItem} - * for the {@link org.adempiere.webui.component.Listbox}. + * for {@link org.adempiere.webui.component.Listbox}. * * @author Andrew Kimball * @@ -74,9 +74,9 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** A list containing the indices of the currently selected ListItems. */ private Set m_selectedItems = new HashSet(); - /** Array of table details. */ + /** Array of table columns. */ private ArrayList m_tableColumns = new ArrayList(); - /** Array of {@link ListHeader}s for the list head. */ + /** Array of {@link ListHeader}s for list box column headers. */ private ArrayList m_headers = new ArrayList(); private Listbox listBox; @@ -85,7 +85,6 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** * Default constructor. - * */ public WListItemRenderer() { @@ -95,7 +94,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** * Constructor specifying the column headers. * - * @param columnNames vector of column titles. + * @param columnNames List of column headers. */ public WListItemRenderer(List< ? extends String> columnNames) { @@ -111,7 +110,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } /** - * Get the column details of the specified column. + * Get column details of specified column. * * @param columnIndex The index of the column for which details are to be retrieved. * @return The details of the column at the specified index. @@ -185,20 +184,18 @@ public class WListItemRenderer implements ListitemRenderer, EventListene if (m_tableColumns != null && m_tableColumns.size() == colIndex) break; } - - return; } /** - * Generate the cell for the given field. + * Create cell for the given value. * * @param table The table into which the cell will be placed. - * @param field The data field for which the cell is to be created. + * @param value Value for which the cell is to be created. * @param rowIndex The row in which the cell is to be placed. * @param columnIndex The column in which the cell is to be placed. * @return The list cell component. */ - protected Listcell getCellComponent(WListbox table, Object field, + protected Listcell getCellComponent(WListbox table, Object value, int rowIndex, int columnIndex) { ListCell listcell = new ListCell(); @@ -210,18 +207,16 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } boolean isCellEditable = table != null ? table.isCellEditable(rowIndex, columnIndex) : false; - // TODO put this in factory method for generating cell renderers, which - // are assigned to Table Columns - if (field != null) + if (value != null) { - if (field instanceof Boolean) + if (value instanceof Boolean) { - listcell.setValue(Boolean.valueOf(field.toString())); + listcell.setValue(Boolean.valueOf(value.toString())); if (table != null && columnIndex == 0) table.setCheckmark(false); Checkbox checkbox = new Checkbox(); - checkbox.setChecked(Boolean.valueOf(field.toString())); + checkbox.setChecked(Boolean.valueOf(value.toString())); if (isCellEditable) { @@ -236,14 +231,14 @@ public class WListItemRenderer implements ListitemRenderer, EventListene listcell.appendChild(checkbox); ZkCssHelper.appendStyle(listcell, "text-align:center"); } - else if (field instanceof Number) + else if (value instanceof Number) { if (m_tableColumns != null && columnIndex < m_tableColumns.size() && m_tableColumns.get(columnIndex).getColumnClass() != null && m_tableColumns.get(columnIndex).getColumnClass().getName().equals(MImage.class.getName()) - && field instanceof Integer) + && value instanceof Integer) { - MImage mImage = MImage.get(Env.getCtx(), (Integer) field); + MImage mImage = MImage.get(Env.getCtx(), (Integer) value); AImage img = null; byte[] data = mImage.getData(); if (data != null && data.length > 0) { @@ -262,13 +257,13 @@ public class WListItemRenderer implements ListitemRenderer, EventListene else { Language lang = AEnv.getLanguage(Env.getCtx()); - int displayType = (field instanceof BigDecimal || field instanceof Double || field instanceof Float) + int displayType = (value instanceof BigDecimal || value instanceof Double || value instanceof Float) ? DisplayType.Amount : DisplayType.Integer; DecimalFormat format = DisplayType.getNumberFormat(displayType, lang); // set cell value to allow sorting - listcell.setValue(field.toString()); + listcell.setValue(value.toString()); if (isCellEditable) { @@ -276,8 +271,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene numberbox.getDecimalbox().setFormat(format.toPattern()); numberbox.getDecimalbox().setLocale(lang.getLocale()); numberbox.setFormat(format); - numberbox.setValue(field); -// numberbox.setWidth("100px"); + numberbox.setValue(value); numberbox.setEnabled(true); numberbox.setStyle("text-align:right; width: 96%;" + listcell.getStyle()); @@ -288,12 +282,12 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } else { - listcell.setLabel(format.format(field)); + listcell.setLabel(format.format(value)); ZkCssHelper.appendStyle(listcell, "text-align: right"); } } } - else if (field instanceof Timestamp) + else if (value instanceof Timestamp) { int refId = 0; if (m_tableColumns != null && columnIndex < m_tableColumns.size()) { @@ -303,28 +297,28 @@ public class WListItemRenderer implements ListitemRenderer, EventListene if (refId == 0) refId = DisplayType.Date; SimpleDateFormat dateFormat = DisplayType.getDateFormat(refId, AEnv.getLanguage(Env.getCtx())); - listcell.setValue(dateFormat.format((Timestamp)field)); + listcell.setValue(dateFormat.format((Timestamp)value)); if (isCellEditable) { Datebox datebox = new Datebox(); - datebox.setValue(new Date(((Timestamp)field).getTime())); + datebox.setValue(new Date(((Timestamp)value).getTime())); datebox.addEventListener(Events.ON_CHANGE, this); listcell.appendChild(datebox); } else { - listcell.setLabel(dateFormat.format((Timestamp)field)); + listcell.setLabel(dateFormat.format((Timestamp)value)); ZkCssHelper.appendStyle(listcell, "margin: auto"); } } - else if (field instanceof String) + else if (value instanceof String) { if (m_tableColumns != null && columnIndex < m_tableColumns.size() && m_tableColumns.get(columnIndex).getColumnClass() != null && m_tableColumns.get(columnIndex).getColumnClass().getName().equals(MImage.class.getName())) { try { - URL url = new URL(field.toString()); + URL url = new URL(value.toString()); AImage aImage = new AImage(url); Image image = new Image(); image.setContent(aImage); @@ -339,25 +333,25 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } else { - listcell.setValue(field.toString()); + listcell.setValue(value.toString()); if (isCellEditable) { Textbox textbox = new Textbox(); - textbox.setValue(field.toString()); + textbox.setValue(value.toString()); textbox.addEventListener(Events.ON_CHANGE, this); ZkCssHelper.appendStyle(textbox, "width: 96%;"); listcell.appendChild(textbox); } else { - listcell.setLabel(field.toString()); + listcell.setLabel(value.toString()); } } } // if ID column make it invisible - else if (field instanceof IDColumn) + else if (value instanceof IDColumn) { - listcell.setValue(((IDColumn) field).getRecord_ID()); + listcell.setValue(((IDColumn) value).getRecord_ID()); if (!table.isCheckmark()) { table.setCheckmark(true); table.removeEventListener(Events.ON_SELECT, this); @@ -366,8 +360,8 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } else { - listcell.setLabel(field.toString()); - listcell.setValue(field.toString()); + listcell.setLabel(value.toString()); + listcell.setValue(value.toString()); } } else @@ -381,7 +375,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** - * Update Table Column. + * Update header of a Column. * * @param index The index of the column to update * @param header The header text for the column @@ -392,28 +386,32 @@ public class WListItemRenderer implements ListitemRenderer, EventListene tableColumn = getColumn(index); tableColumn.setHeaderValue(Util.cleanAmp(header)); - - return; } // updateColumn /** + * Add column * @param header */ public void addColumn(String header) { addColumn(header, null); } + + /** + * Add column + * @param header + * @param description + */ public void addColumn(String header, String description) { addColumn(header, description, 0); } + /** * Add Table Column. - * after adding a column, you need to set the column classes again - * (DefaultTableModel fires TableStructureChanged, which calls - * JTable.tableChanged .. createDefaultColumnsFromModel * @param header The header text for the column * @param description + * @param AD_Reference_ID */ public void addColumn(String header, String description, int AD_Reference_ID) { @@ -424,8 +422,6 @@ public class WListItemRenderer implements ListitemRenderer, EventListene tableColumn.setTooltipText(description); tableColumn.setAD_Reference_ID(AD_Reference_ID); m_tableColumns.add(tableColumn); - - return; } // addColumn /** @@ -446,6 +442,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene * @param readOnly * @deprecated */ + @Deprecated(forRemoval = true, since = "11") public void setRO(int colIndex, Boolean readOnly) { return; @@ -453,15 +450,15 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** * Create a ListHeader using the given headerValue to - * generate the header text. + * generate the header text.
    * The toString method of the headerValue * is used to set the header text. * * @param headerValue The object to use for generating the header text. * @param tooltipText * @param headerIndex The column index of the header - * @param classType - * @return The generated ListHeader + * @param classType Type of column. min-width is set base on type of column. + * @return The generated ListHeader component * @see #renderListHead(ListHead) */ private Component getListHeaderComponent(Object headerValue, String tooltipText, int headerIndex, Class classType) @@ -540,8 +537,8 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** * set custom list header - * @param index - * @param header + * @param index index of column + * @param header ListHeader */ public void setListHeader(int index, ListHeader header) { int size = m_headers.size(); @@ -559,9 +556,9 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } /** - * get custom list header - * @param index - * @return + * get list header + * @param index index of column + * @return ListHeader */ public ListHeader getListHeader(int index) { if (m_headers.size() <= index) @@ -570,20 +567,22 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } /** - * Obtain the comparator for a given column. + * Create comparator for a given column. * * @param ascending whether the comparator will sort ascending - * @param columnIndex the index of the column for which the comparator is required - * @return comparator for the given column for the given direction + * @param columnIndex the index of column + * @return comparator for the given column for the given sort direction */ protected Comparator getColumnComparator(boolean ascending, final int columnIndex) { return new ColumnComparator(ascending, columnIndex); } + /** + * Column Comparator implementation + */ public static class ColumnComparator implements Comparator { - private int columnIndex; private MSort sort; @@ -608,9 +607,9 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } /** - * Render the ListHead for the table with headers for the table columns. + * Render column headers * - * @param head The ListHead component to render. + * @param head The ListHead component to render. * @see #addColumn(String) * @see #WListItemRenderer(List) */ @@ -626,13 +625,12 @@ public class WListItemRenderer implements ListitemRenderer, EventListene head.appendChild(header); } head.setSizable(true); - - return; } /* (non-Javadoc) * @see org.zkoss.zk.ui.event.EventListener#onEvent(org.zkoss.zk.ui.event.Event) */ + @Override public void onEvent(Event event) throws Exception { int col = -1; @@ -706,10 +704,12 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } } } - - return; } + /** + * @param source Component + * @return true if source is own by Listcell (direct or indirect) + */ private boolean isWithinListCell(Component source) { if (source instanceof Listcell) return true; @@ -726,7 +726,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene * Get the row index of the given source component. * * @param source The component for which the row index is to be found. - * @return The row index of the given component. + * @return The row index of the given component or -1 if not found. */ protected int getRowPosition(Component source) { @@ -742,6 +742,11 @@ public class WListItemRenderer implements ListitemRenderer, EventListene return row; } + /** + * Find Listcell that own a Component. + * @param source Component + * @return Listcell that own source (direct or indirect) or null if not found + */ private Listcell findListcell(Component source) { if (source instanceof Listcell) return (Listcell) source; @@ -757,7 +762,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /** * Get the column index of the given source component. * - * @param source The component for which the column index is to be found. + * @param source The component for which the column index is to be found. * @return The column index of the given component. */ protected int getColumnPosition(Component source) @@ -771,7 +776,6 @@ public class WListItemRenderer implements ListitemRenderer, EventListene return col; } - /** * Reset the renderer. * This should be called if the table using this renderer is cleared. @@ -782,8 +786,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } /** - * Clear the renderer. - * This should be called if the table using this renderer is cleared. + * Clear selections */ public void clearSelection() { @@ -805,6 +808,10 @@ public class WListItemRenderer implements ListitemRenderer, EventListene m_listeners.add(listener); } + /** + * Remove listener + * @param listener + */ public void removeTableValueChangeListener(TableValueChangeListener listener) { if (listener == null) @@ -831,6 +838,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /* (non-Javadoc) * @see org.zkoss.zul.ListitemRendererExt#getControls() */ + @Override public int getControls() { return DETACH_ON_RENDER; @@ -839,6 +847,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /* (non-Javadoc) * @see org.zkoss.zul.ListitemRendererExt#newListcell(org.zkoss.zul.Listitem) */ + @Override public Listcell newListcell(Listitem item) { ListCell cell = new ListCell(); @@ -849,6 +858,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene /* (non-Javadoc) * @see org.zkoss.zul.ListitemRendererExt#newListitem(org.zkoss.zul.Listbox) */ + @Override public Listitem newListitem(Listbox listbox) { ListItem item = new ListItem(); @@ -858,6 +868,7 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } /** + * Set column header text * @param index * @param header */ @@ -870,6 +881,11 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } + /** + * Set column type + * @param index index of column + * @param classType Class Type of column + */ public void setColumnClass(int index, Class classType) { if (index >= 0 && index < m_tableColumns.size()) { @@ -877,10 +893,16 @@ public class WListItemRenderer implements ListitemRenderer, EventListene } } + /** + * @return Unmodifiable list of {@link WTableColumn} + */ public List getTableColumns() { return Collections.unmodifiableList(m_tableColumns); } + /** + * Listen to onDoubleClick event from Listcell and send onDoubleClick event to list box. + */ class CellListener implements EventListener { public CellListener() { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java index 4578fc57ba..377a5ce1e6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java @@ -47,14 +47,7 @@ import org.zkoss.zul.Listhead; import org.zkoss.zul.Listheader; /** - * Replacement for the Swing client minigrid component - * - * ZK Listbox extension for Adempiere Web UI. - * The listbox contains a model and a renderer. - * The model holds the underlying data objects, while the - * renderer deals with displaying the data objects. - * The renderer will render data objects using a variety of components. - * These components can then be edited if they are not readonly. + * {@link IMiniTable} implementation for Zk. * * @author Andrew Kimball * @author Sendy Yagambrum @@ -62,7 +55,7 @@ import org.zkoss.zul.Listheader; public class WListbox extends Listbox implements IMiniTable, TableValueChangeListener, WTableModelListener { /** - * + * generated serial id */ private static final long serialVersionUID = -5501893389366975849L; @@ -77,8 +70,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis /** List of R/W columns. */ private ArrayList m_readWriteColumn = new ArrayList(); - // TODO this duplicates other info held on columns. Needs rationalising. - /** Layout set in prepareTable and used in loadTable. */ + /** Listbox columns layout. Set in prepareTable and used in loadTable. */ private ColumnInfo[] m_layout = null; /** column class types (e.g. Boolean) */ private ArrayList> m_modelHeaderClass = new ArrayList>(); @@ -87,14 +79,15 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis /** Color Column compare data. */ private Object m_colorDataCompare = Env.ZERO; - // F3P: support IDColumn for selection + /** true to support IDColumn for selection */ private boolean allowIDColumnForReadWrite = false; - //support for saving column width + /** Unique name to support saving columns width to AD_Wlistbox_Customization */ private String wListBoxName = null; + /** * Default constructor. - * - * Sets a row renderer and an empty model + *
    + * Set empty model and {@link WListItemRenderer} as renderer. */ public WListbox() { @@ -110,7 +103,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis * Set the data model and column header names for the Listbox. * * @param model The data model to assign to the table - * @param columnNames The names of the table columns + * @param columnNames Header names of the table columns */ public void setData(ListModelTable model, List< ? extends String> columnNames) { @@ -142,6 +135,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis repaint(); } + /** + * Set ListModel + */ public void setModel(ListModel model) { if (getModel() == model) @@ -150,17 +146,13 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis super.setModel(model); if (model instanceof ListModelTable) { - // TODO need to remove listener before adding, but how to do this without - // causing ConcurrentModificationException - //((ListModelTable)model).removeTableModelListener(this); ((ListModelTable)model).addTableModelListener(this); } } /** - * Create the listbox header by fetching it from the renderer and adding - * it to the Listbox. - * + * Create {@link ListHead} and render list box header by calling {@link WListItemRenderer#renderListHead(ListHead)}.
    + * Throw ApplicationException if renderer of list box is not {@link WListItemRenderer}. */ public void initialiseHeader() { @@ -242,8 +234,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis return false; } - // F3P: If allowed, use idcolumn as a switch for read/write (Some logic as boolean) - + // F3P: If allowed, use idcolumn as a switch for read/write (Some logic as boolean) if(allowIDColumnForReadWrite && column != 0 && val instanceof IDColumn @@ -354,8 +345,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis { m_readWriteColumn.add(indexObject); } - - return; } // setColumnReadOnly /** @@ -379,7 +368,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } // prepareTable /** - * Prepare Table and return SQL required to get resultset to + * Prepare Table and return SQL to get ResultSet to * populate table * * @param layout array of column info @@ -476,8 +465,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis { ((WListItemRenderer)getItemRenderer()).clearColumns(); getModel().setNoColumns(0); - - return; } /** @@ -489,23 +476,28 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis addColumn(header, null); } + /** + * Add column + * @param header + * @param description + */ public void addColumn (String header, String description) { addColumn(header, description, 0); } + /** * Add Table Column and specify the column header. * * @param header name of column header * @param description + * @param AD_Reference_ID */ public void addColumn (String header, String description, int AD_Reference_ID) { WListItemRenderer renderer = (WListItemRenderer)getItemRenderer(); renderer.addColumn(Util.cleanAmp(header), description, AD_Reference_ID); getModel().addColumn(); - - return; } // addColumn /** @@ -513,7 +505,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis * * @param index The index of the column to be modified * @param classType The class of data that the column will contain - * @param readOnly Whether the data in the column is read only + * @param readOnly Whether the column is read only * @param header The header text for the column * * @see #setColumnClass(int, Class, boolean) @@ -532,19 +524,14 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis m_modelHeaderClass.set(index, classType); else m_modelHeaderClass.add(classType); - - return; } - - - /** * Set the attributes of the column. * * @param index The index of the column to be modified * @param classType The class of data that the column will contain - * @param readOnly Whether the data in the column is read only + * @param readOnly Whether column is read only * * @see #setColumnClass(int, Class, boolean, String) */ @@ -557,15 +544,13 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis renderer.setColumnClass(index, classType); m_modelHeaderClass.add(classType); - - return; } /** - * Set the attributes of the column. + * Add column * * @param classType The class of data that the column will contain - * @param readOnly Whether the data in the column is read only + * @param readOnly Whether the column is read only * @param header The header text for the column * * @see #setColumnClass(int, Class, boolean) @@ -581,8 +566,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis WListItemRenderer renderer = (WListItemRenderer)getItemRenderer(); renderer.setColumnClass((renderer.getNoColumns() - 1), classType); - - return; } /** @@ -595,9 +578,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } // setColorColumn /** - * Load Table from ResultSet - The ResultSet is not closed. + * Populate Table from ResultSet - The ResultSet is not closed. * - * @param rs ResultSet containing data t enter int the table. + * @param rs ResultSet containing data to enter into the table. * The contents must conform to the column layout defined in * {@link #prepareTable(ColumnInfo[], String, String, boolean, String)} */ @@ -665,7 +648,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } else if (columnClass == KeyNamePair.class) { - // TODO factor out this generation String display = rs.getString(rsColIndex); int key = rs.getInt(rsColIndex + 1); data = new KeyNamePair(key, display); @@ -673,7 +655,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } else { - // TODO factor out this cleanup String s = rs.getString(rsColIndex); if (s != null) { @@ -704,7 +685,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis /** * @param col * @param columnClass - * @return + * @return true if columnClass is different from setup classType for column */ private boolean isColumnClassMismatch(int col, Class columnClass) { @@ -712,7 +693,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } /** - * Load Table from Object Array. + * Populate Table from PO Array. * @param pos array of Persistent Objects */ public void loadTable(PO[] pos) @@ -782,6 +763,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis { this.getChildren().clear(); } + /** * Get the key of currently selected row based on layout defined in * {@link #prepareTable(ColumnInfo[], String, String, boolean, String)}. @@ -808,28 +790,26 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis * @return */ public Integer getRowKeyAt (int index){ - // TODO factor out the two parts of this guard statement if (index < 0 || m_keyColumnIndex < 0) return null; - - + Object data = getModel().getDataAt(index, m_keyColumnIndex); - if (data instanceof IDColumn) - { - data = ((IDColumn)data).getRecord_ID(); - } - if (data instanceof Integer) - { - return (Integer)data; - } - return null; + if (data instanceof IDColumn) + { + data = ((IDColumn)data).getRecord_ID(); } + if (data instanceof Integer) + { + return (Integer)data; + } + return null; + } /** - * IDEMPIERE-1334 - * deselect all current select, set all record have key in lsKey is selected - * when non key column just return + * IDEMPIERE-1334.
    + * deselect all current select, set all record have key in lsKey as selected.
    + * If table has no key column, just return. * @param lsKey */ public void setSelectedByKeys (List lsKey){ @@ -850,6 +830,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis model.setSelection(lsSelectedItem); } + /** + * @return key for first row (row 0). null if table is empty. + */ public Integer getFirstRowKey() { if (m_layout == null) @@ -884,11 +867,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis public void setRowCount (int rowCount) { getModel().setNoRows(rowCount); - - return; } // setRowCount - /* + /** * Set the name of the wListbox. This is use to save the width of columns * into ad_wlistbox_customization. */ @@ -896,7 +877,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis this.wListBoxName = wListBoxName; } - /* + /** * Get the name of the wListbox */ public String getwListBoxName() { @@ -904,14 +885,14 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } /** - * Get Layout. + * Get Columns Layout. * * @return Array of ColumnInfo */ public ColumnInfo[] getLayoutInfo() { return getLayout(); - } // getLayout + } /** * Removes all data stored in the underlying model. @@ -934,13 +915,11 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis { throw new IllegalArgumentException("Renderer must be instance of WListItemRenderer"); } - - return; } /** - * Get the number of rows in this table's model. + * Get the number of rows in this table's model. * * @return the number of rows in this table's model * @@ -959,8 +938,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis public void setMultiSelection(boolean multiSelection) { this.setMultiple(multiSelection); - - return; } // setMultiSelection @@ -982,8 +959,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis { showTotals= show; } + /** - * get if Totals is Show + * @return true if Totals is Show */ public boolean getShowTotals() { @@ -993,24 +971,23 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis /** * Set ColorColumn comparison criteria. * - * @param dataCompare object encapsualating comparison criteria + * @param dataCompare object encapsulating comparison criteria */ public void setColorCompare (Object dataCompare) { m_colorDataCompare = dataCompare; - - return; } // /** * Get ColorCode for Row. - *
    -	 *	If numerical value in compare column is
    -	 *		negative = -1,
    -	 *      positive = 1,
    -	 *      otherwise = 0
    -	 *  If Timestamp
    -	 *  
    + *
    + * If numerical value in color column (m_colorColumnIndex) compare to m_colorDataCompare is + *
  • negative = -1
  • + *
  • positive = 1
  • + *
  • otherwise = 0
  • + *
    + * If Timestamp, same as above for before, after and equal for comparison to m_colorDataCompare + * or today (if m_colorDataCompare is null). * @param row row * @return color code */ @@ -1083,6 +1060,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis * @see org.adempiere.webui.event.TableValueChangeListener#tableValueChange * (org.adempiere.webui.event.TableValueChangeEvent) */ + @Override public void tableValueChange(TableValueChangeEvent event) { int col = event.getColumn(); // column of table field which caused the event @@ -1108,8 +1086,6 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis this.setValueAt(event.getNewValue(), row, col); } } - - return; } @@ -1125,9 +1101,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } /** - * Get the table layout. + * Get columns layout. * - * @return the layout of the table + * @return ColumnInfo[], the columns layout of the table * @see #setLayout(ColumnInfo[]) */ public ColumnInfo[] getLayout() @@ -1136,26 +1112,25 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } /** - * Set the column information for the table. + * Set columns layout information for the table. * - * @param layout The new layout to set for the table + * @param layout Columns layout for the table * @see #getLayout() */ private void setLayout(ColumnInfo[] layout) { this.m_layout = layout; getModel().setNoColumns(m_layout.length); - - return; } /** * Respond to a change in the table's model. - * + *
    * If the event indicates that the entire table has changed, the table is repainted. * * @param event The event fired to indicate a change in the table's model */ + @Override public void tableChanged(WTableModelEvent event) { if ((event.getType() == WTableModelEvent.CONTENTS_CHANGED) @@ -1182,33 +1157,33 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis this.setSelectedIndices(indices); } } - - return; } /** * no op, to ease porting of swing form */ + @Deprecated public void autoSize() { //no op } /** - * TODO:in theory column of model maybe not map with column of view - * in case set other data model this function always return number of column of model, - * maybe not equal with number of column of view - * so it should is m_layout.length + * @return number of columns */ public int getColumnCount() { return getModel() != null ? getModel().getNoColumns() : 0; } + /** + * @return key column index + */ public int getKeyColumnIndex() { return m_keyColumnIndex; } /** - * Adding a new row with the totals + * Add new row for column totals + * @param layout ColumnInfo[] */ public void addTotals(ColumnInfo[] layout) { @@ -1282,21 +1257,28 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } } + /** + * @return true if ID column is editable + */ public boolean isAllowIDColumnForReadWrite() { return allowIDColumnForReadWrite; } + /** + * Set whether ID column is editable + * @param allowIDColumnForReadWrite + */ public void setAllowIDColumnForReadWrite(boolean allowIDColumnForReadWrite) { this.allowIDColumnForReadWrite = allowIDColumnForReadWrite; } - /** - * Retrieve the width of the column + /** + * Get width of the column * * @param columnName the name of the column to find the width of. - * @param columnList list of the columns and their width + * @param columnList list of column and width pair, separated by = (ColumnName=Width). * @return the width of the column */ private String getColumnWidth(String columnName, ListcolumnList) @@ -1316,8 +1298,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } /** - * Render the header of the WListbox with the columns width of the saved column width - * + * Render the header of the WListbox with saved column width */ public void renderCustomHeaderWidth () { @@ -1352,7 +1333,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } /** - * Save the width of all the columns in the WLsitbox + * Save the width of all the columns */ public void saveColumnWidth() { @@ -1391,5 +1372,4 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis } } } - } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WTableColumn.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WTableColumn.java index 24b6753a9a..8ed697a88e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WTableColumn.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WTableColumn.java @@ -18,24 +18,24 @@ package org.adempiere.webui.component; /** + * Model for {@link WListbox} column * @author Andrew Kimball - * */ public class WTableColumn { - /** The width of the column. */ + @Deprecated(forRemoval = true, since = "11") protected int width; - /** The minimum width of the column. */ + @Deprecated(forRemoval = true, since = "11") protected int minWidth; - /** The preferred width of the column. */ + @Deprecated(forRemoval = true, since = "11") private int preferredWidth; - /** The maximum width of the column. */ + @Deprecated(forRemoval = true, since = "11") protected int maxWidth; - /** If true, the user is allowed to resize the column; the default is true. */ + @Deprecated(forRemoval = true, since = "11") protected boolean isResizable; /** The header value of the column. */ @@ -48,13 +48,16 @@ public class WTableColumn private int AD_Reference_ID; /** - * Cover method, using a default width of 75 - * @see #WTableColumn(int) + * Default constructor */ public WTableColumn() { - this(75); + headerValue = null; } + /** + * @param width + */ + @Deprecated(forRemoval = true, since = "11") public WTableColumn(int width) { this.width = width; @@ -80,11 +83,8 @@ public class WTableColumn public void setHeaderValue(Object headerValue) { this.headerValue = headerValue; - - return; } - /** * Returns the Object used as the value for the header * renderer. @@ -97,20 +97,7 @@ public class WTableColumn return headerValue; } - - /** - * This method should not be used to set the widths of columns in the - * WListbox, use setPreferredWidth instead. - * This method sets this column's width to width. - * If width exceeds the minimum or maximum width, - * it is adjusted to the appropriate limiting value. - *

    - * @param width the new width - * @see #getWidth - * @see #setMinWidth - * @see #setMaxWidth - * @see #setPreferredWidth - */ + @Deprecated(forRemoval = true, since = "11") public void setWidth(int width) { this.width = Math.min(Math.max(width, minWidth), maxWidth); @@ -118,53 +105,25 @@ public class WTableColumn return; } - /** - * Returns the width of the TableColumn. The default width is - * 75. - * - * @return the width property - * @see #setWidth - */ + @Deprecated(forRemoval = true, since = "11") public int getWidth() { return width; } - /** - * Sets this column's preferred width to preferredWidth. - * If preferredWidth exceeds the minimum or maximum width, - * it is adjusted to the appropriate limiting value. - * - * @param preferredWidth the new preferred width - * @see #getPreferredWidth - */ + @Deprecated(forRemoval = true, since = "11") public void setPreferredWidth(int preferredWidth) { this.preferredWidth = Math.min(Math.max(preferredWidth, minWidth), maxWidth); } - /** - * Returns the preferred width of the WTableColumn. - * The default preferred width is 75. - * - * @return the preferredWidth property - * @see #setPreferredWidth - */ + @Deprecated(forRemoval = true, since = "11") public int getPreferredWidth() { return preferredWidth; } - /** - * Sets the WTableColumn's minimum width to - * minWidth; also adjusts the current width - * and preferred width if they are less than this value. - * - * @param minWidth the new minimum width - * @see #getMinWidth - * @see #setPreferredWidth - * @see #setMaxWidth - */ + @Deprecated(forRemoval = true, since = "11") public void setMinWidth(int minWidth) { this.minWidth = Math.max(minWidth, 0); @@ -182,29 +141,13 @@ public class WTableColumn return; } - /** - * Returns the minimum width for the WTableColumn. The - * WTableColumn's width can't be made less than this either - * by the user or programmatically. The default minWidth is 15. - * - * @return the minWidth property - * @see #setMinWidth - */ + @Deprecated(forRemoval = true, since = "11") public int getMinWidth() { return minWidth; } - /** - * Sets the WTableColumn's maximum width to - * maxWidth; also adjusts the width and preferred - * width if they are greater than this value. - * - * @param maxWidth the new maximum width - * @see #getMaxWidth - * @see #setPreferredWidth - * @see #setMinWidth - */ + @Deprecated(forRemoval = true, since = "11") public void setMaxWidth(int maxWidth) { this.maxWidth = Math.max(minWidth, maxWidth); @@ -220,47 +163,25 @@ public class WTableColumn return; } - /** - * Returns the maximum width for the WTableColumn. The - * WTableColumn's width can't be made larger than this - * either by the user or programmatically. The default maxWidth - * is Integer.MAX_VALUE. - * - * @return the maxWidth property - * @see #setMaxWidth - */ + @Deprecated(forRemoval = true, since = "11") public int getMaxWidth() { return maxWidth; } - /** - * Sets whether this column can be resized. - * - * @param isResizable if true, resizing is allowed; otherwise false - * @see #getResizable - */ + @Deprecated(forRemoval = true, since = "11") public void setResizable(boolean isResizable) { this.isResizable = isResizable; } - /** - * Returns true if the user is allowed to resize the - * WTableColumn's - * width, false otherwise. You can change the width programmatically - * regardless of this setting. The default is true. - * - * @return the isResizable property - * @see #setResizable - */ + @Deprecated(forRemoval = true, since = "11") public boolean getResizable() { return isResizable; } /** - * * @return Class */ public Class getColumnClass() @@ -269,7 +190,6 @@ public class WTableColumn } /** - * * @param columnClass */ public void setColumnClass(Class columnClass) @@ -291,10 +211,16 @@ public class WTableColumn this.tooltipText = tooltipText; } + /** + * @return AD_Reference_ID + */ public int getAD_Reference_ID() { return AD_Reference_ID; } + /** + * @param AD_Reference_ID + */ public void setAD_Reference_ID(int AD_Reference_ID) { this.AD_Reference_ID=AD_Reference_ID; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Window.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Window.java index 223ae69092..cc587a1142 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Window.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/Window.java @@ -27,7 +27,7 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Events; /** - * + * Extend {@link org.zkoss.zul.Window} * @author Ashley G Ramdass * @date Feb 25, 2007 * @version $Revision: 0.10 $ @@ -35,35 +35,39 @@ import org.zkoss.zk.ui.event.Events; public class Window extends org.zkoss.zul.Window implements ISupportMask { /** - * + * generated serial id */ private static final long serialVersionUID = -8249071775776387012L; protected ShowMaskWrapper showMaskWrapper = new ShowMaskWrapper(this); - /*** Show as modal window ***/ + /** Show as modal window */ public static final String MODE_MODAL = "modal"; - /*** Show as popup window ***/ + /** Show as popup window */ public static final String MODE_POPUP = "popup"; - /*** Show as floating window ***/ + /** Show as floating/overlapped window */ public static final String MODE_OVERLAPPED = "overlapped"; - /*** Add to the tabbed window container ***/ + /** Show as desktop tab */ public static final String MODE_EMBEDDED = "embedded"; - /*** Show as fake modal window ***/ + /** Show as overlapped window with background mask */ public static final String MODE_HIGHLIGHTED = "highlighted"; - /*** attribute key to store window display mode ***/ + /** Window attribute to store display mode (modal, popup, etc) */ public static final String MODE_KEY = "mode"; - /*** attribute key to store insert position for embedded mode window ***/ + /** Window attribute to store desktop tab insert position for embedded mode */ public static final String INSERT_POSITION_KEY = "insertPosition"; - /*** Append to the end of tabs of the tabbed window container ***/ + /** Append to the end of tabs of desktop */ public static final String INSERT_END = "insertEnd"; - /*** Insert next to the active tab of the tabbed window container ***/ + /** Insert next to the active tab of desktop */ public static final String INSERT_NEXT = "insertNext"; - /*** Replace current tab content ***/ + /** Replace current desktop tab content */ public static final String REPLACE = "replace"; + /** if true, fire ON_WINDOW_CLOSE event when detached from page */ private boolean fireWindowCloseEventOnDetach = true; + /** + * Default constructor + */ public Window() { super(); @@ -151,7 +155,6 @@ public class Window extends org.zkoss.zul.Window implements ISupportMask } /** - * * @return true if {@link DialogEvents#ON_WINDOW_CLOSE} event is fire when window is detach from page */ public boolean isFireWindowCloseEventOnDetach() { @@ -159,7 +162,6 @@ public class Window extends org.zkoss.zul.Window implements ISupportMask } /** - * * @param fireWindowCloseEventOnDetach true to fire {@link DialogEvents#ON_WINDOW_CLOSE} event when window is detach from page (default is true) */ public void setFireWindowCloseEventOnDetach(boolean fireWindowCloseEventOnDetach) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZkCssHelper.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZkCssHelper.java index af501a8702..83fc4cff68 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZkCssHelper.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZkCssHelper.java @@ -24,15 +24,13 @@ import org.zkoss.zk.ui.HtmlBasedComponent; /** * Utility function to support ZK functions. * - * Provides functionsfor manipulating the CSS style for + * Provides functionsfor manipulating the CSS style of * ZK components. * * @author Andrew Kimball - * */ public final class ZkCssHelper { - /** Left text alignment CSS style property and value. */ public static final String STYLE_TEXT_ALIGN_LEFT = "text-align:left"; /** Right text alignment CSS style property and value. */ @@ -46,23 +44,17 @@ public final class ZkCssHelper /** * Private default constructor. - * This exists purely for conformance and should not be used. */ private ZkCssHelper() { - } /** - * Obtains the string description of the RGB components of a color. + * Create hex string color code from the RGB components of {@link Color}.
    * The returned string is suitable for using in CSS styles. - * The red, green and blue components are formatted as hexadecimal characters. - * Each component is in the range 00 to FF. - * The entire string is therefore - * a 6 character string ranging from "000000" to "FFFFFF". * - * @param color The color for which the string is to be created - * @return The string representation of the colour's RGB components. + * @param color Color + * @return Hex string color code of the colour's RGB components. */ public static String createHexColorString(Color color) { @@ -92,8 +84,6 @@ public final class ZkCssHelper } component.setStyle(oldStyle + "; " + style); - - return; } /** @@ -111,15 +101,13 @@ public final class ZkCssHelper String colorString = createHexColorString(color); String colorStyleString = STYLE_COLOR + colorString; appendStyle(component, colorStyleString); - - return; } /** * Sets CSS color style for component. * - * Previous styles are removed. + * Current style of component will be replaced. * * @param component the HTML based ZK component whose CSS style is to be modified * @param color the color to be set @@ -131,8 +119,6 @@ public final class ZkCssHelper String colorString = createHexColorString(color); String colorStyleString = STYLE_COLOR + colorString; component.setStyle(colorStyleString); - - return; } /** @@ -149,14 +135,12 @@ public final class ZkCssHelper String colorString = createHexColorString(color); String colorStyleString = STYLE_BACKGROUND_COLOR + colorString; appendStyle(component, colorStyleString); - - return; } /** * Sets CSS background color style for component. * - * Previous styles are removed. + * Current style of component will be replaced. * * @param component the HTML based ZK component whose CSS style is to be modified * @param color the color to be set @@ -168,7 +152,5 @@ public final class ZkCssHelper String colorString = createHexColorString(color); String colorStyleString = STYLE_BACKGROUND_COLOR + colorString; component.setStyle(colorStyleString); - - return; } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZoomCommand.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZoomCommand.java index 4ee15c4d46..5d6f82601f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZoomCommand.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ZoomCommand.java @@ -25,11 +25,13 @@ import org.zkoss.zk.au.AuRequest; import org.zkoss.zk.au.AuService; import org.zkoss.zk.mesg.MZk; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Desktop; import org.zkoss.zk.ui.UiException; import org.zkoss.zk.ui.event.Events; /** - * + * {@link Desktop} listener for onZoom {@link AuRequest}.
    + * Create {@link ZoomEvent} from {@link AuRequest} and post to the component that send the {@link AuRequest}. * @author hengsin * */ @@ -38,6 +40,7 @@ public class ZoomCommand implements AuService { public ZoomCommand() { } + @Override public boolean service(AuRequest request, boolean everError) { if (!ZoomEvent.EVENT_NAME.equals(request.getCommand())) return false; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java index 211f5ff5e2..ef5c5dda34 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java @@ -233,7 +233,6 @@ public class InfoProductWindow extends InfoWindow { m_sqlWarehouse += " GROUP BY Warehouse"; warehouseTbl.setMultiSelection(false); warehouseTbl.setShowTotals(true); - warehouseTbl.autoSize(); warehouseTbl.setwListBoxName("AD_InfoWindow_UU|"+ infoWindow.getAD_InfoWindow_UU() +"|stock"); ColumnInfo[] s_layoutSubstitute = new ColumnInfo[]{ @@ -251,7 +250,6 @@ public class InfoProductWindow extends InfoWindow { substituteTbl = ListboxFactory.newDataTableAutoSize(); m_sqlSubstitute = substituteTbl.prepareTable(s_layoutSubstitute, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_SUBSTITUTERELATED_V"); substituteTbl.setMultiSelection(false); - substituteTbl.autoSize(); substituteTbl.setwListBoxName("AD_InfoWindow_UU|"+ infoWindow.getAD_InfoWindow_UU() + "|substitute"); ColumnInfo[] s_layoutRelated = new ColumnInfo[]{ @@ -270,7 +268,6 @@ public class InfoProductWindow extends InfoWindow { relatedTbl = ListboxFactory.newDataTableAutoSize(); m_sqlRelated = relatedTbl.prepareTable(s_layoutRelated, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_SUBSTITUTERELATED_V"); relatedTbl.setMultiSelection(false); - relatedTbl.autoSize(); relatedTbl.setwListBoxName("AD_InfoWindow_UU|"+ infoWindow.getAD_InfoWindow_UU() + "|related"); //Available to Promise Tab @@ -310,7 +307,6 @@ public class InfoProductWindow extends InfoWindow { productpriceTbl = ListboxFactory.newDataTableAutoSize(); m_sqlProductprice = productpriceTbl.prepareTable(s_layoutProductPrice, s_sqlFrom, s_sqlWhere, false, "pp") + " ORDER BY plv.ValidFrom DESC"; productpriceTbl.setMultiSelection(false); - productpriceTbl.autoSize(); productpriceTbl.setwListBoxName("AD_InfoWindow_UU|" + infoWindow.getAD_InfoWindow_UU() + "|price"); tabbedPane = new Tabbox(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java index 2937609b03..fb7a63c1b7 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java @@ -872,8 +872,6 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL embeddedTbl.setMultiSelection(false); - embeddedTbl.autoSize(); - embeddedTbl.getModel().addTableModelListener(this); ZKUpdateUtil.setVflex(embeddedTbl, "1"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InvoiceHistory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InvoiceHistory.java index 51ed736d5c..fb84ff3411 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InvoiceHistory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InvoiceHistory.java @@ -258,9 +258,6 @@ public class InvoiceHistory extends Window implements EventListener m_tablePrice.setColumnClass(5, String.class, true); // DocNo m_tablePrice.setColumnClass(6, Timestamp.class, true); // Date m_tablePrice.setColumnClass(7, String.class, true); // Org - // - m_tablePrice.autoSize(); - // return data.size() != 0; } // dynInit @@ -478,8 +475,6 @@ public class InvoiceHistory extends Window implements EventListener m_tableReserved.setColumnClass(5, String.class, true); // DocNo m_tableReserved.setColumnClass(6, Timestamp.class, true); // Date m_tableReserved.setColumnClass(7, String.class, true); // Warehouse - // - m_tableReserved.autoSize(); } else { @@ -494,8 +489,6 @@ public class InvoiceHistory extends Window implements EventListener m_tableOrdered.setColumnClass(5, String.class, true); // DocNo m_tableOrdered.setColumnClass(6, Timestamp.class, true); // Date m_tableOrdered.setColumnClass(7, String.class, true); // Warehouse - // - m_tableOrdered.autoSize(); } } // initReservedOrderedTab @@ -598,8 +591,6 @@ public class InvoiceHistory extends Window implements EventListener m_tableUnconfirmed.setColumnClass(2, Timestamp.class, true); // MovementDate m_tableUnconfirmed.setColumnClass(3, Boolean.class, true); // IsSOTrx m_tableUnconfirmed.setColumnClass(4, String.class, true); // DocNo - // - m_tableUnconfirmed.autoSize(); } // initUnconfirmedTab /** @@ -767,7 +758,5 @@ public class InvoiceHistory extends Window implements EventListener m_tableAtp.setColumnClass(6, String.class, true); // ASI m_tableAtp.setColumnClass(7, String.class, true); // DocNo m_tableAtp.setColumnClass(8, String.class, true); // Warehouse - // - m_tableAtp.autoSize(); } // initAtpTab } // InvoiceHistory diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/LoginWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/LoginWindow.java index 223c94f4ba..9eb0dd100b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/LoginWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/LoginWindow.java @@ -32,7 +32,6 @@ import javax.servlet.http.HttpSession; import org.adempiere.util.Callback; import org.adempiere.webui.AdempiereWebUI; import org.adempiere.webui.IWebClient; -import org.adempiere.webui.component.FWindow; import org.adempiere.webui.component.Window; import org.adempiere.webui.panel.ChangePasswordPanel; import org.adempiere.webui.panel.LoginPanel; @@ -69,7 +68,7 @@ import org.zkoss.zk.ui.util.Clients; * @author Sendy Yagambrum * @date July 18, 2007 */ -public class LoginWindow extends FWindow implements EventListener +public class LoginWindow extends Window implements EventListener { /** *