tabcol3_labs_panel.java

来自「导出ORACLE数据库对象DDL语句的程序」· Java 代码 · 共 334 行

JAVA
334
字号
package com.icbcsdc.ddlexp.ui.rightPanel;

import java.awt.BorderLayout;
import java.awt.Font;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.Border;
import javax.swing.table.TableColumn;

import com.icbcsdc.ddlexp.pub.xml.nodeinfo.OracleDatFile;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLConsColumn;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLConstraint;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLIndColumn;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLIndex;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLNode;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTabColumn;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTable;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTablespace;
import com.icbcsdc.ddlexp.ui.TreeFrame;
import com.icbcsdc.ddlexp.ui.model.NoEditTextArea;
import com.icbcsdc.ddlexp.ui.model.NoEdit_TableModel;

/**
 * 
 * 右边窗口内容显示
 *
 *适用对象:
 *用于显示表空间Tablespace、表Table的详细内容
 * 
 */
public class TabCol3_Labs_Panel extends RightPanel {
  private BorderLayout borderLayout = new BorderLayout();

  private JLabel labelTitle =new JLabel();
  private JLabel label1 =new JLabel();
  private JLabel label2 =new JLabel();
  private JLabel label3 =new JLabel();
  private JLabel label4 =new JLabel();
  private NoEditTextArea textarea1 =new NoEditTextArea();
  private NoEditTextArea textarea2 =new NoEditTextArea();
  private NoEditTextArea textarea3 =new NoEditTextArea();
  
  private JTable jTable_Show = new JTable();		//显示内容的Table
  private String[] columnName = new String[3];		//Table列的列头
  private int[] colLength = new int[3];				//Table列的宽度
  private static final byte COL_1 = 0;
  private static final byte COL_2 = 1;
  private static final byte COL_3 = 2;
  private NoEdit_TableModel tableModel = null;		//Table Model
  private String[][] showObj = null;

  private JScrollPane jScrollPane = new JScrollPane();

  private Border border;
  private JPanel contentPane = new JPanel();
  
  private String title = "";
  private String show1 = "";
  private String show2 = "";
  private String show3 = "";
  private String show4 = "";
  private String str1 = "";
  private String str2 = "";
  private String str3 = "";

