txtarea1_panel.java

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

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

import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.Border;

import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLFunction;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLNode;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLPackage;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLPackageBody;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLProcedure;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTabColComment;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTabComment;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLTrigger;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLView;
import com.icbcsdc.ddlexp.ui.TreeFrame;
import com.icbcsdc.ddlexp.ui.model.NoEditTextArea;

/**
 * 
 * 右边窗口内容显示
 *
 *适用对象:
 *用于显示视图View、触发器Trigger、函数Function、程序包Package、程序包体Package Body、存储过程Procedure的详细内容
 * 
 */
public class TxtArea1_Panel extends RightPanel {
  private BorderLayout borderLayout = new BorderLayout();

  private JLabel labelTitle =new JLabel();
  private JLabel labelName =new JLabel();
  private JLabel labelOwner =new JLabel();
  private JLabel labelText =new JLabel();
  private NoEditTextArea textareaName =new NoEditTextArea();
  private NoEditTextArea textareaOwner =new NoEditTextArea();
  private NoEditTextArea textareaText =new NoEditTextArea();
  
  private JScrollPane jScrollPane = new JScrollPane();

  private Border border;
  private JPanel contentPane = new JPanel();
  
  private String title = "";
  private String showName = "";
  private String showOwner = "";
  private String showText = "";
  private String name = "";
  private String owner = "";
  private String text = "";

  public TxtArea1_Panel(TreeFrame parent,XMLNode in_node) {
      super(parent,in_node);
      
      switch(in_node.getType()){
      case(XMLNode.XML_VIEW):
      	/*索引*/
      	XMLView view = (XMLView)in_node;
      	title = "View";
      	showName = "View Name:";
      	showOwner = "View Owner:";
      	showText = "DDL SQL:";
      	name = view.getName();
      	owner = view.getParent().getParent().getName();
      	text = view.getText();
      	//view.getSqlDDL();
      	break;
      	
      case(XMLNode.XML_TRIGGER):
      	/*触发器*/
      	XMLTrigger trigger = (XMLTrigger)in_node;
      	title = "Trigger";
      	showName = "Trigger Name:";
      	showOwner = "Trigger Owner:";
      	showText = "Trigger Body:";
      	name = trigger.getName();
      	owner = trigger.getParent().getParent().getParent().getParent().getName();
      	text = trigger.getTriggerBody();
      	//trigger.getSqlDDL();
      	break;

      case(XMLNode.XML_FUNCTION):
      	/*函数*/
      	XMLFunction function = (XMLFunction)in_node;
      	title = "Function";
      	showName = "Function Name:";
      	showOwner = "Function Owner:";
      	showText = "Function Body:";
      	name = function.getName();
      	owner = function.getParent().getParent().getParent().getName();
      	if(function.isWrapped())
      		text = "由于代码已被封装,无法显示源代码。";
      	else
      		text = function.getText();
      	//function.getSqlDDL();
      	break;

      case(XMLNode.XML_PACKAGE):
      	/*程序包*/
      	XMLPackage package0 = (XMLPackage)in_node;
      	title = "Package";
      	showName = "Package Name:";
      	showOwner = "Package Owner:";
      	showText = "Package Body:";
      	name = package0.getName();
      	owner = package0.getParent().getParent().getParent().getName();
      	if(package0.isWrapped())
      		text = "由于代码已被封装,无法显示源代码。";
      	else
      		text = package0.getText();
      	//package0.getSqlDDL();
      	break;

      case(XMLNode.XML_PACKAGEBODY):
      	/*程序包*/
      	XMLPackageBody packagebody = (XMLPackageBody)in_node;
      	title = "Package Body";
      	showName = "PackageBody Name:";
      	showOwner = "PackageBody Owner:";
      	showText = "Package Body:";
      	name = packagebody.getName();
      	owner = packagebody.getParent().getParent().getParent().getName();
      	if(packagebody.isWrapped())
      		text = "由于代码已被封装,无法显示源代码。";
      	else
      		text = packagebody.getText();
      	//packagebody.getSqlDDL();
      	break;

      case(XMLNode.XML_PROCEDURE):
      	/*存储过程*/
      	XMLProcedure procedure = (XMLProcedure)in_node;
      	title = "Procedure";
      	showName = "Procedure Name:";
      	showOwner = "Procedure Owner:";
      	showText = "Procedure Body:";
      	name = procedure.getName();
      	owner = procedure.getParent().getParent().getParent().getName();
      	if(procedure.isWrapped())
      		text = "由于代码已被封装,无法显示源代码。";
      	else
      	text = procedure.getText();
      	//procedure.getSqlDDL();
      	break;

      case(XMLNode.XML_TABCOMMENT):
      	/*表的注释*/
      	XMLTabComment comment = (XMLTabComment)in_node;
      	title = "Table Comment";
      	showName = "Table Name:";
      	showOwner = "Table Owner";
      	showText = "Table Comment:";
      	name = in_node.getTable().getName();
      	owner = in_node.getTable().getSchema().getName();
      	text = comment.getComment();
      	break;

      case(XMLNode.XML_TABCOLCOMMENT):
      	/*表列的注释*/
      	XMLTabColComment colComment = (XMLTabColComment)in_node;
      	title = "Table Column Comment";
      	showName = "Table Name:";
      	showOwner = "Column Name:";
      	showText = "Column Comment:";
      	name = in_node.getTable().getName();
      	owner = in_node.getParent().getName();
      	text = colComment.getComment();
      	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.labelName.setBounds(START_HOR,START_VER,HEAD_LENGTH,SHOW_HEIGHT);
      labelName.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      
      this.textareaName.setBounds(START_HOR + HEAD_LENGTH + 1,START_VER,CONTENT_LENGTH,SHOW_HEIGHT);
      textareaName.setEditable(false);
      textareaName.setBackground(java.awt.SystemColor.activeCaptionBorder);
      textareaName.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,1));
      
      this.labelOwner.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL),HEAD_LENGTH,SHOW_HEIGHT);
      labelOwner.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      
      this.textareaOwner.setBounds(START_HOR + HEAD_LENGTH + 1,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL),CONTENT_LENGTH,SHOW_HEIGHT);
      textareaOwner.setEditable(false);
      textareaOwner.setBackground(java.awt.SystemColor.activeCaptionBorder);
      textareaOwner.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,1));

      this.labelText.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL)*3,CONTENT_LENGTH,SHOW_HEIGHT);

      this.textareaText.setEditable(false);
      
      jScrollPane.setBounds(START_HOR,START_VER + (SHOW_HEIGHT + SHOW_INTERVAL)*4-SHOW_INTERVAL,RIGHT_WIDTH-START_HOR*2,RIGHT_HEIGHT_CONTENT-START_VER - (SHOW_HEIGHT + SHOW_INTERVAL)*4);
      jScrollPane.setViewportView(textareaText);
      
      contentPane.add(labelTitle,null);
      contentPane.add(labelName,null);
      contentPane.add(labelOwner,null);
      contentPane.add(labelText,null);
      contentPane.add(textareaName,null);
      contentPane.add(textareaOwner,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(){
        this.labelTitle.setText(title);
        this.labelName.setText(this.showName);
        this.labelOwner.setText(this.showOwner);
        this.labelText.setText(this.showText);
        
        this.textareaName.setText(this.name);
        this.textareaOwner.setText(this.owner);
        this.textareaText.setText(this.text);

    }

	/* (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 + -
显示快捷键?