⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtdbmenubar.java

📁 TestDataBuilder是一个采用Java编写的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.testDataBuilder.ui.main.others;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import com.testDataBuilder.config.TestDataConfig;
import com.testDataBuilder.resources.RM;
import com.testDataBuilder.ui.help.Helper;
import com.testDataBuilder.ui.main.MainFrame;
import com.testDataBuilder.ui.project.ProjectInfo;
import com.testDataBuilder.ui.project.RecentProjects;


public class JTDBMenuBar extends JMenuBar {

    static Logger logger = Logger.getLogger(JTDBMenuBar.class);
    
	private MainFrame parent;
    
    private JMenu projectMenu;
    private JMenu databaseMenu;
    private JMenu roleMenu;
    private JMenu windowMenu;    
    private JMenu helpMenu;
    
    public boolean hasWorkspace = false;
    
    public void setHasWorkspace(boolean hasWorkspace){
        if(this.hasWorkspace != hasWorkspace){
            this.hasWorkspace = hasWorkspace;
            this.setMenuState();
        }
    }
    
    private void setMenuState(){
        this.getCloseProjectItem().setEnabled(hasWorkspace);
        this.getOpenProjectInExplorerItem().setEnabled(hasWorkspace);
        this.getDefaultConnectionItem().setEnabled(hasWorkspace);
        this.getAddConnectionMenuItem().setEnabled(hasWorkspace);
        this.getConfigMenuItem().setEnabled(hasWorkspace);
        this.getConnectMenuItem().setEnabled(hasWorkspace);
        this.getDisConnectItem().setEnabled(hasWorkspace);
        this.getConnectAllMenuItem().setEnabled(hasWorkspace);
        this.getDisconnectAllMenuItem().setEnabled(hasWorkspace);
        this.getRoleWindowItem().setEnabled(hasWorkspace);
        this.getGenerateItem().setEnabled(hasWorkspace);
    }
    
    public JTDBMenuBar(MainFrame parent){
        this.parent = parent;     
        this.add(getProjectMenu());
        this.add(getDatabaseMenu());
        this.add(getRoleMenu());
        this.add(getWindowMenu());
        this.add(getHelpMenu());
        setMenuState();
    }
    
