svn commit: r615262 - in /ofbiz/trunk: ./ framework/base/config/ framework/guiapp/lib/ framework/guiapp/src/org/ofbiz/guiapp/xui/ specialpurpose/pos/config/ specialpurpose/pos/src/org/ofbiz/pos/ specialpurpose/pos/src/org/ofbiz/pos/component/ specialpu...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r615262 - in /ofbiz/trunk: ./ framework/base/config/ framework/guiapp/lib/ framework/guiapp/src/org/ofbiz/guiapp/xui/ specialpurpose/pos/config/ specialpurpose/pos/src/org/ofbiz/pos/ specialpurpose/pos/src/org/ofbiz/pos/component/ specialpu...

jleroux@apache.org
Author: jleroux
Date: Fri Jan 25 08:45:21 2008
New Revision: 615262

URL: http://svn.apache.org/viewvc?rev=615262&view=rev
Log:
From a slightly modified Chris Lombardi's patch "XUI update to x3.2rc2b" (see comments in https://issues.apache.org/jira/browse/OFBIZ-1580) - OFBIZ-1580
I will remove the old XUI jar later

Added:
    ofbiz/trunk/framework/guiapp/lib/XuiCoreSwing-v3.2rc2b.jar   (with props)
    ofbiz/trunk/framework/guiapp/lib/XuiOptional-v3.2rc2b.jar   (with props)
Modified:
    ofbiz/trunk/.classpath
    ofbiz/trunk/framework/base/config/pos-containers.xml
    ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java
    ofbiz/trunk/specialpurpose/pos/config/xpos.properties
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/Journal.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/PosButton.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/LoadSale.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PaidInOut.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PosScreen.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SaveSale.java
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SelectProduct.java

Modified: ofbiz/trunk/.classpath
URL: http://svn.apache.org/viewvc/ofbiz/trunk/.classpath?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/.classpath (original)
+++ ofbiz/trunk/.classpath Fri Jan 25 08:45:21 2008
@@ -48,7 +48,8 @@
   <classpathentry kind="lib" path="framework/jetty/lib/org.mortbay.jetty.jar"/>
   <classpathentry kind="lib" path="framework/jetty/lib/jasper-runtime.jar"/>
   <classpathentry kind="lib" path="framework/jetty/lib/jasper-compiler.jar"/>
-  <classpathentry kind="lib" path="framework/guiapp/lib/XuiCoreSwing_v2_0_6_jdk1_5.jar"/>
+  <classpathentry kind="lib" path="framework/guiapp/lib/XuiCoreSwing-v3.2rc2b.jar"/>
+  <classpathentry kind="lib" path="framework/guiapp/lib/XuiOptional-v3.2rc2b.jar"/>
   <classpathentry kind="lib" path="applications/content/lib/poi.jar"/>
   <classpathentry kind="lib" path="applications/content/lib/lucene-2.2.0.jar"/>
   <classpathentry kind="lib" path="framework/catalina/lib/tomcat-util.jar"/>

Modified: ofbiz/trunk/framework/base/config/pos-containers.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/pos-containers.xml?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/config/pos-containers.xml (original)
+++ ofbiz/trunk/framework/base/config/pos-containers.xml Fri Jan 25 08:45:21 2008
@@ -44,8 +44,9 @@
 
     <!-- load the POS GUI -->
     <container name="pos-container" class="org.ofbiz.pos.container.PosContainer">
-        <property name="startup-directory" value="/specialpurpose/pos/config/"/>
+        <property name="startup-directory" value="specialpurpose/pos/config/"/>
         <property name="startup-file" value="xpos.properties"/>
+        <property name="class-package-name " value="net.xoetrope.swing"/>
         <property name="dispatcher-name" value="POSDispatcher"/>
         <property name="delegator-name" value="default"/>
         <property name="xui-session-id" value="pos-1"/>

Added: ofbiz/trunk/framework/guiapp/lib/XuiCoreSwing-v3.2rc2b.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/guiapp/lib/XuiCoreSwing-v3.2rc2b.jar?rev=615262&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/guiapp/lib/XuiCoreSwing-v3.2rc2b.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/framework/guiapp/lib/XuiOptional-v3.2rc2b.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/guiapp/lib/XuiOptional-v3.2rc2b.jar?rev=615262&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/guiapp/lib/XuiOptional-v3.2rc2b.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java (original)
+++ ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java Fri Jan 25 08:45:21 2008
@@ -31,16 +31,13 @@
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.service.GenericDispatcher;
-import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.base.util.UtilProperties;
 
 public abstract class XuiContainer implements Container {
 
     public static final String module = XuiContainer.class.getName();
-    protected static XuiSession session = null;
-
-    protected XuiScreen initialScreen = null;
+    protected static XuiSession xuiSession = null;
 
     protected String startupDir = null;
     protected String startupFile = null;
@@ -85,19 +82,24 @@
         }
 
         // create and cache the session
-        session = new XuiSession(xuiSessionId, delegator, dispatcher, this);
-
+        xuiSession = new XuiSession(xuiSessionId, delegator, dispatcher, this);
+
         // configure the rest of the container
         this.configure(cc);
 
         // load the XUI and render the initial screen
         if (this.startupFile == null) {
-            this.startupDir = ContainerConfig.getPropertyValue(cc, "startup-directory", "/specialpurpose/pos/config/");
+            this.startupDir = ContainerConfig.getPropertyValue(cc, "startup-directory", "specialpurpose/pos/config/");
             this.startupFile = ContainerConfig.getPropertyValue(cc, "startup-file", "xpos.properties");
         }
-        this.initialScreen = new XuiScreen();
-        this.initialScreen.setup(this.startupDir, this.startupFile);                
 
+        String classPackageName = ContainerConfig.getPropertyValue(cc, "class-package-name", "net.xoetrope.swing");
+
+        JFrame jframe = new JFrame();
+        jframe.setUndecorated(true);  
+        new XuiScreen(
+                new String[] { this.startupDir + this.startupFile,
+                classPackageName}, jframe);
         return true;
     }
 
@@ -124,25 +126,30 @@
     public abstract void configure(ContainerConfig.Container cc) throws ContainerException;
 
     public static XuiSession getSession() {
-        return session;
+        return xuiSession;
     }
 
     class XuiScreen extends XApplet {
-
-        public void setup(String startupDir, String startupFile) {
-            String xuiProps = System.getProperty("ofbiz.home") + startupDir + startupFile;
+        protected String startupProperties = "";
+        
+        public XuiScreen(String[] args, JFrame frame) {
+            super(args, frame);
+            if(args.length > 0) {
+                startupProperties = args[0];
+            }
             String suffix = Locale.getDefault().getLanguage();
             if ("en".equals(suffix)) {
                 suffix = "";
             } else {
                 suffix = "_" + suffix;
             }
-            UtilProperties.setPropertyValue(xuiProps, "Language", "XuiLabels" + suffix);            
-            JFrame frame = new JFrame();
-            frame.setUndecorated(true);
-            frame.setVisible(false);
-            frame.getContentPane().add(this);            
-            super.setup(frame, new String[] { startupFile });
-        }
+            String language = UtilProperties.getPropertyValue(startupProperties, "Language");
+            if(language.compareTo("XuiLabels" + suffix ) != 0){
+                UtilProperties.setPropertyValue(startupProperties, "Language", "XuiLabels" + suffix);
+            }                
+            frame.setVisible(true);
+            frame.getContentPane().add(this);
+            frame.validate();
+        }
     }
 }

Modified: ofbiz/trunk/specialpurpose/pos/config/xpos.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/xpos.properties?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/config/xpos.properties (original)
+++ ofbiz/trunk/specialpurpose/pos/config/xpos.properties Fri Jan 25 08:45:21 2008
@@ -28,3 +28,5 @@
 UseFrames=false
 StartPackage=org.ofbiz.pos
 LogLevel=0
+StartClass=specialpurpose/pos/screens/default/pospanel
+StartPackage=org.ofbiz.pos

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Fri Jan 25 08:45:21 2008
@@ -865,7 +865,7 @@
                 double subTotal = unitPrice * quantity;
                 double adjustment = item.getOtherAdjustments();
 
-                XModel line = Journal.appendNode(model, "tr", "", "");
+                XModel line = Journal.appendNode(model, "tr", ""+cart.getItemIndex(item), "");
                 Journal.appendNode(line, "td", "sku", item.getProductId());
                 Journal.appendNode(line, "td", "desc", item.getName());
                 Journal.appendNode(line, "td", "qty", UtilFormatOut.formatQuantity(quantity));
@@ -880,10 +880,10 @@
                     pcw = item.getConfigWrapper();
                     List selected = pcw.getSelectedOptions();
                     Iterator iter = selected.iterator();
-                    while(iter.hasNext()){
+                    while(iter.hasNext()){    
                         ConfigOption configoption = (ConfigOption)iter.next();
                         if (configoption.isSelected()){
-                            XModel option = Journal.appendNode(model, "tr", "", "");
+                            XModel option = Journal.appendNode(model, "tr", ""+cart.getItemIndex(item), "");
                             Journal.appendNode(option, "td", "sku", "");
                             Journal.appendNode(option, "td", "desc", configoption.getDescription());
                             Journal.appendNode(option, "td", "qty", "");
@@ -895,7 +895,7 @@
                   
                 if (adjustment != 0) {
                     // append the promo info
-                    XModel promo = Journal.appendNode(model, "tr", "", "");
+                    XModel promo = Journal.appendNode(model, "tr", "itemadjustment", "");
                     Journal.appendNode(promo, "td", "sku", "");
                     Journal.appendNode(promo, "td", "desc", UtilProperties.getMessage("pos","(ItemDiscount)",defaultLocale));
                     Journal.appendNode(promo, "td", "qty", "");
@@ -915,28 +915,31 @@
                 Iterator iter = adjustments.iterator();
                 while(iter.hasNext()){
                     GenericValue orderAdjustment = (GenericValue) iter.next();
-                    XModel adjustmentLine = Journal.appendNode(model, "tr", "", "");
+                    XModel adjustmentLine = Journal.appendNode(model, "tr", "adjustment", "");
                     Journal.appendNode(adjustmentLine, "td", "sku", "");
                     Journal.appendNode(adjustmentLine, "td", "desc",
                             UtilProperties.getMessage("pos", "(SalesDiscount)",defaultLocale));
                     Journal.appendNode(adjustmentLine, "td", "qty", "");
                     Journal.appendNode(adjustmentLine, "td", "price",
                             UtilFormatOut.formatPrice(orderAdjustment.getDouble("amount")));
+                    Journal.appendNode(adjustmentLine, "td", "index", "-1");
                 }    
             }
 
-            XModel taxLine = Journal.appendNode(model, "tr", "", "");
+            XModel taxLine = Journal.appendNode(model, "tr", "tax", "");
             Journal.appendNode(taxLine, "td", "sku", "");
 
             Journal.appendNode(taxLine, "td", "desc", UtilProperties.getMessage("pos","Sales_Tax",defaultLocale));
             Journal.appendNode(taxLine, "td", "qty", "");
             Journal.appendNode(taxLine, "td", "price", UtilFormatOut.formatPrice(taxAmount));
-
-            XModel totalLine = Journal.appendNode(model, "tr", "", "");
+            Journal.appendNode(taxLine, "td", "index", "-1");
+            
+            XModel totalLine = Journal.appendNode(model, "tr", "total", "");
             Journal.appendNode(totalLine, "td", "sku", "");
             Journal.appendNode(totalLine, "td", "desc", UtilProperties.getMessage("pos","Grand_Total",defaultLocale));
             Journal.appendNode(totalLine, "td", "qty", "");
             Journal.appendNode(totalLine, "td", "price", UtilFormatOut.formatPrice(total));
+            Journal.appendNode(totalLine, "td", "index", "-1");
         }
     }
 

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/Journal.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/Journal.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/Journal.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/Journal.java Fri Jan 25 08:45:21 2008
@@ -18,23 +18,31 @@
  *******************************************************************************/
 package org.ofbiz.pos.component;
 
+import java.io.StringWriter;
 import java.util.Locale;
 
+import javax.swing.ListSelectionModel;
+import javax.swing.ScrollPaneConstants;
+import net.xoetrope.data.XDataSource;
 import net.xoetrope.swing.XTable;
 import net.xoetrope.swing.XScrollPane;
+import net.xoetrope.xui.XProject;
+import net.xoetrope.xui.XProjectManager;
 import net.xoetrope.xui.data.XModel;
 
 import org.ofbiz.pos.PosTransaction;
 import org.ofbiz.pos.screen.PosScreen;
 import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.Debug;
 
 public class Journal {
 
     public static final String module = Journal.class.getName();
-
-    private static String[] field = { "sku", "desc", "qty", "price", "index" };
-    private static String[] name = { "SKU", "ITEM", "QTY", "AMT", "" };
-    private static int[] width = { 100, 170, 60, 80, 0};
+    protected XProject currentProject = (XProject)XProjectManager.getCurrentProject();
+    
+    private static String[] field = { "sku", "desc", "qty", "price" };
+    private static String[] name = { "SKU", "ITEM", "QTY", "AMT" };
+    private static int[] width = { 100, 170, 50, 90};
     private Locale defaultLocale = Locale.getDefault();
 
     protected XScrollPane jpanel = null;
@@ -45,12 +53,17 @@
         //The vertical bar is always visible to allow access to horizontal bar without shrink the journal panel
         this.jpanel = (XScrollPane) page.findComponent("journal_panel");
         this.jpanel.setVisible(false);
+        this.jpanel.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+        this.jpanel.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
         
         this.jtable = (XTable) page.findComponent("jtable");
-                        
+
         // set the table as selectable        
         jtable.setInteractiveTable(true);
         jtable.setFocusable(false);
+        jtable.setDragEnabled(false);
+        jtable.setColumnSelectionAllowed(false);
+        jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 
         // set the styles
         jtable.setBorderStyle("journalBorder");
@@ -65,6 +78,7 @@
             jtable.setModel(jmodel);
 
             for (int i = 0; i < width.length; i++) {
+                //causes infinite loop
                 jtable.setColWidth(i, width[i]);
             }
         }
@@ -72,15 +86,15 @@
     }
 
     public String getSelectedSku() {
-        XModel jmodel = (XModel) XModel.getInstance().get("journal/items");        
+        XModel jmodel = jtable.getXModel();
         XModel model = jmodel.get(jtable.getSelectedRow() + 1);
         return model.getValueAsString("sku");
     }
 
     public String getSelectedIdx() {
-        XModel jmodel = (XModel) XModel.getInstance().get("journal/items");
+        XModel jmodel = jtable.getXModel();
         XModel model = jmodel.get(jtable.getSelectedRow() + 1);
-        return model.getValueAsString("index");
+        return model.getId();
     }
 
     public void selectNext() {
@@ -102,12 +116,13 @@
         jtable.setFocusable(!lock);
         jtable.setVisible(!lock);
         jtable.setEnabled(!lock);
+        this.jpanel.setVisible(!lock);
         if (!lock) {
             this.jpanel.setVisible(true);
         }
     }
 
-    public void refresh(PosScreen pos) {
+    public synchronized void refresh(PosScreen pos) {
         if (!jtable.isEnabled()) {
             // no point in refreshing when we are locked;
             // we will auto-refresh when unlocked
@@ -133,27 +148,26 @@
 
         // make sure we are at the last item in the journal
         jtable.setSelectedRow(0);
-
+        
         try {
-            jtable.repaint();
+            jtable.update();
         } catch (ArrayIndexOutOfBoundsException e) {
-            // bug in XUI causes this; ignore for now
-            // it has been reported and will be fixed soon
+            Debug.logError(e, "Unable to repaint the Journal", module);
         }
+        //Debug.logInfo(getModelText(jmodel), module);
     }
 
     private XModel createModel() {
-        XModel jmodel = (XModel) XModel.getInstance().get("journal/items");
-
+        XModel jmodel = (XModel)currentProject.getModel().get("table/items");
         // clear the list
         jmodel.clear();
-
+      
         if (field.length == 0) {
             return null;
         }
-
+        jmodel.setTagName("table");
         // create the header
-        XModel headerNode = appendNode(jmodel, "th", "", "");
+        XModel headerNode = appendNode(jmodel, "th", "header", "");
         for (int i = 0 ; i < field.length; i++) {
             appendNode(headerNode, "td", field[i],UtilProperties.getMessage("pos",name[i],defaultLocale));
         }
@@ -162,7 +176,7 @@
     }
 
     private void appendEmpty(XModel jmodel) {
-        XModel headerNode = appendNode(jmodel, "tr", "", "");
+        XModel headerNode = appendNode(jmodel, "tr", "emptyrow", "");
         for (int i = 0 ; i < field.length; i++) {
             appendNode(headerNode, "td", field[i], "");
         }
@@ -173,7 +187,14 @@
         newNode.setTagName(tag);
         if (value != null) {
             newNode.set(value);
-        }
+        }        
         return newNode;
     }
-}
+    
+    private String getModelText(XModel model)
+    {
+        StringWriter sw = new StringWriter();
+        XDataSource.outputModel( sw, model );
+        return "<Datasets>" + sw.toString() + "</Datasets>";
+    }
+}
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/PosButton.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/PosButton.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/PosButton.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/component/PosButton.java Fri Jan 25 08:45:21 2008
@@ -27,7 +27,8 @@
 
 import net.xoetrope.swing.XButton;
 import net.xoetrope.xui.helper.SwingWorker;
-
+import net.xoetrope.xui.events.XEventHelper;
+        
 import org.ofbiz.base.config.GenericConfigException;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilValidate;
@@ -62,7 +63,7 @@
                 if (UtilValidate.isEmpty(buttonName)) {
                     wrapper.setEnabled(false);
                 } else {
-                    pos.addActionHandler(button, PosScreen.BUTTON_ACTION_METHOD);
+                    XEventHelper.addActionHandler(pos, button, PosScreen.BUTTON_ACTION_METHOD);
                     loadedXButtons.put(button.getName(), wrapper);
                 }
             }

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java Fri Jan 25 08:45:21 2008
@@ -35,6 +35,7 @@
 import net.xoetrope.swing.XList;
 import net.xoetrope.swing.XScrollPane;
 import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.events.XEventHelper;
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilProperties;
@@ -81,7 +82,6 @@
         // cache must be set to false because there's no method to remove actionhandlers
         m_dialog = (XDialog) pageMgr.loadPage(
                 m_pos.getScreenLocation() + "/dialog/ConfigureItem", false);