  public TabCol3_Labs_Panel(TreeFrame parent,XMLNode in_node) {
      super(parent,in_node);
      
      switch(in_node.getType()){
      case(XMLNode.XML_TABLESPACE):
      	/*表空间*/
      	XMLTablespace tablespace = (XMLTablespace)in_node;
      	this.title = "Tablespace";
      	this.show1 = "Tbs Name:";
      	this.show2 = "Type:";
      	this.show3 = "Extent Manage:";
      	this.show4 = "    Data Files:";
      	this.str1 = tablespace.getName();
      	this.str2 = tablespace.getTsType();
      	this.str3 = tablespace.getExtentManagement();
        columnName[COL_1] = "Datafile";
        columnName[COL_2] = "Size(M)";
        columnName[COL_3] = "AutoExt";
        colLength[COL_1] = 1000;        
        colLength[COL_2] = 150;        
        colLength[COL_3] = 100;        
        //tablespace.getSqlDDL();
      	
      	ArrayList dt = (tablespace.getDatFiles());
      	if(dt.size() > 0){
      		this.showObj = new String[dt.size()][columnName.length];
	      	for(int i=0;i<dt.size();i++){
	      		OracleDatFile datfile = (OracleDatFile)(dt.get(i));
	      		showObj[i][COL_1] = datfile.getFileName();
	      		showObj[i][COL_2] = datfile.getFileSize()+"";
	      		showObj[i][COL_3] = datfile.getAutoExtent();
	      	}
      	}
      
      	break;
      	
      case(XMLNode.XML_TABLE):
      	/*表*/
      	XMLTable table = (XMLTable)in_node;
      	this.title = "Table";
    	this.show1 = "Table Name:";
    	this.show2 = "Owner:";
    	this.show3 = "Tablespace:";
    	this.show4 = "    Columns:";
    	this.str1 = table.getName();
    	this.str2 = in_node.getParent().getParent().getName();
    	this.str3 = table.getTablespace();
        columnName[COL_1] = "Column Name";
        columnName[COL_2] = "DataType";
        columnName[COL_3] = "NotNull";
        colLength[COL_1] = 1000;        
        colLength[COL_2] = 400;        
        colLength[COL_3] = 300;    
        //table.getSqlDDL();
        
        ArrayList col = table.getColumns();
        if(col.size() > 0){
//        	System.out.println("有"+col.size()+"个列");
        	this.showObj = new String[col.size()][columnName.length];
        	for(int i=0;i<col.size();i++){
        		XMLTabColumn column = (XMLTabColumn)col.get(i);
        		showObj[i][COL_1] = column.getName();
        		showObj[i][COL_2] = column.getDataType();
				showObj[i][COL_3] = column.getIsNotNull();
        	}
        }
        
      	break;

      case(XMLNode.XML_INDEX):
      	/*索引*/
      	XMLIndex index = (XMLIndex)in_node;
    	this.title = "Index";
	  	this.show1 = "Index Name:";
	  	this.show2 = "Owner:";
	  	this.show3 = "Tablespace:";
	  	this.show4 = "    Index Columns:";
	  	this.str1 = index.getName();
	  	this.str2 = in_node.getParent().getParent().getParent().getParent().getName();
	  	this.str3 = index.getTablespace();
	    columnName[COL_1] = "Column Name";
	    columnName[COL_2] = "Position";
	    columnName[COL_3] = "Descend";
        colLength[COL_1] = 1000;        
        colLength[COL_2] = 300;        
        colLength[COL_3] = 400;        
        //index.getSqlDDL();
	      
	      ArrayList indCol = index.getColumns();
	      if(indCol.size() > 0){
//	      	System.out.println("有"+indCol.size()+"个列");
	      	this.showObj = new String[indCol.size()][columnName.length];
	      	for(int i=0;i<indCol.size();i++){
	      		XMLIndColumn column = (XMLIndColumn)indCol.get(i);
	      		showObj[i][COL_1] = column.getName();
//	      		System.out.println("索引列:"+column.getColumnName());
	      		showObj[i][COL_2] = column.getColumnPosition();
				showObj[i][COL_3] = column.getDescend();
	      	}
	      }

      break;

      case(XMLNode.XML_CONSTRAINT):
      	/*约束*/
      	XMLConstraint constraint = (XMLConstraint)in_node;
    	this.title = "Constraint";
	  	this.show1 = "Constraint Name:";
	  	this.show2 = "Constraint Type:";
	  	this.show3 = "Status:";
	  	this.show4 = "    Constraint Columns:";
	  	this.str1 = constraint.getName();
	  	this.str2 = constraint.getConsType();
	  	this.str3 = constraint.getStatus();
	    columnName[COL_1] = "Table Name";
	    columnName[COL_2] = "Column Name";
	    columnName[COL_3] = "Position";
        colLength[COL_1] = 800;        
        colLength[COL_2] = 800;        
        colLength[COL_3] = 200;        
        constraint.getSqlDDL();
	      
	      ArrayList consCol = constraint.getColumns();
	      if(consCol.size() > 0){
//	      	System.out.println("有"+indCol.size()+"个列");
	      	this.showObj = new String[consCol.size()][columnName.length];
	      	for(int i=0;i<consCol.size();i++){
	      		XMLConsColumn column = (XMLConsColumn)consCol.get(i);
	      		showObj[i][COL_1] = column.getTableName();
	      		showObj[i][COL_2] = column.getName();
	      		showObj[i][COL_3] = column.getColumnPosition();
	      	}
	      }

      break;

      default:
      	break;
      }

    try {
        jbInit();
    }catch(Exception ex) {
      ex.printStackTrace();
    }
  }

