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

📄 configdbdialog.java

📁 TestDataBuilder是一个采用Java编写的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.testDataBuilder.ui.database;

import javax.swing.JPanel;

import java.awt.Dimension;
import java.awt.Frame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import com.testDataBuilder.ui.core.JTDButton;

import com.testDataBuilder.config.DatabaseConfig;
import com.testDataBuilder.core.DatabaseUtil;
import com.testDataBuilder.exception.ValidataException;
import com.testDataBuilder.resources.RM;
import com.testDataBuilder.sqlTemplate.IDBTemplate;
import com.testDataBuilder.sqlTemplate.TemplateFactory;
import com.testDataBuilder.sqlTemplate.XmlConfigTemplate;
import com.testDataBuilder.ui.core.CenterDialog;
import com.testDataBuilder.ui.core.JTextFieldEx;

import javax.swing.WindowConstants;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.xml.sax.SAXException;
import javax.swing.BorderFactory;
import javax.swing.border.EtchedBorder;

public class ConfigDBDialog extends CenterDialog {

    static Logger logger = Logger.getLogger(ConfigDBDialog.class);
    
	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JLabel jLabel = null;

	private JComboBox cbxTemplateName = null;

	private JLabel jLabel1 = null;

	private JTextField txtDriverClass = null;

	private JLabel jLabel2 = null;

	private JTextField txtURL = null;

	private JLabel jLabel3 = null;

	private JTextField txtUserName = null;

	private JLabel jLabel4 = null;

	private JPasswordField txtPwd = null;

	private JTDButton btnTestConn = null;

	private JTDButton btnCancel = null;
	
	private DatabaseConfig databaseConfig = null;
    
	/**
	 * @param owner
	 */
	public ConfigDBDialog(Frame owner) {
		super(owner);
		initialize();
		this.center();
	}

	/**
	 * @param owner
	 */
	public ConfigDBDialog(Frame owner, DatabaseConfig databaseConfig) {
		super(owner);		
		initialize();
		this.center();  
        this.databaseConfig = databaseConfig;
        try {
            if(databaseConfig != null){
                this.getTxtName().setText(databaseConfig.getName());
            }else{
                this.getTxtName().setEditable(true);
            }
            dataExchange(databaseConfig, true);
        } catch (Exception ex) {
        	logger.error("OpenDBDialog", ex); //$NON-NLS-1$
            JOptionPane.showMessageDialog(this, RM.R("label.ConfigDBDialog.parseConfigFileError") + ex.getMessage()); //$NON-NLS-1$
        }
	}


