tabcol3_panel.java

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

JAVA
368
字号
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.OracleObjPrivs;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.OracleRole;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.OracleSysPrivs;
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.XMLRoleGrantedObjPrivs;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLRoleGrantedRoles;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLRoleGrantedSysPrivs;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTabColumn;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTable;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLUserGrantedObjPrivs;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLUserGrantedRoles;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLUserGrantedSysPrivs;
import com.icbcsdc.ddlexp.ui.TreeFrame;
import com.icbcsdc.ddlexp.ui.model.NoEdit_TableModel;

/**
 * 
 * 右边窗口内容显示
 *
 *适用对象:
 *用于显示用户被授予的对象权限、系统权限、角色的详细内容
 * 
 */
public class TabCol3_Panel extends RightPanel {
  private BorderLayout borderLayout = new BorderLayout();

  private JLabel labelTitle =new JLabel();

  private JTable jTable_Show = new JTable();		//显示内容的Table
  private String[] columnName = null;		//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 = "";

  public TabCol3_Panel(TreeFrame parent,XMLNode in_node) {
      super(parent,in_node);
      
      switch(in_node.getType()){
      case(XMLNode.XML_USER_GRANTED_OBJ_PRIVS):
      	/*用户被授予对象权限*/
      	XMLUserGrantedObjPrivs usrObjPriv = (XMLUserGrantedObjPrivs)in_node;
    	this.title = "Granted Object Privileges";

    	columnName = new String[2];
    	columnName[COL_1] = "Object Privilege";
    	columnName[COL_2] = "Grantable Option";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 400;        

    	ArrayList usrObjprivs = (usrObjPriv.getObjPrivs());
//		System.out.println("有"+usrObjprivs.size()+"个对象权限");
    	if(usrObjprivs.size() > 0){
    		this.showObj = new String[usrObjprivs.size()][columnName.length];
	      	for(int i=0;i<usrObjprivs.size();i++){
	      		OracleObjPrivs objpriv = (OracleObjPrivs)(usrObjprivs.get(i));
	      		showObj[i][COL_1] = objpriv.getName();
	      		showObj[i][COL_2] = objpriv.getGrantable();
	      	}
    	}
      	break;
      
      case(XMLNode.XML_USER_GRANTED_SYS_PRIVS):
      	/*用户被授予系统权限*/
      	XMLUserGrantedSysPrivs usrSysPriv = (XMLUserGrantedSysPrivs)in_node;
  		this.title = "Granted System Privileges";

  		columnName = new String[2];
  		columnName[COL_1] = "System Privilege";
  		columnName[COL_2] = "Grantable Option";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 400;        

    	ArrayList usrSysprivs = (usrSysPriv.getSysPrivs());
//		System.out.println("有"+usrSysprivs.size()+"个系统权限");
    	if(usrSysprivs.size() > 0){
    		this.showObj = new String[usrSysprivs.size()][columnName.length];
	      	for(int i=0;i<usrSysprivs.size();i++){
	      		OracleSysPrivs syspriv = (OracleSysPrivs)(usrSysprivs.get(i));
	      		showObj[i][COL_1] = syspriv.getName();
	      		showObj[i][COL_2] = syspriv.getAdminOption();
	      	}
    	}
  		break;
      
      case(XMLNode.XML_USER_GRANTED_ROLE):
      	/*用户被授予角色*/
      	XMLUserGrantedRoles usrGntrole = (XMLUserGrantedRoles)in_node;
    	this.title = "User Granted Roles";
    	
    	columnName = new String[3];
    	columnName[COL_1] = "Role";
    	columnName[COL_2] = "Grantable Option";
    	columnName[COL_3] = "Default";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 450;        
    	colLength[COL_3] = 400;        

    	ArrayList roleRoles = (usrGntrole.getGrantedRoles());
//		System.out.println("有"+roleRoles.size()+"个系角色");
    	if(roleRoles.size() > 0){
    		this.showObj = new String[roleRoles.size()][columnName.length];
	      	for(int i=0;i<roleRoles.size();i++){
	      		OracleRole role = (OracleRole)(roleRoles.get(i));
	      		showObj[i][COL_1] = role.getName();
	      		showObj[i][COL_2] = role.getAdminOption();
	      		showObj[i][COL_3] = role.getDefaultRole();
	      	}
    	}
    	
    	break;
    	
      case(XMLNode.XML_ROLE_GRANTED_OBJ_PRIVS):
      	/*角色被授予对象权限*/
      	XMLRoleGrantedObjPrivs roleObjPriv = (XMLRoleGrantedObjPrivs)in_node;
    	this.title = "Granted Object Privileges";

    	columnName = new String[2];
    	columnName[COL_1] = "Object Privilege";
    	columnName[COL_2] = "Grantable Option";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 400;        

    	ArrayList roleObjprivs = (roleObjPriv.getObjectPrivs());
//		System.out.println("有"+roleObjprivs.size()+"个对象权限");
    	if(roleObjprivs.size() > 0){
    		this.showObj = new String[roleObjprivs.size()][columnName.length];
	      	for(int i=0;i<roleObjprivs.size();i++){
	      		OracleObjPrivs objpriv = (OracleObjPrivs)(roleObjprivs.get(i));
	      		showObj[i][COL_1] = objpriv.getName();
	      		showObj[i][COL_2] = objpriv.getGrantable();
	      	}
    	}
      	break;
      
      case(XMLNode.XML_ROLE_GRANTED_SYS_PRIVS):
      	/*角色被授予系统权限*/
      	XMLRoleGrantedSysPrivs roleSysPriv = (XMLRoleGrantedSysPrivs)in_node;
  		this.title = "Granted System Privileges";

  		columnName = new String[2];
  		columnName[COL_1] = "System Privilege";
  		columnName[COL_2] = "Grantable Option";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 400;        

    	ArrayList roleSyspriv = (roleSysPriv.getSysPrivs());
//		System.out.println("有"+roleSyspriv.size()+"个系统权限");
    	if(roleSyspriv.size() > 0){
    		this.showObj = new String[roleSyspriv.size()][columnName.length];
	      	for(int i=0;i<roleSyspriv.size();i++){
	      		OracleSysPrivs syspriv = (OracleSysPrivs)(roleSyspriv.get(i));
	      		showObj[i][COL_1] = syspriv.getName();
	      		showObj[i][COL_2] = syspriv.getAdminOption();
	      	}
    	}
  		break;
      
      case(XMLNode.XML_ROLE_GRANTED_ROLE):
      	/*角色被授予角色*/
      	XMLRoleGrantedRoles roleGntrole = (XMLRoleGrantedRoles)in_node;
    	this.title = "Role Granted Roles";
    	
    	columnName = new String[3];
    	columnName[COL_1] = "Role";
    	columnName[COL_2] = "Grantable Option";
    	columnName[COL_3] = "Default";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 450;        
    	colLength[COL_3] = 400;        

    	ArrayList roleRole = (roleGntrole.getGrantedRoles());
//		System.out.println("有"+roleRole.size()+"个系角色");
    	if(roleRole.size() > 0){
    		this.showObj = new String[roleRole.size()][columnName.length];
	      	for(int i=0;i<roleRole.size();i++){
	      		OracleRole role = (OracleRole)(roleRole.get(i));
	      		showObj[i][COL_1] = role.getName();
	      		showObj[i][COL_2] = role.getAdminOption();
	      		showObj[i][COL_3] = role.getDefaultRole();
	      	}
    	}
    	
    	break;

    	
      case(XMLNode.XML_TABCOLUMNS):
      	/*表列*/
    	this.title = "Table Columns";    	
    	columnName = new String[3];
    	columnName[COL_1] = "Column Name";
    	columnName[COL_2] = "DataType";
    	columnName[COL_3] = "Not Null";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 450;        
    	colLength[COL_3] = 400;        

        ArrayList col = ((XMLTable)in_node.getParent()).getColumns();
        if(col.size() > 0){
        	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_INDCOLUMNS):
      	/*索引列*/
    	this.title = "Index Columns";    	
    	columnName = new String[3];
    	columnName[COL_1] = "Column Name";
    	columnName[COL_2] = "Position";
    	columnName[COL_3] = "Descend";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 1000;        
    	colLength[COL_3] = 400;        

        ArrayList indcol = ((XMLIndex)in_node.getParent()).getColumns();
        if(indcol.size() > 0){
        	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();
        		showObj[i][COL_2] = column.getColumnPosition();
				showObj[i][COL_3] = column.getDescend();
        	}
        }
    	break;

      case(XMLNode.XML_CONSCOLUMNS):
      	/*约束列*/
    	this.title = "Constraint Columns";    	
    	columnName = new String[3];
    	columnName[COL_1] = "Table Name";
    	columnName[COL_2] = "Column Name";
    	columnName[COL_3] = "Position";
    	colLength[COL_1] = 1000;        
    	colLength[COL_2] = 450;        
    	colLength[COL_3] = 400;        

        ArrayList concol = ((XMLConstraint)in_node.getParent()).getColumns();
        if(concol.size() > 0){
        	this.showObj = new String[concol.size()][columnName.length];
        	for(int i=0;i<concol.size();i++){
        		XMLConsColumn column = (XMLConsColumn)concol.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);
      
      jScrollPane.setBounds(START_HOR,START_VER,RIGHT_WIDTH-START_HOR*2,RIGHT_HEIGHT_CONTENT-START_VER - SHOW_INTERVAL);
      
      tableModel = new NoEdit_TableModel(this.columnName);
      jTable_Show.setModel(this.tableModel);

      jScrollPane.setViewportView(jTable_Show);
      
      contentPane.add(labelTitle,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.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 + -
显示快捷键?