⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datamodule1.java

📁 java在线商店的源代码。编写十分规范的哦
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/**
 * Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
 * 
 * This SOURCE CODE FILE, which has been provided by Borland Software as part
 * of a Borland Software product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of Borland Software.  
 *
 * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
 * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
 * THE PRODUCT.
 *
 * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND SOFTWARE, ITS
 * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
 * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
 * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
 * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
 * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR
 * DERIVED FROM THIS SOURCE CODE FILE.
 */
//------------------------------------------------------------------------------
// Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
//------------------------------------------------------------------------------

package com.borland.samples.orderentry;

import java.io.*;
import java.util.*;
import java.net.*;

import javax.swing.*;

import com.borland.dx.dataset.*;
import com.borland.dx.sql.dataset.*;
import com.borland.jb.util.*;

/**
 * DataModule1 is an implementation of the DataModule interface.
 * The DataModule is a non visual container for components, especially
 * DataExpress components (i.e. Database and DataSet components). This
 * centralizes related database components into one module, allowing a
 * separation of business rule logic and application logic. A big advantage
 * DataModules allow for easier reuse or sharing of components between
 * multiple Frames in an application, or between multiple applets.
 *
 * <P>
 * This class employs the Singleton pattern to ensure that the class has only
 * one instance. You can access the singleton instance by calling the
 * static method getDataModule. This method instantiates the DataModule for
 * the first caller and returns this same instance to any successive callers:
 *
 * <P>
 * <CODE><PRE>
 *   DataModule1 dm = DataModule1.getDataModule();
 * <PRE></CODE>
 *
 * <P>
 * The DataSets that are used throughout the Cliffhanger application are
 * contained and initialized here in this DataModule. Any master-detail
 * relationships between datasets are defined here too. All persistent
 * columns for the various datasets are defined and initialized here also.
 * Client-side business logic is implemented in the data module to centralize
 * a common response by datasets to validation checks and database exceptions.
 * To access a dataset contained in the data module, use the getter methods
 * for the various DataSets in the data module. These methods instantiate the
 * DataSets for the first caller and returns the same instances to any
 * successive callers, allowing mulitple frames to share the same dataset
 * cursor:
 *
 * <P>
 * <CODE><PRE>
 *   DataModule1 dm = DataModule1.getDataModule();
 *   QueryDataSet customerDataSet = dm.getCustomerDataSet();
 * </PRE></CODE>
 *
 */
public class DataModule1 implements DataModule{
  private static DataModule1 myDM;
  static final double TAXPERCENT = 0.09086;
  static final double SHIPPERCENT = 0.04;

  Database database1 = new Database();
  QueryDataSet productDataSet = new QueryDataSet();
  QueryDataSet categoryDataSet = new QueryDataSet();

  // customerDataSet and custOrderDataSet are linked
  // in a master-detail relationship
  QueryDataSet customerDataSet = new QueryDataSet();
  QueryDataSet custOrderDataSet = new QueryDataSet();

  // orderDataSet and orderItemDataSet are linked
  // in a master-detail relationship
  QueryDataSet orderDataSet = new QueryDataSet();
  QueryDataSet orderItemDataSet = new QueryDataSet();

  // Lookup datasets
  QueryDataSet payMethodDataSet = new QueryDataSet();
  QueryDataSet shipMethodDataSet = new QueryDataSet();
  QueryDataSet statusDataSet = new QueryDataSet();

  // Other datasets
  QueryDataSet nextOrderIDDataSet = new QueryDataSet();
  QueryDataSet nextCustomerIDDataSet = new QueryDataSet();
  QueryDataSet accountDataSet = new QueryDataSet();

  // Query Resolvers
  QueryResolver resOrder = new QueryResolver();
  QueryResolver resOrderItem = new QueryResolver();
  QueryResolver resCustomer = new QueryResolver();
  QueryResolver resProduct = new QueryResolver();