    public JMenu getHelpMenu(){
        if(helpMenu == null){
            helpMenu = new JMenu(R("label.JTDBMenuBar.menu.help"));
            
            //帮助主题
            JMenuItem subjectItem = new JMenuItem(R("label.JTDBMenuBar.menu.help.content"));
//            subjectItem.addActionListener(new ActionListener(){
//                public void actionPerformed(ActionEvent e) {
//                    JTDBMenuBar.this.parent.showHelp();
//                }                
//            });
            subjectItem.addActionListener(Helper.getInstance().getHelpListener());
            
            helpMenu.add(subjectItem);
            
            helpMenu.addSeparator();
            
            JMenuItem autoUpgradeItem = new JMenuItem(R("label.JTDBMenuBar.menu.help.autoUpgrade"));
            autoUpgradeItem.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e) {
                    JTDBMenuBar.this.parent.showUpgradeDialog();
                }
                
            });
            helpMenu.add(autoUpgradeItem);
            
            helpMenu.addSeparator();
            //关于
            JMenuItem aboutItem = new JMenuItem(R("label.JTDBMenuBar.menu.help.about"));
            aboutItem.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e) {
                   JTDBMenuBar.this.parent.showAboutDialog();
                }
            });
            helpMenu.add(aboutItem);
        }
        return helpMenu;
    }
    
    private JMenu getWindowMenu(){
        if(windowMenu == null){
            windowMenu = new JMenu(R("label.JTDBMenuBar.menu.window"));
            
            //QueryConsole            
            windowMenu.add(getQueryConsoleWindowItem());            
            //DataModel            
            windowMenu.add(getDataModelItem());            
            //DataExchanger            
            windowMenu.add(getDataExchangerItem());            
            windowMenu.addSeparator();            
            //Preference            
            windowMenu.add(getPreferenceItem());
            
            windowMenu.addSeparator();     
            windowMenu.add(getSysPropertyItem());
            
        }
        return windowMenu;
    }
    
    public JMenu getRoleMenu(){
        if(roleMenu == null){
            roleMenu = new JMenu(R("label.JTDBMenuBar.menu.role"));
            
            roleMenu.add(getRoleWindowItem());
            roleMenu.addSeparator();
            roleMenu.add(getGenerateItem());
        }
        return roleMenu;
    }
    
    private JMenu getDatabaseMenu(){
    	if(databaseMenu == null){
    		databaseMenu = new JMenu(R("label.JTDBMenuBar.menu.database"));
    		//重新连接           
            databaseMenu.add(getDefaultConnectionItem());
            databaseMenu.addSeparator();
            databaseMenu.add(getAddConnectionMenuItem());
            databaseMenu.add(getConfigMenuItem());
            
            databaseMenu.add(getConnectMenuItem());
            databaseMenu.add(getDisConnectItem());
            
            databaseMenu.addSeparator();
            databaseMenu.add(getConnectAllMenuItem());
            databaseMenu.add(getDisconnectAllMenuItem());
    	}
    	return databaseMenu;
    }
    
    private JMenu getProjectMenu(){
        if(projectMenu == null){
            projectMenu = new JMenu(R("label.JTDBMenuBar.menu.project"));
            projectMenu.addMouseListener(new MouseAdapter(){
                @Override
                public void mouseClicked(MouseEvent e) {
                    JTDBMenuBar.this.projectMenuMouseClicked(e);
                }
            });
            
            //新建            
            projectMenu.add(getNewProjectItem());
            //打开           
            projectMenu.add(getOpenProjectItem());
            //关闭            
            projectMenu.add(getCloseProjectItem());             
            //在Explorer文件浏览器中查看工程
            projectMenu.add(getOpenProjectInExplorerItem());

            recentProjectBeginPos = projectMenu.getItemCount();
            
            addRecentProjectMenuItem(projectMenu);
            
            projectMenu.addSeparator();
            
            projectMenu.add(getExitItem());
            
        }
        return projectMenu;
    }

    int recentProjectBeginPos = 0;
    
    protected void projectMenuMouseClicked(MouseEvent e) {
        if(RecentProjects.getInstance().isChanged()){
        	RecentProjects.getInstance().setChanged(false);
            for(int i=recentProjectBeginPos;i <  projectMenu.getItemCount() -2;){
                projectMenu.remove(i);
            }
            addRecentProjectMenuItem(projectMenu);
            projectMenu.updateUI();
        }
    }

    protected void addRecentProjectMenuItem(JMenu menu){
        List<JMenuItem> recentProjectsMenuItems =  getRecentProjectsMenuItems();
        if(recentProjectsMenuItems != null){           
            menu.add(new JPopupMenu.Separator(), recentProjectBeginPos);
            for(int i=0; i<recentProjectsMenuItems.size(); i++ ){
                menu.insert(recentProjectsMenuItems.get(i), i + recentProjectBeginPos + 1);
            }
        }        
    }
    
    public List<JMenuItem> getRecentProjectsMenuItems(){
        List<JMenuItem> recentProjectMenuList = null;
        RecentProjects recentProjects = RecentProjects.getInstance();
        if(recentProjects != null && recentProjects.getRecentProjectList().size() > 0){
            recentProjectMenuList = new ArrayList<JMenuItem>();
            for(ProjectInfo projectInfo : recentProjects.getRecentProjectList()){
                
                StringBuffer menuText = new StringBuffer(projectInfo.getProjectName());
                menuText.append("  [");
                if(projectInfo.getProjectPath().length() < 30){
                    menuText.append(projectInfo.getProjectPath());
                }else{
                    menuText.append(StringUtils.left(projectInfo.getProjectPath(), 27) + "...");
                }
                menuText.append("]");
                JMenuItem recProjectMenuItem = new JMenuItem(menuText.toString());
                recProjectMenuItem.setToolTipText(projectInfo.getProjectPath());
                recProjectMenuItem.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                        JMenuItem menuItem = (JMenuItem)e.getSource(); 
                        JTDBMenuBar.this.parent.openProject(menuItem.getToolTipText());
                    }                    
                });
                recentProjectMenuList.add(recProjectMenuItem);
            }
        }
        
        return recentProjectMenuList;
    }
    
    public JPopupMenu getDBPopupMenu(){
        JPopupMenu root = new JPopupMenu("database");
        
        root.add(getAutoConfigAllMenuItem());
        root.add(getDeleteAllConfigMenuItem());
        
        return root;
    }
    
    public JPopupMenu getConnectionPoolPopupMenu(){
        JPopupMenu root = new JPopupMenu("connPool");
        
        root.add(getAddConnectionMenuItem());
        root.add(getConnectAllMenuItem());  
        root.add(getDisconnectAllMenuItem());
        
        return root;
    }
    
    public JPopupMenu getConnectionPopupMenu(){
        JPopupMenu root = new JPopupMenu("connPool");
        
        root.add(getConfigMenuItem());        
        root.add(getDeleteConfigMenuItem());
        root.add(getConnectMenuItem());
        root.add(getDisConnectItem());
        
        return root;
    }
   
    //[start]menuItem.

    
    //Build
    JMenuItem  generateItem = null;
    public JMenuItem getGenerateItem(){
        if(generateItem == null){
            generateItem = new JMenuItem(R("label.JTDBMenuBar.menu.role.generateData"));
            generateItem.addActionListener(new ActionListener(){
    
                public void actionPerformed(ActionEvent e) {
                    JTDBMenuBar.this.parent.showGeneateDateDialog();
                }
                
            });
        }
        return generateItem;
    }
    
    //project
    JMenuItem newProjectItem = null;
    public JMenuItem getNewProjectItem(){
        if(newProjectItem == null){
            newProjectItem = new JMenuItem(R("label.JTDBMenuBar.menu.project.new"));
            newProjectItem.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e) {
                    JTDBMenuBar.this.parent.createProject();

⌨️ 快捷键说明

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