Datawindow无处不在:datawindow in java(转载)

From: http://dev.21tx.com/2005/01/18/14251.html

//转载加注:datawindow经过我三年的使用,是如此方便快捷。虽然powerj不在使用,但现在pb11和datawindow.net再显风光。datawindow以控件的面目出现在.net里,可以说真是无处不在。如此简单好用的东西很多人不用,上次我一个朋友居然试图给一个同学提供delphi版的report tool for PB,让我"痛斥"了一番。归结其原因,还是sybase没宣传好。可以说任何程序,特别是java这样的不长于UI编写的语言,在jBuilder和datawindow的作用下,还是很容易写一个界面和数据操作的。

*/////////////////////////////////////////////////////////////////////////
*
*  This is a basic Java datawindow example.
*  I want explaine you how to use a datawindow control for java development.
*  (its so basic...)
*
* Autor:
*  David Arcia 09-09-2002 ([email protected])
*
//////////////////////////////////////////////////////////////////////////*/

import javax.Swing.JOptionPane;
import javax.swing.JFrame;
import powersoft.datawindow.JDataWindowControl;
import powersoft.datawindow.Blob;
import powersoft.powerj.db.java_sql.Transaction;


public class JDataWindow extends JFrame{

//The datawindow
private JDataWindowControl dwcActual;
//The powerbuilder library path (where dataobjects are stored)
private final String LIBRERIA = new String("C:/PB7/java.pbl");
//Transaction objetc for database connection
private Transaction trans; 

 
  //Contructor
  public JDataWindow() { 
  //New datawindow control
dwcActual = getDataWindow("dw_products",true,true,true);
//Not null ?
if(dwcActual == null) return;
  }//ends method


/********************************************************************************
* CONNECTION USING POWERSOFT TRANSACTION OBJECT (as SQLCA in PowerBuilder)
********************************************************************************/
//This method connect with database (by example, a Oracle database)
public boolean setConnect(){
        trans = new Transaction();
            trans.reGISterDriver( "oracle.JDBC.driver.OracleDriver" );
            trans.setDataSource("jdbc:oracle:thin:@192.168.22.10:1521:FALCON");
            trans.setUserID( "rjimenez" );
            trans.setPassword( "defalcon" );                      
            //Error ?
            if(!trans.connect()){
                System.err.println("Connection failed.");
                return false;
            }                     
            return true;                                     
}//ends method



/********************************************************************************
* JAVA DATAWINDOW'S CREATION
********************************************************************************/
    //Create a datawindow
    public JDataWindowControl getDataWindow(String dataobject){
          JDataWindowControl dwc = new JDataWindowControl(); 
  //Assign a datawindow library
          dwc.setSourceFileName(LIBRERIA);
          //Assign a datawindow object to the dw control
          dwc.setDataWindowObjectName(dataobject);
          //Some properties...
          dwc.setVScroll( true );
          dwc.insertRow(0);   
      //Assign the transaction object to dw
      dwc.setTransaction(trans); 
          //return object created
          return dwc;
    }//ends method


  //Optional...Method for row selection
  public void selectRow(int row){
  if(row > 0){
dwcActual.selectRow(0,false);
dwcActual.selectRow(row,true);
dwcActual.scrollToRow(row);
dwcActual.setRow(row);
}
  }//ends method

 
  //Optional... for to make a datawindow editable or not
  public void setEditable(JDataWindowControl dwc, boolean editar){ 
  //Accept text
  dwcActual.acceptText();
  //get column number
  int cols = Integer.parseInt(dwc.describe("Datawindow.column.count"));  
//////////////////////////////////////////////////////////////////////////  
  String indicador = (editar) ? "1" : "0";
//////////////////////////////////////////////////////////////////////////
  editable = indicador == "1";
  //Change the editable porperty
  for(int cont=1; cont <= cols; cont++){
  dwc.modify("#" + cont + ".TabSequence = " + indicador) ; 
  } 
  }//ends method



  //Optional... Insert new row to dataWindows end.
  public void getNewRow(){
  int row=dwcActual.insertRow(0);  
  selectRow(row);
  }//final de metodo


  //Optional... Delete a datawindow row
  public void deleteRow(){
int boton=JOptionPane.showConfirmDialog(null,"Delete actual row ?", "Deleting",
JOptionPane.YES_NO_OPTION);
if(boton == 0) dwcActual.deleteRow(dwcActual.getRow()); 
  }//Fin de metodo

         
/********************************************************************************
* THIS ARE THE DATAWINDOW'S EVENT MANAGERS
*
* The events that support datawindow are clasificated in differents interfaces
* according it function.
*
********************************************************************************

Interfaces:
MouseListener,FocusListener,DatabaseListener,EditChangedListener,
ItemListener,PrintListener,RowChangeListener, etc...

Datawindow events:
public void leftButtonDoubleClick (MouseEvent event){}
public void leftButtonClick (MouseEvent event){}
public void leftButtonDown ( MouseEvent event){}
public void leftButtonUp ( MouseEvent event){}
public void middleButtonClick ( MouseEvent event){}
public void middleButtonDoubleClick ( MouseEvent event){}
public void mouseMove ( MouseEvent event){}
public void rightButtonClick ( MouseEvent event){}
public void rightButtonDoubleClick ( MouseEvent event){}
public void rightButtonDown ( MouseEvent event){}
public void rightButtonUp ( MouseEvent event){}
public void getFocus ( FocusEvent event){}
public void loseFocus ( FocusEvent event){}
public void DBError ( DatabaseEvent event){}
public void SQLPreview ( DatabaseEvent event){}
public void editChanged ( EditChangedEvent event){}
public void itemChanged ( ItemEvent event){}
public void itemChangeAccepted ( ItemEvent event){}
public void itemError ( ItemEvent event){}
public void itemFocusChanged ( ItemEvent event){}    
public void printEnding ( PrintEvent event){}
public void printMarginChanging ( PrintEvent event){}
public void printPageStarting ( PrintEvent event){}
public void printStarting ( PrintEvent event){}
public void retrieveEnd ( RetrieveEvent event){}
public void retrieveRow ( RetrieveEvent event){}
public void retrieveStart ( RetrieveEvent event){} 
public void rowChanged ( RowChangeEvent event){}
public void rowChanging ( RowChangeEvent event){}
etc...


********************************************************************************/

}//ends classe
 

你可能感兴趣的:(java,object,String,database,import,PowerBuilder)