mainframe.java

来自「导出ORACLE数据库对象DDL语句的程序」· Java 代码 · 共 663 行 · 第 1/2 页

JAVA
663
字号

	/**
	 * 退出
	 * 
	 * @param e
	 */
	public void jMenuFileExit_actionPerformed(ActionEvent e) {
		System.exit(0);
	}

	/**
	 * 弹出about对话框
	 * 
	 * @param e
	 */
	public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
		MainFrameAboutBox dlg = new MainFrameAboutBox(this);
		Dimension dlgSize = dlg.getPreferredSize();
		Dimension frmSize = getSize();
		Point loc = getLocation();
		dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
				(frmSize.height - dlgSize.height) / 2 + loc.y);
		dlg.setModal(true);
		dlg.pack();
		dlg.show();
	}

	//Overridden so we can exit when window is closed
	protected void processWindowEvent(WindowEvent e) {
		super.processWindowEvent(e);
		
		if (e.getID() == WindowEvent.WINDOW_CLOSING) {
			close();
			jMenuFileExit_actionPerformed(null);
		

		}
		if (e.getID() == WindowEvent.WINDOW_CLOSED) {
			close();
			jMenuFileExit_actionPerformed(null);
		

		}
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == m_run)
			jpvbutton.repaint();

	}

	/**
	 * 把窗体上添加监听器的操作集中起来
	 */
	private void addListner() {
		jMenuFileExit.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				jMenuFileExit_actionPerformed(e);
			}
		});
		jMenuHelpAbout.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				jMenuHelpAbout_actionPerformed(e);
			}
		});

		
		btnRefresh.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {
				refreshButtonCall();
			}
		});
		
		this.btnHelp.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {
				setVisible(false);
			    CompareFrame frame = CompareFrame.getInstance();
			    
			}
		});

	}

	/**
	 * 窗口关闭时必须调用的事件
	 */
	public void close(){
		Logger.log(Logger.DEBUG_INT,"主窗口退出,调用退出方法,对某些进程作清理。");
		for (int i = 0; i < this.jsp.getViewport().getComponentCount(); i++) {
			RightPanel view = (RightPanel) this.jsp.getViewport().getComponent(i);
			view.close();
		}
	}
	
	/**
	 * 调用的右面板的刷新事件
	 */
	public void refreshButtonCall(){
		Logger.log(Logger.INFO,"refreshButtonCall");
		if(this.selectedTreeView.getSelectedNode()!=null) 
			this.selectedTreeView.selectedNodeRefresh();
	}
	
	/**
	 * @return Returns the jsp.
	 */
	public  JScrollPane getJsp() {
		return jsp;
	}

	public static void main(String[] args){
		
		//设置字体
		Font font = new Font("宋体", 0, 13);
		String names[] =
		  {"Label",
		    "CheckBox",
		    "PopupMenu",
		    "TextPane",
		    "MenuItem",
		    "CheckBoxMenuItem",
		    "JRadioButtonMenuItem",
		    "ComboBox",
			"Button",
			"JButton",
		    "Tree",
		    "ScrollPane",
		    "TabbedPane",
		    "EditorPane",
		    "TitledBorder",
		    "Menu",
		    "TextArea",
		    "OptionPane",
		    "JOptionPane",
		    "MenuBar",
		    "ToolBar",
		    "ToggleButton",
		    "ToolTip",
		    "ProgressBar",
		    "TableHeader",
		    "Panel",
		    "List",
		    "ColorChooser",
		    "PasswordField",
		    "JTextField",
		    "Table",
		    "JLabel",
		    "Viewport",
		    "RadioButtonMenuItem",
		    "JTextField",
		    "JOptionPane",
		    "RadioButton" };
		for (int i = 0; i < names.length; i++)
		  UIManager.put(names[i] + ".font", font);
		
		MainFrame mainFrame=MainFrame.getInstance();

		//Center the window
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize = mainFrame.getSize();
//		if (frameSize.height > screenSize.height) {
//			frameSize.height = screenSize.height;
//		}
//		if (frameSize.width > screenSize.width) {
//			frameSize.width = screenSize.width;
//		}
		mainFrame.setLocation((screenSize.width - frameSize.width) / 2,
				(screenSize.height - frameSize.height) / 2);
	
		instance.setExtendedState(Frame.MAXIMIZED_BOTH);
		mainFrame.setResizable(true);
		mainFrame.setVisible(true);

		mainFrame.show();
		
		mainFrame.LoadDBFromInitfile();
		
	}


	/**
	 * read initial file and add databases to manager
	 * 
	 */
	public void LoadDBFromInitfile(){
		//从配置文件中读取数据库信息,删除XMLDatabase对象
		//manager.clear();
		this.selectedTreeView.managerClear();
		ConfigFile file=new ConfigFile(GlobalParameters.ddlDBConfig);
		Object[] sections = file.getAllSection();
		for(int i = 0;i < sections.length;i++){
			if(file.hasSection(sections[i].toString())){
				FileDb filedb = file.getFileDb(sections[i].toString());
//				Logger.log(Logger.DEBUG,"在树添加数据库节点:"+filedb.getDbName());
				XMLDatabase db=null;
				try {
					db=new XMLDatabase(filedb.getIP(),Integer.parseInt(filedb.getPort()),filedb.getDbName(),filedb.getUserName(),filedb.getPassword());
					addDatabase(db);
				} catch (Exception e) {
					Logger.log(Logger.ERROR,e.getMessage());
					//e.printStackTrace();
				}
				
			}else{
				continue;
			}
		}

		
	}
	
	/**
	 * Returns the tree.
	 * @return JPVTree
	public JPVTree getTree() {
		return this.treeView.getTree();
	}
	 */
	
	/**
	 * contruct JPVTree
	 * */
	private void constructTree(){
		 
		XMLManager manager= new XMLManager();
		treeView = new MyTree(manager,manager.getTree(),this);
		this.selectedTreeView=treeView;	
		//manager.addChild(db);
		//treeView.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
		//treeView.setViewportBorder(BorderFactory.createEtchedBorder());
	}


	/**
	 * contruct JPVTree
	 * */
	public void addDatabase(XMLDatabase db) throws  Exception{
		//db.setPlatform();
		//db.setVersion();
		/**	
		manager.addChild(db);
		this.selectedTreeView.getTree().addNode(db.getPVNode());
		**/
		this.selectedTreeView.addDatabase(db);
	}
	
	public void removeDatabase(PVNode db){
		//XMLManager manager= XMLManager.getInstance();
		/**
		XMLDatabase xmldb=(XMLDatabase)db.getUserObject();
		manager.removeChild(xmldb);
		this.selectedTreeView.getTree().removeNode(db);
		**/
		this.selectedTreeView.removeDatabase(db);		
	}
	
	/**
	 * Returns the treeView.
	 * @return JPVTreeView
	 */
	public MyTree getSelectedTree() {
		return selectedTreeView;
	}

	/**
	 * Sets the statusInfo.
	 * @param statusInfo The statusInfo to set
	 */
	public void setStatusInfo(String statusInfo) {
		this.statusInfo.setText(statusInfo);
	}
	
	//如果节点的信息改变,则把右侧面板上的内容移去
	public void removeRightPanel(){
		for (int i = 0; i < getJsp().getViewport()
				.getComponentCount(); i++) {
			RightPanel view = (RightPanel) getJsp()
					.getViewport().getComponent(i);
			view.close();
		}
		
	}
	
	//为Frame添加新的面板
	public void addRightPanel(RightPanel RPchoice){
		getJsp().getViewport().removeAll(); 
		//remove previous ui panel

		//this just switches between 3 different Vectors
		//and passes the one you select to the Builder pattern
		Logger.log(Logger.INFO_INT, "selectedNode:"+ this.selectedTreeView.getSelectedNode());
		setStatusInfo("Current selected node is: "+((XMLNode)this.selectedTreeView.getSelectedNode().getUserObject()).getName());

		//get one of the UIs
		getJsp().getViewport().add(RPchoice.getJPanel()); 
		
		//insert in right panel
		getJsp().getViewport().validate(); //re-layout and display
		getJsp().getViewport().repaint();
	
	}

	public void selectedNodeRefresh(){
		this.treeView.selectedNodeRefresh();
	}	
	
	public void selectedNodeExport(){
		this.treeView.selectedNodeExport();
	}
	
	/**
	 * Returns the expFile.
	 * @return File
	 */
	public File getExpFile() {
		return expFile;
	}

	/**
	 * Sets the expFile.
	 * @param expFile The expFile to set
	 */
	public void setExpFile(File expFile) {
		this.expFile = expFile;
	}

	public void setSelectedTree(MyTree tree){
		this.selectedTreeView=tree;
	}

}

⌨️ 快捷键说明

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