  void jbInit() throws Exception {
      contentPane.setLayout(null);
      
      labelTitle.setBounds(TITLE_START_HOR,TITLE_START_VER,RIGHT_WIDTH,TITLE_HEIGHT);
      labelTitle.setFont(new Font("华文中宋",Font.PLAIN,36));
      labelTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
      
      this.label1.setBounds(START_HOR,START_VER,HEAD_LENGTH,SHOW_HEIGHT);
      label1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      
      this.textarea1.setBounds(START_HOR + HEAD_LENGTH + 1,START_VER,CONTENT_LENGTH,SHOW_HEIGHT);
      textarea1.setEditable(false);
      textarea1.setBackground(java.awt.SystemColor.activeCaptionBorder);
      textarea1.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,1));
      
      this.label2.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL),HEAD_LENGTH,SHOW_HEIGHT);
       label2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      
      this.textarea2.setBounds(START_HOR + HEAD_LENGTH + 1,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL),CONTENT_LENGTH,SHOW_HEIGHT);
      textarea2.setEditable(false);
      textarea2.setBackground(java.awt.SystemColor.activeCaptionBorder);
      textarea2.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,1));

      this.label3.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL)*2,HEAD_LENGTH,SHOW_HEIGHT);
       label3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      
      this.textarea3.setBounds(START_HOR + HEAD_LENGTH + 1,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL)*2,CONTENT_LENGTH,SHOW_HEIGHT);
      textarea3.setEditable(false);
      textarea3.setBackground(java.awt.SystemColor.activeCaptionBorder);
      textarea3.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,1));

      this.label4.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL)*4,CONTENT_LENGTH,SHOW_HEIGHT);
      
      jScrollPane.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL)*5-SHOW_INTERVAL,RIGHT_WIDTH-START_HOR*2,RIGHT_HEIGHT_CONTENT-START_VER - (SHOW_HEIGHT + SHOW_INTERVAL)*5);
      
      tableModel = new NoEdit_TableModel(this.columnName);
      jTable_Show.setModel(this.tableModel);

      jScrollPane.setViewportView(jTable_Show);
      
      contentPane.add(labelTitle,null);
      contentPane.add(label1,null);
      contentPane.add(label2,null);
      contentPane.add(label3,null);
      contentPane.add(label4,null);
      contentPane.add(textarea1,null);
      contentPane.add(textarea2,null);
      contentPane.add(textarea3,null);
      contentPane.add(jScrollPane,null);
      
      this.setLayout(borderLayout);
      this.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
      this.add(contentPane,BorderLayout.CENTER);

      this.refresh();
  }

	public JPanel getJPanel(){
	    return this;
	}; 
	    
    public void open(){
 
    }

    public void close(){
    	
    			
    }
    
    public void refresh(){
        labelTitle.setText(title);
        this.label1.setText(this.show1);
        this.label2.setText(this.show2);
        this.label3.setText(this.show3);
        this.label4.setText(this.show4);
        this.textarea1.setText(this.str1);
        this.textarea2.setText(this.str2);
        this.textarea3.setText(this.str3);
        
        this.tableModel.setData(this.showObj);
        this.setTableColumnLength();
    }
    
    private void setTableColumnLength(){
    	TableColumn column = null;
		for (int i = 0; i < this.columnName.length; i++) {
			column = this.jTable_Show.getColumnModel().getColumn(i);
			switch(i){
				case(COL_1):
					column.setPreferredWidth(colLength[COL_1]);
					break;
				case(COL_2):
					column.setPreferredWidth(colLength[COL_2]);
					break;
				case(COL_3):
					column.setPreferredWidth(colLength[COL_3]);
					break;
				default:
					break;
			}
		}
    }

	/* (non-Javadoc)
	 * @see com.icbcsdc.ddlexp.ui.rightPanel.RightPanel#expDDL()
	 */
	public void expDDL() {
		// TODO Auto-generated method stub
		
	}

 	public void setSelect(){
 	
 	}
	
}

⌨️ 快捷键说明

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