  // Persistent columns
  // Orders
  Column colOrdersID = new Column();
  Column colOrdersCustomerID = new Column();
  Column colOrdersOrderDate = new Column();
  Column colOrdersStatus = new Column();
  Column colOrdersShipDate = new Column();
  Column colOrdersOrderTrackNum = new Column();
  Column colOrdersCustomerPONum = new Column();
  Column colOrdersPayMethod = new Column();
  Column colOrdersCreditCardNum = new Column();
  Column colOrdersWirePaymentInstr = new Column();
  Column colOrdersShipMethod = new Column();
  Column colOrdersAmtPaid = new Column();
  Column colOrdersShipName = new Column();
  Column colOrdersShipAddr1 = new Column();
  Column colOrdersShipAddr2 = new Column();
  Column colOrdersShipCity = new Column();
  Column colOrdersShipState = new Column();
  Column colOrdersShipPostalCode = new Column();
  Column colOrdersShipCountry = new Column();
  Column colOrdersBillAddr1 = new Column();
  Column colOrdersBillAddr2 = new Column();
  Column colOrdersBillCity = new Column();
  Column colOrdersBillState = new Column();
  Column colOrdersBillPostalCode = new Column();
  Column colOrdersBillCountry = new Column();
  Column colOrdersCustomerName = new Column();
  // OrderItem
  Column colOrderItemQty = new Column();
  Column colOrderItemProductID = new Column();
  Column colOrderItemProductName = new Column();
  Column colOrderItemSalePrice = new Column();
  Column colOrderItemExtendedPrice = new Column();
  Column colOrderItemSubtotal = new Column();
  Column colOrderItemOrderID = new Column();
  Column colOrderItemTax = new Column();
  Column colOrderItemShipping = new Column();
  Column colOrderItemAmtDue = new Column();
  // Customer
  Column colCustomerID = new Column();
  Column colCustomerFirstName = new Column();
  Column colCustomerMI = new Column();
  Column colCustomerLastName = new Column();
  Column colCustomerPhone = new Column();
  Column colCustomerFax = new Column();
  Column colCustomerEmail = new Column();
  Column colCustomerAddr1 = new Column();
  Column colCustomerAddr2 = new Column();
  Column colCustomerCity = new Column();
  Column colCustomerState = new Column();
  Column colCustomerPostalCode = new Column();
  Column colCustomerCountry = new Column();
  Column colCustomerShipName = new Column();
  Column colCustomerShipAddr1 = new Column();
  Column colCustomerShipAddr2 = new Column();
  Column colCustomerShipCity = new Column();
  Column colCustomerShipState = new Column();
  Column colCustomerShipPostalCode = new Column();
  Column colCustomerShipCountry = new Column();
  // Customer Order
  Column colCustOrderID = new Column();
  Column colCustOrderCustomerID = new Column();
  Column colCustOrderOrderDate = new Column();
  Column colCustOrderStatus = new Column();
  Column colCustOrderShipDate = new Column();
  // Product
  Column colProductID = new Column();
  Column colProductIsActive = new Column();
  Column colProductName = new Column();
  Column colProductCategory = new Column();
  Column colProductBasePrice = new Column();
  Column colProductDiscountPct = new Column();
  Column colProductStockQty = new Column();
  Column colProductMinReorderQty = new Column();
  ResourceBundle res = Res.getBundle("com.borland.samples.orderentry.Res");
  Column categoryColumn = new Column();

