svn commit: r616746 - /ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java

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

svn commit: r616746 - /ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java

mrisaliti
Author: mrisaliti
Date: Wed Jan 30 05:07:15 2008
New Revision: 616746

URL: http://svn.apache.org/viewvc?rev=616746&view=rev
Log:
Forgot to commit the new class NumericKeypad.java (Part of issue OFBIZ-1606)

Added:
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java   (with props)

Added: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java?rev=616746&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java (added)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java Wed Jan 30 05:07:15 2008
@@ -0,0 +1,282 @@
+package org.ofbiz.pos.screen;
+
+import net.xoetrope.swing.XButton;
+import net.xoetrope.swing.XDialog;
+import net.xoetrope.swing.XEdit;
+import net.xoetrope.xui.PageSupport;
+import net.xoetrope.xui.XPage;
+import net.xoetrope.xui.events.XEventHelper;
+
+public class NumericKeypad extends XPage
+{
+    public static final String module = NumericKeypad.class.getName();
+
+    XEdit m_edit = null;
+    XDialog m_dialog = null;
+    PosScreen m_pos = null;
+    PageSupport m_pageSupport = null;
+    
+    boolean m_minus = false;
+    boolean m_percent = false;
+
+    public NumericKeypad(PosScreen pos){
+        m_pos = pos;
+        return;
+    }
+            
+    public String openDlg() {
+
+            m_pageSupport = pageMgr.loadPage(
+                m_pos.getScreenLocation() + "/dialog/numeric");        
+        m_dialog = (XDialog)m_pageSupport;
+        
+        m_edit = (XEdit) m_pageSupport.findComponent("numeric_input");
+        m_edit.setText("");
+
+        setupEvents();
+        
+        m_dialog.pack();
+        m_dialog.showDialog(this);
+        
+        return m_edit.getText();
+    }
+    
+    //call before openDlg
+    public void setMinus(boolean minus){
+        m_minus = minus;
+    }
+    
+    public boolean getMinus(){
+        return m_minus;
+    }
+
+    //call before openDlg
+    public void setPercent(boolean percent){
+        m_percent = percent;
+    }
+    
+    public boolean getPercent(){
+        return m_percent;
+    }
+
+    private void disableButton(String button){
+        XButton xbutton = (XButton) m_dialog.findComponent(button);
+        xbutton.setVisible(false);
+    }
+
+    private void enableButton(String button){
+        XButton xbutton = (XButton) m_dialog.findComponent(button);
+        xbutton.setVisible(true);
+    }
+
+    private void setupEvents(){
+        XButton button = (XButton) m_dialog.findComponent("numOne");
+        XEventHelper.addMouseHandler(this, button, "triggerOne");
+        button = (XButton) m_dialog.findComponent("numTwo");
+        XEventHelper.addMouseHandler(this, button, "triggerTwo");
+        button = (XButton) m_dialog.findComponent("numThree");
+        XEventHelper.addMouseHandler(this, button, "triggerThree");
+        button = (XButton) m_dialog.findComponent("numFour");
+        XEventHelper.addMouseHandler(this, button, "triggerFour");
+        button = (XButton) m_dialog.findComponent("numFive");
+        XEventHelper.addMouseHandler(this, button, "triggerFive");
+        button = (XButton) m_dialog.findComponent("numSix");
+        XEventHelper.addMouseHandler(this, button, "triggerSix");
+        button = (XButton) m_dialog.findComponent("numSeven");
+        XEventHelper.addMouseHandler(this, button, "triggerSeven");
+        button = (XButton) m_dialog.findComponent("numEight");
+        XEventHelper.addMouseHandler(this, button, "triggerEight");
+        button = (XButton) m_dialog.findComponent("numNine");
+        XEventHelper.addMouseHandler(this, button, "triggerNine");
+        button = (XButton) m_dialog.findComponent("numZero");
+        XEventHelper.addMouseHandler(this, button, "triggerZero");
+        button = (XButton) m_dialog.findComponent("numDZero");
+        XEventHelper.addMouseHandler(this, button, "triggerDoubleZero");
+        button = (XButton) m_dialog.findComponent("menuClear");
+        XEventHelper.addMouseHandler(this, button, "triggerClear");
+        button = (XButton) m_dialog.findComponent("menuEnter");
+        XEventHelper.addMouseHandler(this, button, "triggerEnter");
+        
+        if(getMinus()){
+            button = (XButton) m_dialog.findComponent("numMinus");
+            XEventHelper.addMouseHandler(this, button, "triggerMinus");
+        }else{
+            disableButton("numMinus");
+        }
+        if(getPercent()){
+            button = (XButton) m_dialog.findComponent("numPercent");
+            XEventHelper.addMouseHandler(this, button, "triggerMinus");            
+        }else{
+            disableButton("numPercent");
+        }
+
+        return;
+    }
+    
+    public void triggerOne()
+    {
+        append('1');
+    }
+
+    public void triggerTwo()
+    {
+        append('2');
+    }
+
+    public void triggerThree()
+    {
+        append('3');
+    }
+
+    public void triggerFour()
+    {
+        append('4');
+    }
+
+    public void triggerFive()
+    {
+        append('5');
+    }
+
+    public void triggerSix()
+    {
+        append('6');
+    }
+
+    public void triggerSeven()
+    {
+        append('7');
+    }
+
+    public void triggerEight()
+    {
+        append('8');
+    }
+
+    public void triggerNine()
+    {
+        append('9');
+    }
+
+    public void triggerZero()
+    {
+        append('0');
+    }
+
+    public void triggerDoubleZero()
+    {
+        append("00");
+    }
+
+    public void triggerClear()
+    {
+        clear();
+    }
+
+    public void triggerEnter()
+    {
+        close();
+    }
+
+    public void triggerMinus()
+    {
+        prependUnique('-');
+    }
+
+    public void triggerPercent()
+    {
+        prependUnique('%');
+    }
+    
+    private synchronized void prependUnique(char c){
+        if(wasMouseClicked()){
+            String text = "";
+            try{
+                text = m_edit.getText();            
+            }catch (NullPointerException e){
+                // getText throws exception if no text
+                text = "";
+            }finally{
+                text=c+text;
+            }
+            if(countChars(text, c) > 1){
+                text = stripChars(text, c);
+            }
+            m_edit.setText(text);
+
+            m_dialog.repaint();
+            return;
+        }        
+    }
+
+    private int countChars(String string, char c){
+        int count = 0;
+        for(int i=0; i<string.length(); i++){
+            if (string.charAt(i) == c){
+                count++;
+            }
+        }
+        return count;
+    }
+
+    private String stripChars(String string, char c){
+        StringBuffer buf = new StringBuffer();
+        for(int i=0; i<string.length(); i++){
+            char current = string.charAt(i);
+            if (current != c){
+                buf.append(current);
+            }
+        }
+        return buf.toString();
+    }
+    
+    private synchronized void close(){
+        if(wasMouseClicked()){
+            m_dialog.closeDlg();
+            return;
+        }
+    }
+    
+    private synchronized void clear(){
+        if(wasMouseClicked()){
+            String text = "";
+            m_edit.setText(text);            
+            m_dialog.repaint();
+            return;
+        }
+    }
+
+    private synchronized void append(char c){
+        if(wasMouseClicked()){
+            String text = "";
+            try{
+                text = m_edit.getText();            
+            }catch (NullPointerException e){
+                // getText throws exception if no text
+                text = "";
+            }finally{
+                m_edit.setText(text + c);            
+            }      
+            m_dialog.repaint();
+            //update the screen?
+            return;
+        }
+    }
+
+    private synchronized void append(String c){
+        if(wasMouseClicked()){
+            String text = "";
+            try{
+                text = m_edit.getText();            
+            }catch (NullPointerException e){
+                // getText throws exception if no text
+                text = "";
+            }finally{
+                m_edit.setText(text + c);            
+            }      
+            m_dialog.repaint();
+            //update the screen?
+            return;
+        }
+    }
+}
\ No newline at end of file

Propchange: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/NumericKeypad.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain