* 文件说明:工程启动文件,负责启动,不包含其他接口
* 创 建 人:caoweidong c00229235
* 创建时间:2014-1-2
*
* */
public static MainFormCCMDataBuild MainformCCM ;
public static void main(String[] args) throws Exception {
MainformCCM = new MainFormCCMDataBuild();
MainformCCM.run();
}
}
/*
* 文件说明:数据构造客户端主界面,提供窗体布局、状态栏和菜单栏等接口
* 创 建 人:caoweidong c00229235
* 创建时间:2014-1-2
*
* */
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.internal.image.*;
public class MainFormCCMDataBuild {
/*公有变量*/
public static DBConnect DBC;
public static Text LogTxt;
public static Shell shell;
public static LogMessage Logmsg;
public static int WindowsWidth = 800;
public static int WindowsHigth = 600;
public static String [] EnvList ={
"jdbc:oracle:thin:@10.88.56.218:1521:sit11i",
"ccm",
"Holiday888"
};
// ccmDB00 =
// (DESCRIPTION =
// (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.206.46)(PORT = 1526))
// (CONNECT_DATA =
// (SERVER = DEDICATED)
// (SERVICE_NAME = ccmDB00)
// )
// )
/*私有变量*/
private static final String[] LTCItem = { "S3 Wave1", "S3 Wave2", "S2[Old]"};
private static final String[] ContractClearFlag = { "----", "Originally", "Gradually"};
/*函数接口:run()*/
public void run() throws Exception{
Display display = new Display();
DBC = new DBConnect();
DBC.getConnection(EnvList);
final Shell shell = new Shell(display);
shell.setText("UniSTAR CCM Data Generator - V100R001C30");
shell.setSize(WindowsWidth, WindowsHigth);
Menu menuBar = new Menu(shell, SWT.BAR);
MenuItem fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
fileMenuHeader.setText("&File(F)");
Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
fileMenuHeader.setMenu(fileMenu);
MenuItem fileSaveItem = new MenuItem(fileMenu, SWT.PUSH);
fileSaveItem.setText("&Save");
MenuItem fileEnglishItem = new MenuItem(fileMenu, SWT.RADIO);
fileEnglishItem.setText("English");
MenuItem fileGermanItem = new MenuItem(fileMenu, SWT.RADIO);
fileGermanItem.setText("German");
MenuItem fileExitItem = new MenuItem(fileMenu, SWT.PUSH);
fileExitItem.setText("E&xit");
MenuItem editMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
editMenuHeader.setText("&Edit(E)");
Menu editMenu = new Menu(shell, SWT.DROP_DOWN);
editMenuHeader.setMenu(editMenu);
MenuItem editCopyItem = new MenuItem(editMenu, SWT.PUSH);
editCopyItem.setText("&Copy");
shell.setMenuBar(menuBar);
ToolBar toolBar = new ToolBar(shell, SWT.FLAT | SWT.WRAP | SWT.RIGHT);
ToolItem itemPush = new ToolItem(toolBar, SWT.PUSH);
//itemPush.setText("PUSH item");
Image icon = new Image(shell.getDisplay(), "icons/new.gif");
itemPush.setImage(icon);
toolBar.pack();
final TabFolder WorkPlatformTab = new TabFolder(shell,SWT.TOP);
WorkPlatformTab.setBounds(15, 35, 750, 350);
TabItem ContractTab = new TabItem(WorkPlatformTab, SWT.NULL);
ContractTab.setText("Contract Register");
TabItem DBTab = new TabItem(WorkPlatformTab, SWT.NULL);
DBTab.setText("DB Config");
Composite ContractCom = new Composite(WorkPlatformTab,SWT.BORDER);
//合同查询、设置
Label ContractNOLbl = new Label(ContractCom,SWT.WRAP);
ContractNOLbl.setBounds(5, 20, 100, 20);
ContractNOLbl.setText("Contract NO.:");
ContractTab.setControl(ContractCom);
Text ContractNOTxt = new Text(ContractCom,SWT.WRAP|SWT.BORDER);
ContractNOTxt.setBounds(105, 15, 140, 25);
ContractNOTxt.setText("AUTOCWD131223A");
Button SearchBtn = new Button(ContractCom,SWT.PUSH);
SearchBtn.setBounds(250, 15, 100, 25);
SearchBtn.setText("Search");
Label LTCLbl = new Label(ContractCom,SWT.WRAP);
LTCLbl.setBounds(400, 20, 60, 20);
LTCLbl.setText("LTC Type :");
Combo LTCCombo = new Combo(ContractCom, SWT.DROP_DOWN|SWT.READ_ONLY);
LTCCombo.setItems(LTCItem);
LTCCombo.setText(LTCItem[0]);
LTCCombo.setBounds(470, 15, 80, 20);
Label ClearFlagLbl = new Label(ContractCom,SWT.WRAP);
ClearFlagLbl.setBounds(570, 20, 70, 20);
ClearFlagLbl.setText("Clear Flag :");
Combo ClearFlagCombo = new Combo(ContractCom, SWT.DROP_DOWN|SWT.READ_ONLY);
ClearFlagCombo.setItems(ContractClearFlag);
ClearFlagCombo.setText(ContractClearFlag[1]);
ClearFlagCombo.setBounds(640, 15, 80, 20);
//BOQ List区域
Label BOQListLbl = new Label(ContractCom,SWT.WRAP);
BOQListLbl.setBounds(5, 50, 70, 20);
BOQListLbl.setText("BOQ List:");
Composite BOQListCom = new Composite(ContractCom,SWT.BORDER|SWT.V_SCROLL|SWT.H_SCROLL);
BOQListCom.setBounds(5, 70, 730, 160);
//表格列头
Button SelectAllCheckBox = new Button(BOQListCom,SWT.CHECK);
SelectAllCheckBox.setBounds(0, 0, 15, 20);
//创建行表
Table BOQListHeadTab = new Table(BOQListCom,SWT.MULTI|SWT.BORDER);
BOQListHeadTab.setBounds(0, 20, 705, 20);
//BOQListHeadTab.setItemCount(5);
//Label BOQNOLbl = new Label(BOQListCom,SWT.WRAP|SWT.CENTER);
//BOQNOLbl.setBounds(15, 0, 190, 20);
//BOQNOLbl.setText("BOQ NO.");
Button PublishBtn = new Button(ContractCom,SWT.PUSH);
PublishBtn.setBounds(250, 285, 100, 25);
PublishBtn.setText("Publish");
PublishBtn.addMouseListener(PublishBtnListener);
Button DeleteContractBtn = new Button(ContractCom,SWT.PUSH);
DeleteContractBtn.setBounds(400, 285, 100, 25);
DeleteContractBtn.setText("Delete Contract");
DeleteContractBtn.addMouseListener(DeleteContractBtnListener);
//日志记录
Logmsg = new LogMessage(shell);
shell.addShellListener(MainformListener);
shell.addControlListener(MainformControlListener);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
DBC.close();
display.dispose();
}
/*监听响应接口*/
//接口说明:主窗体响应
ShellListener MainformListener = new ShellListener()
{
public void shellActivated(ShellEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("界面激活");
}
public void shellClosed(ShellEvent arg0) {
// TODO 自动生成方法存根
}
public void shellDeactivated(ShellEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("界面未激活");
}
public void shellDeiconified(ShellEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("最小化后恢复界面显示");
}
public void shellIconified(ShellEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("最小化");
}
};
//接口说明:窗体控制监听接口
ControlListener MainformControlListener = new ControlListener()
{
public void controlMoved(ControlEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("shell move");
}
public void controlResized(ControlEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("shell resize");
// MainFormCCMDataBuild.WindowsWidth = shell.getSize().x;
// MainFormCCMDataBuild.WindowsHigth = shell.getSize().y;
Logmsg.LogWidth = MainFormCCMDataBuild.WindowsWidth - 50;
Logmsg.composite1.setBounds( 15, 415, Logmsg.LogWidth, Logmsg.LogHigth);
Logmsg.composite1.layout();
}
};
//接口说明:PublishBtn按钮监听响应接口,按钮的鼠标事件
MouseListener PublishBtnListener = new MouseListener(){
public void mouseDoubleClick(MouseEvent arg0) {
// TODO 自动生成方法存根
}
public void mouseDown(MouseEvent arg0) {
// TODO 自动生成方法存根
}
public void mouseUp(MouseEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("Click PublishBtn!");
}
};
//接口说明:DeleteContractBtn按钮监听响应接口,按钮的鼠标事件
MouseListener DeleteContractBtnListener = new MouseListener(){
public void mouseDoubleClick(MouseEvent arg0) {
// TODO 自动生成方法存根
}
public void mouseDown(MouseEvent arg0) {
// TODO 自动生成方法存根
}
public void mouseUp(MouseEvent arg0) {
// TODO 自动生成方法存根
Logmsg.LogPrint("Click DeleteContractBtn!");
}
};
}
/*
* 文件说明:日志模块,主要提供打印显示功能
* 创 建 人:caoweidong c00229235
* 创建时间:2014-1-2
*
* */
import java.text.SimpleDateFormat;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class LogMessage {
/*公有变量*/
public Text LogTxt;
public Composite composite1;
public int LogWidth;
public int LogHigth = 120;
/*私有变量*/
private static String[] OracleTNS = { "CCM BACK", "CCM_DB00"};
private Combo DBEnvCombo;
private final int gridUnitWidth = 100;
private int gridNO;
/*
*接口说明:构造函数,初始化日志模块图形界面布局。
*创 建 人:caoweidong c00229235
*创建时间:2014-1-2
* */
public LogMessage(final Shell shell)
{
LogWidth = MainFormCCMDataBuild.WindowsWidth - 50;
GridLayout gridLayout = new GridLayout();
gridNO =(int)(LogWidth/100);
//把子组件分成N列显示
gridLayout.numColumns = gridNO;
composite1 = new Composite(shell, SWT.BORDER);
composite1.setLayout(gridLayout);
composite1.setBounds( 15, 415, LogWidth, LogHigth);
Label LogLbl = new Label(composite1,SWT.WRAP);
LogLbl.setText("Log Message:");
GridData LogLblgridData = new GridData(GridData.BEGINNING);
LogLblgridData.horizontalSpan = (gridNO - 3);
LogLblgridData.widthHint = (gridNO - 3)*gridUnitWidth;
LogLbl.setLayoutData(LogLblgridData);
Label DBEnv = new Label(composite1,SWT.WRAP);
DBEnv.setText("Database Env.:");
GridData DBEnvgridData = new GridData(GridData.BEGINNING);
DBEnvgridData.horizontalSpan = 1;
DBEnvgridData.widthHint = gridUnitWidth;
DBEnv.setLayoutData(DBEnvgridData);
DBEnvCombo = new Combo(composite1, SWT.READ_ONLY);
DBEnvCombo.setItems(OracleTNS);
DBEnvCombo.setText(OracleTNS[0]);
GridData DBEnvCombogridData = new GridData(GridData.BEGINNING);
DBEnvCombogridData.horizontalSpan = 1;
DBEnvCombogridData.widthHint = gridUnitWidth;
DBEnvCombo.setLayoutData(DBEnvCombogridData);
DBEnvCombo.addSelectionListener(DBEnvComboListener);
Button DetectBtn = new Button(composite1,SWT.PUSH);
DetectBtn.setText("Detect");
GridData DetectBtnCombogridData = new GridData(GridData.BEGINNING);
DetectBtnCombogridData.horizontalSpan = 1;
DetectBtnCombogridData.widthHint = gridUnitWidth;
DBEnvCombo.setLayoutData(DetectBtnCombogridData);
DetectBtn.addMouseListener(DetectBtnListener);
LogTxt = new Text(composite1,SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
GridData LogTxtgridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
LogTxtgridData.horizontalSpan = gridNO;
LogTxtgridData.widthHint = composite1.getSize().x - 40;
LogTxtgridData.heightHint = composite1.getSize().y - 50;
LogTxt.setLayoutData(LogTxtgridData);
composite1.layout();
}
/*
*接口说明:重新布局
*创 建 人:caoweidong c00229235
*创建时间:2014-1-5
* */
public void ReLayout()
{
}
/*
*接口说明:清楚日志窗口所有信息
*创 建 人:caoweidong c00229235
*创建时间:2014-1-2
* */
public void LogClear()
{
LogTxt.clearSelection();
}
/*
*接口说明:日志打印,输入参数为String类型对象
*创 建 人:caoweidong c00229235
*创建时间:2014-1-2
* */
public void LogPrint(String string)
{
if(LogTxt.getText()!= ""){
LogTxt.append("\n");
}
SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss");
String TimeString = time.format(new java.util.Date());
LogTxt.insert("["+TimeString+"]"+": ");
LogTxt.insert(string);
}
/*监听响应接口*/
//接口说明:Database Env下拉框监听响应
SelectionListener DBEnvComboListener = new SelectionListener()
{
public void widgetSelected(SelectionEvent arg0) {
// TODO 自动生成方法存根
MainFormCCMDataBuild.Logmsg.LogPrint("Connectting"+"["+DBEnvCombo.getText()+"]...");
if(DBEnvCombo.getText() ==OracleTNS[1] )
{
MainFormCCMDataBuild.EnvList[0] = "jdbc:oracle:thin:@10.85.206.46:1526:ccmDB00";
MainFormCCMDataBuild.EnvList[1] = "ccm";
MainFormCCMDataBuild.EnvList[1] = "ccm2012";
}
else if(DBEnvCombo.getText() ==OracleTNS[0])
{
MainFormCCMDataBuild.EnvList[0] = "jdbc:oracle:thin:@10.88.56.218:1521:sit11i";
MainFormCCMDataBuild.EnvList[1] = "ccm";
MainFormCCMDataBuild.EnvList[1] = "Holiday888";
}
}
public void widgetDefaultSelected(SelectionEvent arg0) {
// TODO 自动生成方法存根
}
};
//接口说明:DetectBtn按钮监听响应
MouseListener DetectBtnListener = new MouseListener(){
public void mouseDoubleClick(MouseEvent arg0) {
// TODO 自动生成方法存根
}
public void mouseDown(MouseEvent arg0) {
// TODO 自动生成方法存根
}
public void mouseUp(MouseEvent arg0) {
// TODO 自动生成方法存根
String sql = null;
MainFormCCMDataBuild.DBC.close();
try {
MainFormCCMDataBuild.DBC.getConnection(MainFormCCMDataBuild.EnvList);
} catch (Exception e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
MainFormCCMDataBuild.Logmsg.LogPrint("Connecting Database"+"["+DBEnvCombo.getText()+"]"+"...");
try {
// if(OracleTNS[1] == DBEnvCombo.getText())
{
sql = "Select * FROM ccm.cc_contracts_t t Where t.contract_number = 'AUTOCWD131008A'";
}
// else
{
sql = "Select * FROM ccm.cc_contracts_t t Where t.contract_number = 'AUTOCWD131223A'";
}
MainFormCCMDataBuild.DBC.QuerySQL(sql);
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
};
/*
* 文件说明:数据库操作模块,提供数据库操作接口
* 创 建 人:caoweidong c00229235
* 创建时间:2014-1-2
*
* */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnect {
/*私有变量*/
private static Connection connection = null;
private final String driver = "oracle.jdbc.driver.OracleDriver";
private static Statement pstmt;
private static ResultSet rst;
/*
*接口说明:打开连接
*创 建 人:caoweidong c00229235
*创建时间:2014-1-3
* */
public void getConnection(String []env) throws Exception
{
Class.forName(driver);
connection = DriverManager.getConnection(env[0],env[1],env[2]);
pstmt = connection.createStatement();
}
public ResultSet QuerySQL(String sql) throws Exception
{
rst = pstmt.executeQuery(sql);
while(rst.next()){
MainFormCCMDataBuild.Logmsg.LogPrint(rst.getString("contract_number"));
}
return rst;
}
/*
*接口说明:关闭资源
*创 建 人:caoweidong c00229235
*创建时间:2014-1-3
* */
public void close()
{
if(rst != null) {
try {
rst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}