  public DataModule1() {
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    // Initialize database connection
    database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor(DataModule1.getInterBaseURL("OnlineStore", "cliffhanger.gdb"), "SYSDBA", "masterkey", false, "interbase.interclient.Driver"));
    database1.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_COMMITTED);

    productDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM Product", null, true, Load.ALL));
    categoryDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_ProductCategory", null, true, Load.ALL));
    categoryDataSet.addEditListener(new DataModule1_categoryDataSet_editAdapter(this));
    customerDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM Customer", null, true, Load.ALL));
    custOrderDataSet.setMasterLink(new com.borland.dx.dataset.MasterLinkDescriptor(customerDataSet, new String[] {"ID"}, new String[] {"CUSTOMERID"}, true));
    custOrderDataSet.setReadOnly(true);
    custOrderDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT ID, CUSTOMERID, ORDERDATE, STATUS, SHIPDATE FROM ORDERS WHERE CUSTOMERID = :ID", null, true, Load.ALL));
    orderDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM ORDERS", null, true, Load.ALL));
    orderDataSet.addCalcFieldsListener(new DataModule1_orderDataSet_calcFieldsAdapter(this));
    orderItemDataSet.setMasterLink(new com.borland.dx.dataset.MasterLinkDescriptor(orderDataSet, new String[] {"ID"}, new String[] {"ORDERID"}, true));
    orderItemDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT ORDERID, PRODUCTID, QTY, SALEPRICE FROM ORDERITEM WHERE ORDERID = :ID", null, true, Load.ALL));
    orderItemDataSet.addCalcFieldsListener(new DataModule1_orderItemDataSet_calcFieldsAdapter(this));
    orderItemDataSet.addCalcAggFieldsListener(new DataModule1_orderItemDataSet_calcAggFieldsAdapter(this));
    payMethodDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_PAYMETHOD", null, true, Load.ALL));
    shipMethodDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_SHIPMETHOD", null, true, Load.ALL));
    statusDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_STATUS", null, true, Load.ALL));
    nextOrderIDDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT NEXTID FROM spNextOrderID", null, true, Load.ALL));
    nextCustomerIDDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT NEXTID FROM spNextCustomerID", null, true, Load.ALL));
    accountDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT ID, CREDITCARDNUMBER FROM ACCOUNT", null, true, Load.ALL));

    // Initialize QueryResolvers
    orderDataSet.setResolver(resOrder);
    orderDataSet.addEditListener(new DataModule1_orderDataSet_editAdapter(this));
    orderItemDataSet.setResolver(resOrderItem);
    orderItemDataSet.addEditListener(new DataModule1_orderItemDataSet_editAdapter(this));
    customerDataSet.setResolver(resCustomer);
    customerDataSet.addEditListener(new DataModule1_customerDataSet_editAdapter(this));
    productDataSet.setResolver(resProduct);
    productDataSet.addEditListener(new DataModule1_productDataSet_editAdapter(this));
    resOrder.setDatabase(database1);
    resOrder.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
    resOrderItem.setDatabase(database1);
    resOrderItem.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
    resCustomer.setDatabase(database1);
    resCustomer.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
    resProduct.setDatabase(database1);
    resProduct.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
    resProduct.addResolverListener(new DataModule1_resProduct_resolverAdapter(this));

    // Initialize Persistent Columns
    // Orders
    colOrdersID.setCaption(res.getString("DM_OrderDS_ID"));
    colOrdersID.setColumnName("ID");
    colOrdersID.setDataType(com.borland.dx.dataset.Variant.INT);
    colOrdersCustomerID.setCaption(res.getString("DM_OrderDS_CUSTOMERID"));
    colOrdersCustomerID.setColumnName("CUSTOMERID");
    colOrdersCustomerID.setDataType(com.borland.dx.dataset.Variant.INT);
    colOrdersCustomerID.addColumnChangeListener(new DataModule1_colOrdersCustomerID_columnChangeAdapter(this));
    colOrdersOrderDate.setCaption(res.getString("DM_OrderDS_ORDERDATE"));
    colOrdersOrderDate.setColumnName("ORDERDATE");
    colOrdersOrderDate.setDisplayMask(res.getString("DM_DateDisplayMask"));
    colOrdersOrderDate.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP);
    colOrdersOrderDate.setEditMask(res.getString("DM_DateEditMask"));
    colOrdersOrderDate.setDefault("NOW");
    colOrdersStatus.setCaption(res.getString("DM_OrderDS_STATUS"));
    colOrdersStatus.setColumnName("STATUS");
    colOrdersStatus.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersStatus.setDefault(res.getString("DM_Open"));
    colOrdersStatus.setPickList(new com.borland.dx.dataset.PickListDescriptor(statusDataSet, new String [] { "STATUS" }, new String [] { "STATUS" }, new String [] { "STATUS" }, null, false));
    colOrdersStatus.addColumnChangeListener(new DataModule1_colOrdersStatus_columnChangeAdapter(this));
    colOrdersShipDate.setCaption(res.getString("DM_OrderDS_SHIPDATE"));
    colOrdersShipDate.setColumnName("SHIPDATE");
    colOrdersShipDate.setDisplayMask(res.getString("DM_DateDisplayMask"));
    colOrdersShipDate.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP);
    colOrdersShipDate.setEditMask(res.getString("DM_DateEditMask"));
    colOrdersOrderTrackNum.setCaption(res.getString("DM_OrderDS_ORDERTRACKNUM"));
    colOrdersOrderTrackNum.setColumnName("ORDERTRACKNUM");
    colOrdersOrderTrackNum.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersCustomerPONum.setCaption(res.getString("DM_OrderDS_CUSTOMERPONUM"));
    colOrdersCustomerPONum.setColumnName("CUSTOMERPONUM");
    colOrdersCustomerPONum.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersPayMethod.setColumnName("PAYMETHOD");
    colOrdersPayMethod.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersPayMethod.setDefault(res.getString("DM_VISA"));
    colOrdersPayMethod.setPickList(new com.borland.dx.dataset.PickListDescriptor(payMethodDataSet, new String [] { "PAYMETHOD" }, new String [] { "PAYMETHOD" }, new String [] { "PAYMETHOD" }, null, false));
    colOrdersPayMethod.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersPayMethod.addColumnChangeListener(new DataModule1_colOrdersPayMethod_columnChangeAdapter(this));
    colOrdersCreditCardNum.setColumnName("CREDITCARDNUM");
    colOrdersCreditCardNum.setDisplayMask("####\\-####\\-####\\-####;0; ; ");
    colOrdersCreditCardNum.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersCreditCardNum.setEditMask("####\\-####\\-####\\-####;0; ; ");
    colOrdersCreditCardNum.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersWirePaymentInstr.setColumnName("WIREPAYMENTINSTR");
    colOrdersWirePaymentInstr.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersWirePaymentInstr.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersShipMethod.setColumnName("SHIPMETHOD");
    colOrdersShipMethod.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipMethod.setDefault(res.getString("DM_UPS"));
    colOrdersShipMethod.setPickList(new com.borland.dx.dataset.PickListDescriptor(shipMethodDataSet, new String [] { "SHIPMETHOD" }, new String [] { "SHIPMETHOD" }, new String [] { "SHIPMETHOD" }, null, false));
    colOrdersShipMethod.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersAmtPaid.setCurrency(true);
    colOrdersAmtPaid.setColumnName("AMTPAID");
    colOrdersAmtPaid.setDataType(com.borland.dx.dataset.Variant.DOUBLE);
    colOrdersAmtPaid.setLocale(new java.util.Locale("en", "US", ""));
    colOrdersAmtPaid.setDefault("0");
    colOrdersAmtPaid.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersAmtPaid.addColumnChangeListener(new DataModule1_colOrdersAmtPaid_columnChangeAdapter(this));
    colOrdersShipName.setColumnName("SHIPNAME");
    colOrdersShipName.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipName.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersShipAddr1.setColumnName("SHIPADDR1");
    colOrdersShipAddr1.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipAddr1.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersShipAddr2.setColumnName("SHIPADDR2");
    colOrdersShipAddr2.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipAddr2.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersShipCity.setColumnName("SHIPCITY");
    colOrdersShipCity.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipCity.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersShipState.setColumnName("SHIPSTATE");
    colOrdersShipState.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipState.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
    colOrdersShipPostalCode.setColumnName("SHIPPOSTALCODE");
    colOrdersShipPostalCode.setDataType(com.borland.dx.dataset.Variant.STRING);
    colOrdersShipPostalCode.setVisible(com.borland.jb.util.TriStateProperty.FALSE);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -