databasepanel.java
来自「导出ORACLE数据库对象DDL语句的程序」· Java 代码 · 共 370 行
JAVA
370 行
package com.icbcsdc.ddlexp.ui.rightPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLDatabase;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLNode;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLSchemas;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLSecurity;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLStorage;
import com.icbcsdc.ddlexp.ui.GlobalParameters;
import com.icbcsdc.ddlexp.ui.TreeFrame;
import com.icbcsdc.ddlexp.ui.dialog.SelComponent;
/**
*
* 右边窗口
*
* 显示当前数据库实例的详细信息
*
*/
public class DatabasePanel extends RightPanel {
private BorderLayout borderLayout1 = new BorderLayout();
private JPanel contentPane;
private JPanel contentPane2;
private Border border1;
private TitledBorder titledBorder1;
private GridLayout gridLayout1 = new GridLayout(5, 1, 50, 0);
private JLabel jLabel_instance,jLabel_hostip,jLabel_port,jLabel_status;
private JButton button_Component = new JButton();
private JLabel labelDesc = new JLabel("Pelese select from the under checkbox:");
private JCheckBox jCheckBox1 = new JCheckBox();
private JCheckBox jCheckBox2 = new JCheckBox();
private JCheckBox jCheckBox3 = new JCheckBox();
private JButton button_Export = new JButton();
private JButton button_AllSelect = new JButton();
private JButton button_ClearSelect = new JButton();
private Hashtable children = null;
private Enumeration enumeration = null;
private Object[][] selectedObj = new Object[3][2];
private static byte SELECT_SECURITY = 0;
private static byte SELECT_STORAGE = 1;
private static byte SELECT_SCHEMAS = 2;
XMLDatabase database = null;
public DatabasePanel(TreeFrame parent,XMLNode in_node) {
super(parent,in_node);
//this.node = in_node;
database = (XMLDatabase)in_node;
//读取子节点是否已被选择
//安全性
if(database.getDirectChildren(XMLNode.XML_SECURITY)!=null){
enumeration = database.getDirectChildren(XMLNode.XML_SECURITY).elements();
while(enumeration.hasMoreElements()){
XMLSecurity security = (XMLSecurity)enumeration.nextElement();
selectedObj[SELECT_SECURITY][0] = security.getName();
selectedObj[SELECT_SECURITY][1] = new Boolean(security.isSelected());
}
}
//存储
if(database.getDirectChildren(XMLNode.XML_STORAGE)!=null){
enumeration = database.getDirectChildren(XMLNode.XML_STORAGE).elements();
while(enumeration.hasMoreElements()){
XMLStorage storage = (XMLStorage)enumeration.nextElement();
selectedObj[SELECT_STORAGE][0] = storage.getName();
selectedObj[SELECT_STORAGE][1] = new Boolean(storage.isSelected());
}
}
//方案
if(database.getDirectChildren(XMLNode.XML_SCHEMAS)!=null){
enumeration = database.getDirectChildren(XMLNode.XML_SCHEMAS).elements();
while(enumeration.hasMoreElements()){
XMLSchemas schemas = (XMLSchemas)enumeration.nextElement();
selectedObj[SELECT_SCHEMAS][0] = schemas.getName();
selectedObj[SELECT_SCHEMAS][1] = new Boolean(schemas.isSelected());
}
}
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
border1 = BorderFactory.createEtchedBorder(SystemColor.desktop, SystemColor.activeCaptionBorder);
titledBorder1 = javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,1), "数据库基本信息", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", java.awt.Font.BOLD, 12), java.awt.Color.black);
JPanel panel1 = new JPanel();
JLabel banner1 = new JLabel("实例名:");
jLabel_instance = new JLabel("");
panel1.setLayout(new BoxLayout(panel1, BoxLayout.X_AXIS));
panel1.setBorder(BorderFactory.createEmptyBorder(10, 30, 10, 10));
panel1.add(Box.createRigidArea(new Dimension(13, 0)));
panel1.add(banner1);
panel1.add(Box.createRigidArea(new Dimension(10, 0)));
panel1.add(jLabel_instance);
JPanel panel2 = new JPanel();
JLabel banner2 = new JLabel("主机:");
jLabel_hostip = new JLabel("");
panel2.setLayout(new BoxLayout(panel2, BoxLayout.X_AXIS));
panel2.setBorder(BorderFactory.createEmptyBorder(5, 30, 10, 10));
panel2.add(Box.createRigidArea(new Dimension(26, 0)));
panel2.add(banner2);
panel2.add(Box.createRigidArea(new Dimension(10, 0)));
panel2.add(jLabel_hostip);
JPanel panel3 = new JPanel();
JLabel banner3 = new JLabel("端口:");
jLabel_port = new JLabel("");
panel3.setLayout(new BoxLayout(panel3, BoxLayout.X_AXIS));
panel3.setBorder(BorderFactory.createEmptyBorder(5, 30, 10, 10));
panel3.add(Box.createRigidArea(new Dimension(26, 0)));
panel3.add(banner3);
panel3.add(Box.createRigidArea(new Dimension(10, 0)));
panel3.add(jLabel_port);
JPanel panel4 = new JPanel();
JLabel banner4 = new JLabel("实例状态:");
jLabel_status = new JLabel(database.getStatus());
panel4.setLayout(new BoxLayout(panel4, BoxLayout.X_AXIS));
panel4.setBorder(BorderFactory.createEmptyBorder(5, 30, 10, 10));
panel4.add(banner4);
panel4.add(Box.createRigidArea(new Dimension(10, 0)));
panel4.add(jLabel_status);
contentPane = new JPanel();
contentPane.setBorder(titledBorder1);
contentPane.setLayout(gridLayout1);
contentPane.add(panel1);
contentPane.add(panel2);
contentPane.add(panel3);
contentPane.add(panel4);
labelDesc.setFont(new Font("华文细黑",Font.PLAIN,15));
labelDesc.setBounds(START_HOR,SHOW_HEIGHT*3,RIGHT_WIDTH,SHOW_HEIGHT);
this.button_Component.setText("Select Components");
this.button_Component.setBounds(0,SHOW_HEIGHT*1,170,SHOW_HEIGHT);
button_Component.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
pressSelCompnt();
}
});
//安全性
if(database.getDirectChildren(XMLNode.XML_SECURITY)!=null){
jCheckBox1.setText("Security");
jCheckBox1.setBounds(START_HOR+SHOW_HEIGHT*9,SHOW_HEIGHT*5,RIGHT_WIDTH,SHOW_HEIGHT);
if(this.selectedObj[SELECT_SECURITY][1].toString().equals("true"))
jCheckBox1.setSelected(true);
}
//存储
if(database.getDirectChildren(XMLNode.XML_STORAGE)!=null){
jCheckBox2.setText("Storage");
jCheckBox2.setBounds(START_HOR+SHOW_HEIGHT*9,SHOW_HEIGHT*7,RIGHT_WIDTH,SHOW_HEIGHT);
if(this.selectedObj[SELECT_STORAGE][1].toString().equals("true"))
jCheckBox2.setSelected(true);
}
//方案
if(database.getDirectChildren(XMLNode.XML_SCHEMAS)!=null){
jCheckBox3.setText("Schemas");
jCheckBox3.setBounds(START_HOR+SHOW_HEIGHT*9,SHOW_HEIGHT*9,RIGHT_WIDTH,SHOW_HEIGHT);
if(this.selectedObj[SELECT_SCHEMAS][1].toString().equals("true"))
jCheckBox3.setSelected(true);
}
this.button_Export.setText("Export");
this.button_Export.setBounds((RIGHT_WIDTH-330)/4,SHOW_HEIGHT*12,110,SHOW_HEIGHT+SHOW_INTERVAL);
button_Export.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
pressExport();
}
});
this.button_AllSelect.setText("All Select");
this.button_AllSelect.setBounds((RIGHT_WIDTH-330)/4*2+110,SHOW_HEIGHT*12,110,SHOW_HEIGHT+SHOW_INTERVAL);
button_AllSelect.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
allSelect(true);
}
});
this.button_ClearSelect.setText("Clear Select");
this.button_ClearSelect.setBounds((RIGHT_WIDTH-330)/4*3+220,SHOW_HEIGHT*12,120,SHOW_HEIGHT+SHOW_INTERVAL);
button_ClearSelect.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
allSelect(false);
}
});
contentPane2 = new JPanel();
contentPane2.setLayout(null);
contentPane2.add(labelDesc,null);
contentPane2.add(jCheckBox1,null);
contentPane2.add(jCheckBox2,null);
contentPane2.add(jCheckBox3,null);
// contentPane2.add(button_Component,null);
contentPane2.add(button_Export,null);
contentPane2.add(button_AllSelect,null);
contentPane2.add(button_ClearSelect,null);
this.setLayout(borderLayout1);
// this.setPreferredSize(new Dimension(GlobalParameters.RIGHT_WIDTH,GlobalParameters.RIGHT_HEIGHT));
this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
this.add(contentPane, BorderLayout.NORTH);
this.add(contentPane2, BorderLayout.CENTER);
refresh();
}
//用户进入选择数据库组件的界面
private void pressSelCompnt(){
//若component数组为空,则添加相应的内容
if(database.component == null){
//若是Oracle 9i
if(database.getVersion() == XMLDatabase.VERSION_ORACLE9I){
database.component = new Object[10][2];
for(int i=0;i<10;i++){
database.component[i][0] = i+1+"";
database.component[i][1] = new Boolean(false);
}
}else if(database.getVersion() == XMLDatabase.VERSION_ORACLE8I){
//若是Oracle 8i
database.component = new Object[5][2];
database.component[0][0] = XMLDatabase.COMPNT_8I_SPATIAL+"";
database.component[0][1] = new Boolean(false);
database.component[1][0] = XMLDatabase.COMPNT_8I_JSERVER+"";
database.component[1][1] = new Boolean(false);
database.component[2][0] = XMLDatabase.COMPNT_8I_INTERMEDIA+"";
database.component[2][1] = new Boolean(false);
database.component[3][0] = XMLDatabase.COMPNT_8I_ADVANCEDREPLICATION+"";
database.component[3][1] = new Boolean(false);
database.component[4][0] = XMLDatabase.COMPNT_8I_SQLPLUSHELP+"";
database.component[4][1] = new Boolean(false);
}else{
// Logger.log(Logger.DEBUG,"数据库未OPEN");
return;
}
}
SelComponent frame = new SelComponent(parent,database.component);
frame.pack();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dlgSize = frame.getPreferredSize();
if (dlgSize.height > screenSize.height)
dlgSize.height = screenSize.height;
if (dlgSize.width > screenSize.width)
dlgSize.width = screenSize.width;
frame.setLocation((screenSize.width - dlgSize.width) / 2, (screenSize.height - dlgSize.height) / 2);
frame.setModal(true);
frame.show();
}
private void pressExport(){
setSelect();
this.expDDL();
}
private void allSelect(boolean flag){
//全选和清除全选动作
this.jCheckBox1.setSelected(flag);
this.jCheckBox2.setSelected(flag);
this.jCheckBox3.setSelected(flag);
}
public JPanel getJPanel() {
return this;
};
/*
* 实现接口 CommonView
*
* @see console.CommView#open()
*/
public void refresh(){
jLabel_instance.setText(database.getSrvName());
if(database.getCompareStatus()==XMLNode.NO_COMPARED){
jLabel_hostip.setText(database.getIP());
}else
jLabel_hostip.setText(database.getIP()+"("+database.getSrcPosition()+"<==>"+database.getDstPosition()+")");
jLabel_port.setText(String.valueOf(database.getPort()));
XMLDatabase db = (XMLDatabase)this.node.getDatabase();
if(db!=null){
jLabel_status.setText(database.getStatus());
}
if(!this.database.getDirectChildren().hasMoreElements()){
this.button_Export.setEnabled(false);
this.button_AllSelect.setEnabled(false);
this.button_ClearSelect.setEnabled(false);
}else{
this.button_Export.setEnabled(true);
this.button_AllSelect.setEnabled(true);
this.button_ClearSelect.setEnabled(true);
}
}
public void open() {
}
public void close() {
}
/* (non-Javadoc)
* @see com.icbcsdc.ddlexp.ui.rightPanel.RightPanel#expDDL()
*/
public void expDDL() {
parent.getSelectedTree().selectedNodeExport();
}
public void setSelect(){
if(this.database.getDirectChildren(XMLNode.XML_SECURITY)!=null) ((XMLSecurity)((this.database.getDirectChildren(XMLNode.XML_SECURITY).elements())).nextElement()).setSelected(this.jCheckBox1.isSelected());
if(this.database.getDirectChildren(XMLNode.XML_STORAGE)!=null) ((XMLStorage)((this.database.getDirectChildren(XMLNode.XML_STORAGE).elements())).nextElement()).setSelected(this.jCheckBox2.isSelected());
if(this.database.getDirectChildren(XMLNode.XML_SCHEMAS)!=null) ((XMLSchemas)((this.database.getDirectChildren(XMLNode.XML_SCHEMAS).elements())).nextElement()).setSelected(this.jCheckBox3.isSelected());
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?