Package nu.lazy8.ledger.jdbc

Source Code of nu.lazy8.ledger.jdbc.DataComboBox

/*
* :tabSize=2:indentSize=2:noTabs=true:
* :folding=explicit:collapseFolds=1:
*
*  Copyright (C) 2009 Chaniel AB, Thomas Dilts 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA For more
*  information, surf to www.lazy8.nu or email support@lazy8.nu
*/
package nu.lazy8.ledger.jdbc;
//{{{ imports
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.sql.Date;
import java.sql.Types;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.ListIterator;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import nu.lazy8.ledger.main.Lazy8Ledger;
import nu.lazy8.util.gen.IntHolder;
import nu.lazy8.util.help.DateField;
import nu.lazy8.util.help.DoubleField;
import nu.lazy8.util.help.IntegerField;
import nu.lazy8.util.gen.SystemLog;
//}}}

/**
*  Description of the Class
*
* @author     Lazy Eight Data HB, Thomas Dilts
* @created    den 5 mars 2002
*/
public class DataComboBox extends JComboBox {
  //{{{ members
  public ArrayList keySecondaryArray = new ArrayList();
  public ArrayList keyArray = new ArrayList();
  private static LinkedList allInstances;
  boolean bShowFirstItemBlank;
  public JdbcTable dataAccess;
  private String helpField;
  private String helpName;
  private Integer key;
  private String sDescField;
  private String sIntField;
  private JFrame view;
  //}}}

  //{{{ +DataComboBox(JdbcTable, boolean, String, String, JFrame) : <init>
  /**
   *  Constructor for the DataComboBox object
   *
   * @param  dataAccessin  Description of the Parameter
   * @param  bShowBlank    Description of the Parameter
   * @param  HelpField     Description of the Parameter
   * @param  HelpFile      Description of the Parameter
   * @param  view          Description of the Parameter
   */
  public DataComboBox(JdbcTable dataAccessin, boolean bShowBlank, String HelpField, String HelpFile, JFrame view) {
    this.view = view;
    dataAccess = dataAccessin;
    bShowFirstItemBlank = bShowBlank;
    helpName = HelpFile;
    helpField = HelpField;

    FocusListener l =
      new FocusListener() {

        //{{{ +focusGained(FocusEvent) : void
        public void focusGained(FocusEvent e) {
          showHelp();
        }//}}}


        //{{{ +focusLost(FocusEvent) : void
        public void focusLost(FocusEvent e) {
        }//}}}
      };
    addFocusListener(l);
  }//}}}

  //{{{ +existsKey(Integer) : boolean
  /**
   *  Description of the Method
   *
   * @param  key  Description of the Parameter
   * @return      Description of the Return Value
   */
  public boolean existsKey(Integer key) {
    int j = 0;
    Integer nextKey;
    for (ListIterator i = keyArray.listIterator(0); i.hasNext(); j++) {
      nextKey = (Integer) i.next();
      if (nextKey.compareTo(key) == 0) {
        return true;
      }
    }
    return false;
  }//}}}

  //{{{ +getSelectedItemsKey() : Object
  /**
   *  Gets the selectedItemsKey attribute of the DataComboBox object
   *
   * @return    The selectedItemsKey value
   */
  public Object getSelectedItemsKey() {
    try {
      return keyArray.get(getSelectedIndex());
    } catch (Exception e) {
      return new Integer(0);
    }
  }//}}}

  //{{{ +getSelectedItemsSecondaryKey() : Object
  /**
   *  Gets the selectedItemsSecondaryKey attribute of the DataComboBox object
   *
   * @return    The selectedItemsSecondaryKey value
   */
  public Object getSelectedItemsSecondaryKey() {
    try {
      return keySecondaryArray.get(getSelectedIndex());
    } catch (Exception e) {
      return new Integer(0);
    }
  }//}}}

  //{{{ +loadComboBox(String, String, Integer) : void
  /**
   *  Description of the Method
   *
   * @param  sDescField  Description of the Parameter
   * @param  sIntField   Description of the Parameter
   * @param  key         Description of the Parameter
   */
  public void loadComboBox(String sDescField, String sIntField, Integer key) {
    this.sDescField = sDescField;
    this.sIntField = sIntField;
    this.key = key;
    keyArray.clear();
    keySecondaryArray.clear();
    removeAllItems();
    IntHolder iFieldTypeOut1 = new IntHolder();
    IntHolder iFieldTypeOut2 = new IntHolder();
    Object objDescField1;
    Object objDescField2;
    String sDescFieldToString1 = new String();
    String sDescFieldToString2 = new String();

    if (key.intValue() != 0) {
      dataAccess.setObject(key, "CompId");
    }
    if (bShowFirstItemBlank) {
      addItem(new String(""));
      keyArray.add(new Integer(0));
      keySecondaryArray.add(new String(""));
    }
    if (dataAccess.GetFirstRecord()) {
      do {
        objDescField1 = dataAccess.getObject(sIntField, iFieldTypeOut1);
        objDescField2 = dataAccess.getObject(sDescField, iFieldTypeOut2);
        keyArray.add(objDescField1);
        keySecondaryArray.add(objDescField2);
        switch (iFieldTypeOut1.iValue) {
          case Types.INTEGER:
            sDescFieldToString1 = IntegerField.ConvertIntToLocalizedString((Integer) objDescField1);
            break;
          case Types.DOUBLE:
            sDescFieldToString1 = DoubleField.ConvertDoubleToLocalizedString((Double) objDescField1);
            break;
          case Types.DATE:
            sDescFieldToString1 = DateField.ConvertDateToLocalizedString((Date) objDescField1);
            break;
          default:
            sDescFieldToString1 = (String) objDescField1;
            break;
        }
        switch (iFieldTypeOut2.iValue) {
          case Types.INTEGER:
            sDescFieldToString2 = IntegerField.ConvertIntToLocalizedString((Integer) objDescField2);
            break;
          case Types.DOUBLE:
            sDescFieldToString2 = DoubleField.ConvertDoubleToLocalizedString((Double) objDescField2);
            break;
          case Types.DATE:
            sDescFieldToString2 = DateField.ConvertDateToLocalizedString((Date) objDescField2);
            break;
          default:
            sDescFieldToString2 = (String) objDescField2;
            break;
        }
        addItem(sDescFieldToString1 + " : " + sDescFieldToString2);
      } while (dataAccess.GetNextRecord());
    }
  }//}}}

  //{{{ +reload() : void
  /**
   *  Description of the Method
   */
  public void reload() {
    Object tempkey = getSelectedItem();
    loadComboBox(sDescField, sIntField, key);
    setSelectedItem(tempkey);
  }//}}}

  //{{{ +setSelectedItemFromKey(Integer) : void
  /**
   *  Sets the selectedItemFromKey attribute of the DataComboBox object
   *
   * @param  key  The new selectedItemFromKey value
   */
  public void setSelectedItemFromKey(Integer key) {
    int j = 0;
    Integer nextKey;
    for (ListIterator i = keyArray.listIterator(0); i.hasNext(); j++) {
      nextKey = (Integer) i.next();
      if (nextKey.compareTo(key) == 0) {
        setSelectedIndex(j);
        return;
      }
    }
    ListIterator i = keyArray.listIterator(0);
    if (i.hasNext()) {
      setSelectedIndex(0);
    }
  }//}}}

  //{{{ +setSelectedItemFromKeys(java.util.Date, java.util.Date) : void
  /**
   *  Sets the selectedItemFromKeys attribute of the DataComboBox object
   *
   * @param  key   The new selectedItemFromKeys value
   * @param  key2  The new selectedItemFromKeys value
   */
  public void setSelectedItemFromKeys(java.util.Date key, java.util.Date key2) {
    int j = 0;
    java.util.Date nextKey;
    java.util.Date nextKey2;
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd");
    ListIterator i2 = keySecondaryArray.listIterator(0);
    for (ListIterator i = keyArray.listIterator(0); i.hasNext(); j++) {
      nextKey = (java.util.Date) i.next();
      nextKey2 = (java.util.Date) i2.next();
      if (sdf.format(nextKey).compareTo(sdf.format(key)) == 0 && sdf.format(nextKey2).compareTo(sdf.format(key2)) == 0) {
        setSelectedIndex(j);
        return;
      }
    }
    ListIterator i = keyArray.listIterator(0);
    if (i.hasNext()) {
      setSelectedIndex(0);
    }
  }//}}}

  //{{{ +showHelp() : void
  /**
   *  Description of the Method
   */
  public void showHelp() {
    Lazy8Ledger.ShowContextHelp(view, helpName, helpField);
  }//}}}
}

TOP

Related Classes of nu.lazy8.ledger.jdbc.DataComboBox

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.