-        //TODO: change caption
         m_dialog.setCaption(UtilProperties.getMessage("pos", "ConfigureItem", Locale.getDefault()));
 
         m_optionListPane = (XScrollPane) m_dialog.findComponent("optionListPane");
@@ -90,8 +90,8 @@
         m_ok = (XButton) m_dialog.findComponent("BtnOk");
         m_reset = (XButton) m_dialog.findComponent("BtnReset");
 
-        addMouseHandler(m_ok, "ok");
-        addMouseHandler(m_reset, "reset");
+        XEventHelper.addMouseHandler(this, m_ok, "ok");
+        XEventHelper.addMouseHandler(this, m_reset, "reset");
 
         getButtons();
         //debugQuestions();
@@ -119,13 +119,15 @@
     }
 
     public synchronized void buttonPressed() {
-        EventObject eo = getCurrentEvent();
-        XButton button = (XButton) eo.getSource();
-        Question question = (Question)questionHashMap.get(button.getName());
-        question.buttonClicked();
-        showItem();
-        m_dialog.repaint();
-        return;
+        if (wasMouseClicked()) {
+            EventObject eo = getCurrentEvent();
+            XButton button = (XButton) eo.getSource();
+            Question question = (Question)questionHashMap.get(button.getName());
+            question.buttonClicked();
+            showItem();
+            m_dialog.repaint();
+            return;
+        }
     }
 
     public synchronized void listPressed() {
@@ -193,7 +195,7 @@
                 if(buttonQuestion instanceof ListQuestion){
                     ((ListQuestion)buttonQuestion).setupListPane(m_optionListPane);
                 }
-                addActionHandler(button, "buttonPressed");
+                XEventHelper.addMouseHandler(this, button, "buttonPressed");
             }
         }
         return;

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/LoadSale.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/LoadSale.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/LoadSale.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/LoadSale.java Fri Jan 25 08:45:21 2008
@@ -1,244 +1,245 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *******************************************************************************/
-package org.ofbiz.pos.screen;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.swing.DefaultListModel;
-import javax.swing.ListSelectionModel;
-
-import net.xoetrope.swing.XButton;
-import net.xoetrope.swing.XDialog;
-import net.xoetrope.swing.XList;
-import net.xoetrope.xui.XPage;
-
-import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.UtilProperties;
-import org.ofbiz.pos.PosTransaction;
-
-
-public class LoadSale extends XPage {
-
-    /**
-     * To load a sale from a shopping list. 2 modes : add to or replace the current sale. Also a button to delete a sale (aka shopping list)
-     */
-    public static final String module = LoadSale.class.getName();
-    protected static PosScreen m_pos = null;
-    protected XDialog m_dialog = null;
-    static protected Hashtable m_saleMap = new Hashtable();
-    protected XList m_salesList = null;
-    protected XButton m_cancel = null;
-    protected XButton m_add = null;
-    protected XButton m_replace = null;
-    protected XButton m_delete = null;
-    protected XButton m_replaceAndDelete = null;
-    protected DefaultListModel m_listModel = null;
-    protected static PosTransaction m_trans = null;
-
-    //TODO : make getter and setter for members (ie m_*) if needed (extern calls). For that in Eclipse use Source/Generate Getters and setters
-
-    public LoadSale(Hashtable saleMap, PosTransaction trans, PosScreen page) {
-        m_saleMap.putAll(saleMap);
-        m_trans = trans;
-        m_pos = page;
-    }
-
-    public void openDlg() {
-        m_dialog = (XDialog) pageMgr.loadPage(m_pos.getScreenLocation() + "/dialog/loadsale");
-        m_dialog.setCaption(UtilProperties.getMessage("pos", "LoadASale", Locale.getDefault()));
-        m_salesList = (XList) m_dialog.findComponent("salesList");
-        addMouseHandler(m_salesList, "saleDoubleClick");
-
-        m_cancel = (XButton) m_dialog.findComponent("BtnCancel");
-        m_add = (XButton) m_dialog.findComponent("BtnAdd");
-        m_replace = (XButton) m_dialog.findComponent("BtnReplace");
-        m_delete = (XButton) m_dialog.findComponent("BtnDelete");
-        m_replaceAndDelete = (XButton) m_dialog.findComponent("BtnReplaceAndDelete");
-        addMouseHandler(m_cancel, "cancel");
-        addMouseHandler(m_add, "addSale");
-        addMouseHandler(m_replace, "replaceSale");
-        addMouseHandler(m_delete, "deleteShoppingList");
-        addMouseHandler(m_replaceAndDelete, "replaceSaleAndDeleteShoppingList");
-
-        m_listModel = new DefaultListModel();
-        for (Iterator i = m_saleMap.entrySet().iterator(); i.hasNext();) {
-            Object o = i.next();
-            Map.Entry entry = (Map.Entry)o;
-            String val = entry.getValue().toString();
-            m_listModel.addElement(val);
-        }
-        m_salesList.setModel(m_listModel);
-        m_salesList.setVisibleRowCount(-1);
-        m_salesList.ensureIndexIsVisible(m_salesList.getItemCount());    
-        m_salesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-        m_salesList.setToolTipText(UtilProperties.getMessage("pos", "LoadSaleListDblClickTip", Locale.getDefault()));
-
-        m_dialog.pack();
-        m_salesList.requestFocusInWindow();
-        m_dialog.showDialog(this);
-    }
-
-    public synchronized void saleDoubleClick() {
-        if (wasMouseDoubleClicked()) {
-            String sale = selectedSale();
-            if (null != sale) {
-                replaceSaleAndDeleteShoppingList_();
-            }
-        }
-    }
-
-    public synchronized void cancel() {
-        if (wasMouseClicked()) {
-            closeDlg();
-        }
-    }
-
-    public synchronized void addSale() {
-        if (wasMouseClicked()) {
-            addSale_();
-        }
-    }
-
-    private synchronized void addSale_() {
-        String sale = selectedSale();
-        if (null != sale) {
-            addListToCart(sale, true);
-        }
-    }
-
-    public synchronized void replaceSale() {
-        if (wasMouseClicked()) {
-            replaceSale_();
-        }
-    }
-
-    private synchronized void replaceSale_() {
-        String sale = selectedSale();
-        if (null != sale) {
-            addListToCart(sale, false);
-        }
-    }
-
-    public synchronized void deleteShoppingList() {
-        if (wasMouseClicked()) {
-            deleteShoppingList_();
-        }
-    }
-
-    private synchronized void deleteShoppingList_() {
-        String sale= (String) m_salesList.getSelectedValue();
-        if (null != sale) {
-            String shoppingListId = selectedSale();
-            final ClassLoader cl = this.getClassLoader(m_pos);
-            Thread.currentThread().setContextClassLoader(cl);
-            if (m_trans.clearList(shoppingListId, m_pos)) {
-                int index = m_salesList.getSelectedIndex();
-                m_saleMap.remove(shoppingListId);
-                m_listModel = new DefaultListModel();
-                for (Iterator i = m_saleMap.entrySet().iterator(); i.hasNext();) {
-                    Object o = i.next();
-                    Map.Entry entry = (Map.Entry)o;
-                    String val = entry.getValue().toString();
-                    m_listModel.addElement(val);
-                }
-                m_salesList.setModel(m_listModel);
-                int size = m_listModel.getSize();
-                if (size == 0) { //Nobody's left, nothing to do here
-                    closeDlg();
-                } else { //Select an index.
-                    if (index == size) {
-                        //removed item in last position
-                        index--;
-                    }
-                }
-                m_salesList.setSelectedIndex(index);
-                m_salesList.ensureIndexIsVisible(index);
-                m_salesList.repaint();
-                repaint();
-            }
-        }
-    }
-
-    public synchronized void replaceSaleAndDeleteShoppingList() {
-        if (wasMouseClicked()) {
-            replaceSaleAndDeleteShoppingList_();
-        }
-    }
-
-    public synchronized void replaceSaleAndDeleteShoppingList_() {
-        replaceSale_();
-        deleteShoppingList_();
-    }
-
-    private String selectedSale() {
-        String saleSelected = null;
-        if (null != m_salesList.getSelectedValue()) {
-            String sale = (String) m_salesList.getSelectedValue();
-            Iterator i = m_saleMap.entrySet().iterator();
-            while(i.hasNext()) {
-                Object o = i.next();
-                Map.Entry entry = (Map.Entry)o;
-                String val = entry.getValue().toString();
-                if (val.equals(sale)) {
-                    saleSelected = entry.getKey().toString();
-                }
-            }
-        }
-        return saleSelected;
-    }
-
-    private void addListToCart(String sale, boolean addToCart) {
-        final ClassLoader cl = this.getClassLoader(m_pos);
-        Thread.currentThread().setContextClassLoader(cl);
-        if (!m_trans.addListToCart(sale, m_pos, addToCart)) {
-            Debug.logError("Error while loading cart from shopping list : " + sale, module);
-        }
-        else {
-            m_trans.calcTax();
-            m_pos.refresh();
-        }  
-        closeDlg();
-    }
-
-    private ClassLoader getClassLoader(PosScreen pos) {
-        ClassLoader cl = pos.getClassLoader();
-        if (cl == null) {
-            try {
-                cl = Thread.currentThread().getContextClassLoader();
-            } catch (Throwable t) {
-            }
-            if (cl == null) {
-                Debug.log("No context classloader available; using class classloader", module);
-                try {
-                    cl = this.getClass().getClassLoader();
-                } catch (Throwable t) {
-                    Debug.logError(t, module);
-                }
-            }
-        }
-        return cl;
-    }    
-
-    private void closeDlg() {
-        m_dialog.closeDlg();
-    }
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.ofbiz.pos.screen;
+
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.swing.DefaultListModel;
+import javax.swing.ListSelectionModel;
+
+import net.xoetrope.swing.XButton;
+import net.xoetrope.swing.XDialog;
+import net.xoetrope.swing.XList;
+import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.events.XEventHelper;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.pos.PosTransaction;
+
+
+public class LoadSale extends XPage {
+
+    /**
+     * To load a sale from a shopping list. 2 modes : add to or replace the current sale. Also a button to delete a sale (aka shopping list)
+     */
+    public static final String module = LoadSale.class.getName();
+    protected static PosScreen m_pos = null;
+    protected XDialog m_dialog = null;
+    static protected Hashtable m_saleMap = new Hashtable();
+    protected XList m_salesList = null;
+    protected XButton m_cancel = null;
+    protected XButton m_add = null;
+    protected XButton m_replace = null;
+    protected XButton m_delete = null;
+    protected XButton m_replaceAndDelete = null;
+    protected DefaultListModel m_listModel = null;
+    protected static PosTransaction m_trans = null;
+
+    //TODO : make getter and setter for members (ie m_*) if needed (extern calls). For that in Eclipse use Source/Generate Getters and setters
+
+    public LoadSale(Hashtable saleMap, PosTransaction trans, PosScreen page) {
+        m_saleMap.putAll(saleMap);
+        m_trans = trans;
+        m_pos = page;
+    }
+
+    public void openDlg() {
+        m_dialog = (XDialog) pageMgr.loadPage(m_pos.getScreenLocation() + "/dialog/loadsale");
+        m_dialog.setCaption(UtilProperties.getMessage("pos", "LoadASale", Locale.getDefault()));
+        m_salesList = (XList) m_dialog.findComponent("salesList");
+        XEventHelper.addMouseHandler(this, m_salesList, "saleDoubleClick");
+
+        m_cancel = (XButton) m_dialog.findComponent("BtnCancel");
+        m_add = (XButton) m_dialog.findComponent("BtnAdd");
+        m_replace = (XButton) m_dialog.findComponent("BtnReplace");
+        m_delete = (XButton) m_dialog.findComponent("BtnDelete");
+        m_replaceAndDelete = (XButton) m_dialog.findComponent("BtnReplaceAndDelete");
+        XEventHelper.addMouseHandler(this, m_cancel, "cancel");
+        XEventHelper.addMouseHandler(this, m_replace, "replaceSale");
+        XEventHelper.addMouseHandler(this, m_add, "addSale");
+        XEventHelper.addMouseHandler(this, m_delete, "deleteShoppingList");
+        XEventHelper.addMouseHandler(this, m_replaceAndDelete, "replaceSaleAndDeleteShoppingList");
+
+        m_listModel = new DefaultListModel();
+        for (Iterator i = m_saleMap.entrySet().iterator(); i.hasNext();) {
+            Object o = i.next();
+            Map.Entry entry = (Map.Entry)o;
+            String val = entry.getValue().toString();
+            m_listModel.addElement(val);
+        }
+        m_salesList.setModel(m_listModel);
+        m_salesList.setVisibleRowCount(-1);
+        m_salesList.ensureIndexIsVisible(m_salesList.getItemCount());    
+        m_salesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+        m_salesList.setToolTipText(UtilProperties.getMessage("pos", "LoadSaleListDblClickTip", Locale.getDefault()));
+
+        m_dialog.pack();
+        m_salesList.requestFocusInWindow();
+        m_dialog.showDialog(this);
+    }
+
+    public synchronized void saleDoubleClick() {
+        if (wasMouseDoubleClicked()) {
+            String sale = selectedSale();
+            if (null != sale) {
+                replaceSaleAndDeleteShoppingList_();
+            }
+        }
+    }
+
+    public synchronized void cancel() {
+        if (wasMouseClicked()) {
+            closeDlg();
+        }
+    }
+
+    public synchronized void addSale() {
+        if (wasMouseClicked()) {
+            addSale_();
+        }
+    }
+
+    private synchronized void addSale_() {
+        String sale = selectedSale();
+        if (null != sale) {
+            addListToCart(sale, true);
+        }
+    }
+
+    public synchronized void replaceSale() {
+        if (wasMouseClicked()) {
+            replaceSale_();
+        }
+    }
+
+    private synchronized void replaceSale_() {
+        String sale = selectedSale();
+        if (null != sale) {
+            addListToCart(sale, false);
+        }
+    }
+
+    public synchronized void deleteShoppingList() {
+        if (wasMouseClicked()) {
+            deleteShoppingList_();
+        }
+    }
+
+    private synchronized void deleteShoppingList_() {
+        String sale= (String) m_salesList.getSelectedValue();
+        if (null != sale) {
+            String shoppingListId = selectedSale();
+            final ClassLoader cl = this.getClassLoader(m_pos);
+            Thread.currentThread().setContextClassLoader(cl);
+            if (m_trans.clearList(shoppingListId, m_pos)) {
+                int index = m_salesList.getSelectedIndex();
+                m_saleMap.remove(shoppingListId);
+                m_listModel = new DefaultListModel();
+                for (Iterator i = m_saleMap.entrySet().iterator(); i.hasNext();) {
+                    Object o = i.next();
+                    Map.Entry entry = (Map.Entry)o;
+                    String val = entry.getValue().toString();
+                    m_listModel.addElement(val);
+                }
+                m_salesList.setModel(m_listModel);
+                int size = m_listModel.getSize();
+                if (size == 0) { //Nobody's left, nothing to do here
+                    closeDlg();
+                } else { //Select an index.
+                    if (index == size) {
+                        //removed item in last position
+                        index--;
+                    }
+                }
+                m_salesList.setSelectedIndex(index);
+                m_salesList.ensureIndexIsVisible(index);
+                m_salesList.repaint();
+                repaint();
+            }
+        }
+    }
+
+    public synchronized void replaceSaleAndDeleteShoppingList() {
+        if (wasMouseClicked()) {
+            replaceSaleAndDeleteShoppingList_();
+        }
+    }
+
+    public synchronized void replaceSaleAndDeleteShoppingList_() {
+        replaceSale_();
+        deleteShoppingList_();
+    }
+
+    private String selectedSale() {
+        String saleSelected = null;
+        if (null != m_salesList.getSelectedValue()) {
+            String sale = (String) m_salesList.getSelectedValue();
+            Iterator i = m_saleMap.entrySet().iterator();
+            while(i.hasNext()) {
+                Object o = i.next();
+                Map.Entry entry = (Map.Entry)o;
+                String val = entry.getValue().toString();
+                if (val.equals(sale)) {
+                    saleSelected = entry.getKey().toString();
+                }
+            }
+        }
+        return saleSelected;
+    }
+
+    private void addListToCart(String sale, boolean addToCart) {
+        final ClassLoader cl = this.getClassLoader(m_pos);
+        Thread.currentThread().setContextClassLoader(cl);
+        if (!m_trans.addListToCart(sale, m_pos, addToCart)) {
+            Debug.logError("Error while loading cart from shopping list : " + sale, module);
+        }
+        else {
+            m_trans.calcTax();
+            m_pos.refresh();
+        }  
+        closeDlg();
+    }
+
+    private ClassLoader getClassLoader(PosScreen pos) {
+        ClassLoader cl = pos.getClassLoader();
+        if (cl == null) {
+            try {
+                cl = Thread.currentThread().getContextClassLoader();
+            } catch (Throwable t) {
+            }
+            if (cl == null) {
+                Debug.log("No context classloader available; using class classloader", module);
+                try {
+                    cl = this.getClass().getClassLoader();
+                } catch (Throwable t) {
+                    Debug.logError(t, module);
+                }
+            }
+        }
+        return cl;
+    }    
+
+    private void closeDlg() {
+        m_dialog.closeDlg();
+    }
 }

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PaidInOut.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PaidInOut.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PaidInOut.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PaidInOut.java Fri Jan 25 08:45:21 2008
@@ -33,6 +33,7 @@
 import net.xoetrope.swing.XLabel;
 import net.xoetrope.swing.XComboBox;
 import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.events.XEventHelper;
 
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilProperties;
@@ -76,8 +77,9 @@
         m_ok = (XButton) m_dialog.findComponent("BtnOk");
         m_amoutLabel = (XLabel) m_dialog.findComponent("amoutLabel");        
         m_reasonLabel = (XLabel) m_dialog.findComponent("reasonLabel");
-        addMouseHandler(m_cancel, "cancel");
-        addMouseHandler(m_ok, "verify");
+        
+        XEventHelper.addMouseHandler(this, m_cancel, "cancel");
+        XEventHelper.addMouseHandler(this, m_ok, "verify");
 
         m_comboModel = new DefaultComboBoxModel();
         ResourceBundle reasons = null;

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PosScreen.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PosScreen.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PosScreen.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/PosScreen.java Fri Jan 25 08:45:21 2008
@@ -29,6 +29,7 @@
 
 import net.xoetrope.builder.NavigationHelper;
 import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.XProject;
 import net.xoetrope.xui.XProjectManager;
 
 import org.ofbiz.base.splash.SplashLoader;
@@ -55,6 +56,7 @@
     public static final long MAX_INACTIVITY = 1800000;
     public static PosScreen currentScreen;
 
+    protected XProject currentProject = (XProject)XProjectManager.getCurrentProject();
     protected static boolean monitorRunning = false;
     protected static boolean firstInit = false;
     protected static long lastActivity = 0;
@@ -98,9 +100,10 @@
             firstInit = true;          
             
             // pre-load a few screens
-            XProjectManager.getPageManager().loadPage(this.getScreenLocation() + "/paypanel");
-            XProjectManager.getPageManager().loadPage(this.getScreenLocation() + "/mgrpanel");
-            XProjectManager.getPageManager().loadPage(this.getScreenLocation() + "/promopanel");
+        
+            currentProject.getPageManager().loadPage(this.getScreenLocation() + "/paypanel");            
+            currentProject.getPageManager().loadPage(this.getScreenLocation() + "/mgrpanel");
+            currentProject.getPageManager().loadPage(this.getScreenLocation() + "/promopanel");
 
             // start the shared monitor thread
             if (activityMonitor == null) {
@@ -300,7 +303,7 @@
         if (pageName.startsWith("/")) {
             pageName = pageName.substring(1);
         }
-        XPage newPage = (XPage)XProjectManager.getPageManager().showPage(this.getScreenLocation() + "/" + pageName);        
+        XPage newPage = (XPage)currentProject.getPageManager().showPage(this.getScreenLocation() + "/" + pageName);        
         if (newPage instanceof PosScreen) {
             if (refresh) ((PosScreen) newPage).refresh();
             return (PosScreen) newPage;
@@ -336,7 +339,7 @@
         if (pageName.startsWith("/")) {
             pageName = pageName.substring(1);
         }
-        XPage dialogPage = (XPage)XProjectManager.getPageManager().loadPage(this.getScreenLocation() + "/" + pageName);        
+        XPage dialogPage = (XPage)currentProject.getPageManager().loadPage(this.getScreenLocation() + "/" + pageName);        
         PosDialog dialog = PosDialog.getInstance(dialogPage, true, 0);
         dialog.showDialog(this, cb, text);
         return dialog;
@@ -383,7 +386,7 @@
                 if (this.scrLocation == null) {
                     String xuiProps = this.getSession().getContainer().getXuiPropertiesName();
                     String startClass = UtilProperties.getPropertyValue(xuiProps, "StartClass", "default/pospanel");
-                    this.scrLocation = startClass.substring(0, startClass.indexOf("/"));
+                    this.scrLocation = startClass.substring(0, startClass.lastIndexOf("/"));
                 }
             }
         }

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SaveSale.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SaveSale.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SaveSale.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SaveSale.java Fri Jan 25 08:45:21 2008
@@ -1,129 +1,131 @@
-/*******************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *******************************************************************************/
-package org.ofbiz.pos.screen;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-
-import net.xoetrope.swing.XButton;
-//import org.ofbiz.pos.screen.XFocusDialog;
-import net.xoetrope.swing.XEdit;
-import net.xoetrope.swing.XDialog;
-import net.xoetrope.xui.XPage;
-
-import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.UtilProperties;
-import org.ofbiz.pos.PosTransaction;
-
-
-public class SaveSale extends XPage {
-
-    /**
-     * To save a sale. 2 modes : save and keep the current sale or save and clear the current sale.  
-     */
-    public static final String module = SaveSale.class.getName();
-    protected static PosScreen m_pos = null;
-    protected XDialog m_dialog = null;
-    protected XEdit m_saleName = null;
-    protected XButton m_cancel = null;
-    protected XButton m_save = null;
-    protected XButton m_saveAndClear = null;
-    protected static PosTransaction m_trans = null;
-    public static SimpleDateFormat sdf = new SimpleDateFormat(UtilProperties.getMessage("pos","DateTimeFormat",Locale.getDefault()));
-
-    //TODO : make getter and setter for members (ie m_*) if needed (extern calls).  For that in Eclipse use Source/Generate Getters and setters
-
-    public SaveSale(PosTransaction trans, PosScreen page) {
-        m_trans = trans;
-        m_pos = page;
-    }
-
-    public void openDlg() {
-        m_dialog = (XDialog) pageMgr.loadPage(m_pos.getScreenLocation() + "/dialog/savesale");
-        m_saleName = (XEdit) m_dialog.findComponent("saleName");        
-        //m_dialog.setM_focused(m_saleName);
-        m_saleName.setText(m_pos.session.getUserId() + " " + sdf.format(new Date()));
-        m_dialog.setCaption(UtilProperties.getMessage("pos", "SaveASale", Locale.getDefault()));
-
-        m_cancel = (XButton) m_dialog.findComponent("BtnCancel");
-        m_save = (XButton) m_dialog.findComponent("BtnSave");
-        m_saveAndClear = (XButton) m_dialog.findComponent("BtnSaveAndClear");
-
-        addMouseHandler(m_cancel, "cancel");
-        addMouseHandler(m_save, "save");
-        addMouseHandler(m_saveAndClear, "saveAndClear");
-
-        m_dialog.pack();
-        m_dialog.showDialog(this);
-    }
-
-    public synchronized void cancel()
-    {
-        if (wasMouseClicked()) {
-            this.m_dialog.closeDlg();
-        }
-    }
-
-    public synchronized void save() {
-        if (wasMouseClicked()) {
-            String sale = m_saleName.getText();
-            if (null != sale) {
-                saveSale(sale);
-            }
-        }
-    }
-
-    public synchronized void saveAndClear() {
-        if (wasMouseClicked()) {
-            String sale = m_saleName.getText();
-            if (null != sale) {
-                saveSale(sale);
-                m_trans.voidSale();
-                m_pos.refresh();
-            }
-        }
-    }
-
-    private void saveSale(String sale) {
-        final ClassLoader cl = this.getClassLoader(m_pos);
-        Thread.currentThread().setContextClassLoader(cl);
-        m_trans.saveSale(sale, m_pos);
-        this.m_dialog.closeDlg();
-    }
-
-    private ClassLoader getClassLoader(PosScreen pos) {
-        ClassLoader cl = pos.getClassLoader();
-        if (cl == null) {
-            try {
-                cl = Thread.currentThread().getContextClassLoader();
-            } catch (Throwable t) {
-            }
-            if (cl == null) {
-                Debug.log("No context classloader available; using class classloader", module);
-                try {
-                    cl = this.getClass().getClassLoader();
-                } catch (Throwable t) {
-                    Debug.logError(t, module);
-                }
-            }
-        }
-        return cl;
-    }    
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.ofbiz.pos.screen;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import net.xoetrope.swing.XButton;
+//import org.ofbiz.pos.screen.XFocusDialog;
+import net.xoetrope.swing.XEdit;
+import net.xoetrope.swing.XDialog;
+import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.events.XEventHelper;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.pos.PosTransaction;
+
+
+public class SaveSale extends XPage {
+
+    /**
+     * To save a sale. 2 modes : save and keep the current sale or save and clear the current sale.  
+     */
+    public static final String module = SaveSale.class.getName();
+    protected static PosScreen m_pos = null;
+    protected XDialog m_dialog = null;
+    protected XEdit m_saleName = null;
+    protected XButton m_cancel = null;
+    protected XButton m_save = null;
+    protected XButton m_saveAndClear = null;
+    protected static PosTransaction m_trans = null;
+    public static SimpleDateFormat sdf = new SimpleDateFormat(UtilProperties.getMessage("pos","DateTimeFormat",Locale.getDefault()));
+
+    //TODO : make getter and setter for members (ie m_*) if needed (extern calls).  For that in Eclipse use Source/Generate Getters and setters
+
+    public SaveSale(PosTransaction trans, PosScreen page) {
+        m_trans = trans;
+        m_pos = page;
+    }
+
+    public void openDlg() {
+        m_dialog = (XDialog) pageMgr.loadPage(m_pos.getScreenLocation() + "/dialog/savesale");
+        m_saleName = (XEdit) m_dialog.findComponent("saleName");        
+        //m_dialog.setM_focused(m_saleName);
+        m_saleName.setText(m_pos.session.getUserId() + " " + sdf.format(new Date()));
+        m_dialog.setCaption(UtilProperties.getMessage("pos", "SaveASale", Locale.getDefault()));
+
+        m_cancel = (XButton) m_dialog.findComponent("BtnCancel");
+        m_save = (XButton) m_dialog.findComponent("BtnSave");
+        m_saveAndClear = (XButton) m_dialog.findComponent("BtnSaveAndClear");
+
+        
+        XEventHelper.addMouseHandler(this, m_cancel, "cancel");
+        XEventHelper.addMouseHandler(this, m_save, "save");
+        XEventHelper.addMouseHandler(this, m_saveAndClear, "saveAndClear");
+
+        m_dialog.pack();
+        m_dialog.showDialog(this);
+    }
+
+    public synchronized void cancel()
+    {
+        if (wasMouseClicked()) {
+            this.m_dialog.closeDlg();
+        }
+    }
+
+    public synchronized void save() {
+        if (wasMouseClicked()) {
+            String sale = m_saleName.getText();
+            if (null != sale) {
+                saveSale(sale);
+            }
+        }
+    }
+
+    public synchronized void saveAndClear() {
+        if (wasMouseClicked()) {
+            String sale = m_saleName.getText();
+            if (null != sale) {
+                saveSale(sale);
+                m_trans.voidSale();
+                m_pos.refresh();
+            }
+        }
+    }
+
+    private void saveSale(String sale) {
+        final ClassLoader cl = this.getClassLoader(m_pos);
+        Thread.currentThread().setContextClassLoader(cl);
+        m_trans.saveSale(sale, m_pos);
+        this.m_dialog.closeDlg();
+    }
+
+    private ClassLoader getClassLoader(PosScreen pos) {
+        ClassLoader cl = pos.getClassLoader();
+        if (cl == null) {
+            try {
+                cl = Thread.currentThread().getContextClassLoader();
+            } catch (Throwable t) {
+            }
+            if (cl == null) {
+                Debug.log("No context classloader available; using class classloader", module);
+                try {
+                    cl = this.getClass().getClassLoader();
+                } catch (Throwable t) {
+                    Debug.logError(t, module);
+                }
+            }
+        }
+        return cl;
+    }    
 }

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SelectProduct.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SelectProduct.java?rev=615262&r1=615261&r2=615262&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SelectProduct.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/SelectProduct.java Fri Jan 25 08:45:21 2008
@@ -30,6 +30,7 @@
 import net.xoetrope.swing.XDialog;
 import net.xoetrope.swing.XList;
 import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.events.XEventHelper;
 
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.pos.PosTransaction;
@@ -65,12 +66,13 @@
         dlg.setCaption(UtilProperties.getMessage("pos", "SelectAProduct", Locale.getDefault()));
         //dlg.setModal(true);
         m_productsList = (XList) dlg.findComponent("productsList");
-        addMouseHandler(m_productsList, "DoubleClick");
+        XEventHelper.addMouseHandler(this, m_productsList, "DoubleClick");
 
         m_cancel = (XButton) dlg.findComponent("BtnCancel");
         m_select = (XButton) dlg.findComponent("BtnSelect");
-        addMouseHandler(m_cancel, "cancel");
-        addMouseHandler(m_select, "selectProduct");
+        
+        XEventHelper.addMouseHandler(this, m_cancel, "cancel");
+        XEventHelper.addMouseHandler(this, m_select, "selectProduct");
 
         m_listModel = new DefaultListModel();
         for (Iterator i = m_productsMap.entrySet().iterator(); i.hasNext();) {