	public void center(){
		Dimension screenSize = this.getToolkit().getScreenSize();
		int x = (screenSize.width - this.getWidth()) / 2;
		int y = (screenSize.height - this.getHeight()) /2;
		this.setLocation(x, y);
	}
	
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(428, 273);
        this.setResizable(false);
		this.setTitle(RM.R("label.ConfigDBDialog.title")); //$NON-NLS-1$
		this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		this.setContentPane(getJContentPane());
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel4 = new JLabel();
			jLabel4.setText(RM.R("label.ConfigDBDialog.password")); //$NON-NLS-1$
			jLabel4.setBounds(new Rectangle(19, 172, 43, 20));
			jLabel3 = new JLabel();
			jLabel3.setText(RM.R("label.ConfigDBDialog.userName")); //$NON-NLS-1$
			jLabel3.setBounds(new Rectangle(19, 140, 43, 20));
			jLabel2 = new JLabel();
			jLabel2.setText(RM.R("label.ConfigDBDialog.URL")); //$NON-NLS-1$
			jLabel2.setBounds(new Rectangle(19, 108, 43, 20));
			jLabel1 = new JLabel();
			jLabel1.setText(RM.R("label.ConfigDBDialog.jdbcDriver")); //$NON-NLS-1$
			jLabel1.setBounds(new Rectangle(19, 76, 43, 20));
			jLabel = new JLabel();
			jLabel.setText(RM.R("label.ConfigDBDialog.type")); //$NON-NLS-1$
			jLabel.setBounds(new Rectangle(19, 13, 43, 20));
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getBtnTestConn(), null);
			jContentPane.add(getBtnCancel(), null);
			jContentPane.add(getBtnOK(), null);
			jContentPane.add(getJInnerPanel(), null);
			jContentPane.add(getBtnSaveAsTemplate(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes cbxTemplateName	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getCbxTemplateName() {
		if (cbxTemplateName == null) {
			cbxTemplateName = new JComboBox();
			cbxTemplateName.setBounds(new Rectangle(69, 13, 305, 20));
			
			cbxTemplateName.addItemListener(new java.awt.event.ItemListener() {
			    public void itemStateChanged(java.awt.event.ItemEvent e) {
                    ConfigDBDialog.this.cbxTemplateNameClicked();
			    }
			});
           
			List<String> types = TemplateFactory.getInstance().getAllTypes();
			for(String type : types){
				cbxTemplateName.addItem(type);
			}
		}
		return cbxTemplateName;
	}

	private void cbxTemplateNameClicked(){
        if(cbxTemplateName.getSelectedItem() != null){
    		IDBTemplate template = TemplateFactory.getInstance()
    				.getTemplate(cbxTemplateName.getSelectedItem().toString());
    		if(template != null){
                dataExchange(template, true);
    		}
        }
	}
	
	private void dataExchange(IDBTemplate template, boolean isToControl){
        if(isToControl){
            if(template != null){
                String templateName = (String) this.getCbxTemplateName().getSelectedItem();
                if(StringUtils.isNotEmpty(templateName) 
                        && StringUtils.isNotEmpty(template.getTemplateName())
                        && !templateName.equalsIgnoreCase(template.getTemplateName())){
                    this.getCbxTemplateName().setSelectedItem(template.getTemplateName());
                }                
                this.getTxtDriverClass().setText(template.getDriverClass());
        		this.getTxtURL().setText(template.getURL());
        		this.getTxtUserName().setText(template.getUserName());
        		this.getTxtPwd().setText(template.getPwd());                
            }
        }else{
            if(template instanceof DatabaseConfig){
                DatabaseConfig databaseConfig = (DatabaseConfig)template;
                databaseConfig.setName(this.getTxtName().getText().trim());
                databaseConfig.setTemplateName((String) this.getCbxTemplateName().getSelectedItem());
                databaseConfig.setDriverClass(this.getTxtDriverClass().getText().trim());
                databaseConfig.setURL(this.getTxtURL().getText().trim());
                databaseConfig.setUserName(this.getTxtUserName().getText().trim());
                databaseConfig.setPassword(this.getTxtPwd().getText());
            }
        }
	}
	/**
	 * This method initializes txtDriverClass	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTxtDriverClass() {
		if (txtDriverClass == null) {
			txtDriverClass = new JTextFieldEx();
			txtDriverClass.setBounds(new Rectangle(69, 76, 305, 20));
		}
		return txtDriverClass;
	}

	/**
	 * This method initializes txtURL	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTxtURL() {
		if (txtURL == null) {
			txtURL = new JTextFieldEx();
			txtURL.setBounds(new Rectangle(70, 108, 305, 20));
		}
		return txtURL;
	}

	/**
	 * This method initializes txtUserName	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTxtUserName() {
		if (txtUserName == null) {
			txtUserName = new JTextFieldEx();
			txtUserName.setBounds(new Rectangle(70, 140, 305, 20));
		}
		return txtUserName;
	}

	/**
	 * This method initializes txtPwd	
	 * 	
	 * @return javax.swing.JPasswordField	
	 */
	private JPasswordField getTxtPwd() {
		if (txtPwd == null) {
			txtPwd = new JPasswordField();
			txtPwd.setBounds(new Rectangle(69, 172, 305, 20));
		}
		return txtPwd;

⌨️ 快捷键说明

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