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

📄 typebrowserframe.java

📁 java 调用windows的api
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.jawin.browser.gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.jawin.browser.data.*;
import org.jawin.browser.tree.*;
import org.jawin.browser.util.CommonUtilities;
import org.jawin.browser.util.ExtensionFileFilter;
import java.io.File;
import org.jawin.browser.image.ImageManager;
import org.jawin.browser.xml.XMLPanel;
import org.jawin.browser.log.Log;
import org.jawin.browser.java.*;
import org.jawin.browser.info.*;
import org.jawin.browser.typelib.TypeParser;
import org.jawin.browser.xsl.*;
import org.jawin.browser.dialog.*;
import org.jawin.browser.project.*;
import org.jawin.browser.toolbar.*;
import org.jawin.browser.codegen.CodeGenerator;
import org.jawin.browser.help.HelpManager;
import org.jawin.browser.util.FileUtilities;
import org.jawin.browser.popup.PopupManager;

/**
 * Main frame for the application
 *
 * <p>Title: Jawin Code Generation GUI</p>
 * <p>Description: GUI for exploring type libraries and generating Java code</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: Open Source Incentive</p>
 *
 * @author Josh Passenger
 * @version 1.0
 */

public class TypeBrowserFrame extends JFrame implements TypeDataTreeSelectionListener
{
	private JPanel contentPane;
	private JMenuBar menuBar = new JMenuBar();
	private JMenu menuFile = new JMenu();
	private JMenuItem menuFileExit = new JMenuItem();
	private BorderLayout borderLayout1 = new BorderLayout();
	private JSplitPane splitPane = new JSplitPane();
	private JScrollPane treeScrollPane = new JScrollPane();
	private TypeDataTreeModel treeModel = new TypeDataTreeModel();
	private TypeDataTree typeDataTree = new TypeDataTree(treeModel);
	private JTabbedPane tabbedPane = new JTabbedPane();
	private InfoPanel infoPanel = new InfoPanel();
	private XMLPanel xmlPanel = new XMLPanel();
	private JavaSourcePanel javaSourcePanel = new JavaSourcePanel();
	private File libraryFile = null;
	private JMenu menuCodeGen = new JMenu();
	private JMenuItem menuCodeGenGenerateFull = new JMenuItem();
	private JMenuItem menuCodeGenSaveJava = new JMenuItem();
	private JMenuItem menuCodeGenCloseJava = new JMenuItem();
	private XSLPanel xslPanel = null;
	private TransformationPanel transformationPanel = new TransformationPanel();
	private JMenu menuTools = new JMenu();
	private JMenuItem menuToolsCodeCompletion = new JMenuItem();
	private JMenu menuProject = new JMenu();
	private JMenuItem menuProjectProperties = new JMenuItem();
	private ToolBar toolbar = new ToolBar();

	private File lastDirectory = null;

	/**
	 * Tool bar buttons
	 */
	private ToolBarButton newProjectButton = new ToolBarButton("images/newProject.png", "New project");
	private ToolBarButton openProjectButton = new ToolBarButton("images/open.png", "Open project");
	private ToolBarButton editProjectButton = new ToolBarButton("images/projectProperties.png", "Edit project properties");
	private ToolBarButton createJavaButton = new ToolBarButton("images/createJava.png", "Create code for selected node");
	private ToolBarButton saveJavaButton = new ToolBarButton("images/save.png", "Save Java files");
	private ToolBarButton closeJavaButton = new ToolBarButton("images/trash.png", "Close all Java files");
	private ToolBarButton helpButton = new ToolBarButton("images/help.png", "Show windows help");

	private ToolBarButton saveXMLButton = new ToolBarButton("images/savexml.png", "Save XML");
	private ToolBarButton saveXSLButton = new ToolBarButton("images/savexsl.png", "Save XSL stylesheet");
	private ToolBarButton openXSLButton = new ToolBarButton("images/openxsl.png", "Open XSL stylesheet");
	JMenuItem menuCodeGenerateSelected = new JMenuItem();
	JMenuItem menuProjectNewProject = new JMenuItem();
	JMenuItem menuProjectOpenProject = new JMenuItem();
	JMenuItem menuToolsSaveXML = new JMenuItem();
	JMenuItem menuToolsOpenXSL = new JMenuItem();
	JMenuItem menuToolsSaveXSL = new JMenuItem();

	public TypeBrowserFrame()
	{
		enableEvents(AWTEvent.WINDOW_EVENT_MASK);

		/**
		 * Initialize the global reference to the root frame
		 */
		FrameManager.initialize(this);

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

	private void jbInit() throws Exception
	{
		setIconImage(ImageManager.getInstance().getImage("images/icon.gif").getImage());
		xslPanel = new XSLPanel();
		contentPane = (JPanel) this.getContentPane();
		contentPane.setLayout(borderLayout1);
		setSize(new Dimension(800, 600));
		setTitle("Jawin Type Browser");
		menuFile.setText("File");
		menuFile.setMnemonic('F');
		menuFileExit.setText("Exit");
		menuFileExit.setMnemonic('x');
		menuCodeGen.setText("Code Generation");
		menuCodeGen.setMnemonic('C');
		menuCodeGenGenerateFull.setText("Generate full code");
		menuCodeGenSaveJava.setText("Save Java files");
		menuCodeGenSaveJava.setEnabled(false);
		menuCodeGenCloseJava.setText("Close all Java files");
		menuCodeGenCloseJava.setEnabled(false);
		menuTools.setText("Tools");
		menuTools.setMnemonic('T');
		menuToolsCodeCompletion.setText("Configure code completion");
		menuProject.setText("Project");
		menuProject.setMnemonic('P');
		menuProjectProperties.setEnabled(false);
		menuProjectProperties.setText("Project properties");
		menuCodeGenerateSelected.setEnabled(false);
		menuCodeGenerateSelected.setText("Generate selected node");
		menuProjectNewProject.setText("New project");
		menuProjectNewProject.setMnemonic('N');
		menuProjectOpenProject.setText("Open project");
		menuProjectOpenProject.setMnemonic('O');
		menuToolsSaveXML.setText("Save XML");
		menuToolsOpenXSL.setText("Open XSL");
		menuToolsOpenXSL.setMnemonic('O');
		menuToolsSaveXSL.setText("Save XSL");
		menuFile.add(menuFileExit);
		menuBar.add(menuFile);
		menuBar.add(menuProject);
		menuBar.add(menuCodeGen);
		menuBar.add(menuTools);
		toolbar.add(newProjectButton, null);
		toolbar.add(openProjectButton, null);
		toolbar.add(editProjectButton, null);
		editProjectButton.setEnabled(false);
		toolbar.add(createJavaButton, null);
		createJavaButton.setEnabled(false);
		toolbar.add(saveJavaButton, null);
		saveJavaButton.setEnabled(false);
		toolbar.add(closeJavaButton, null);
		closeJavaButton.setEnabled(false);
		toolbar.add(helpButton, null);
		helpButton.setEnabled(false);

		toolbar.addSeparator(new Dimension(5, 20));

		toolbar.add(saveXMLButton, null);
		toolbar.add(openXSLButton, null);
		toolbar.add(saveXSLButton, null);

		contentPane.add(toolbar, BorderLayout.NORTH);
		contentPane.add(splitPane, BorderLayout.CENTER);
		splitPane.add(treeScrollPane, JSplitPane.LEFT);
		splitPane.add(tabbedPane, JSplitPane.RIGHT);
		treeScrollPane.getViewport().add(typeDataTree);
		menuCodeGen.add(menuCodeGenGenerateFull);
		menuCodeGen.add(menuCodeGenerateSelected);
		menuCodeGen.add(menuCodeGenSaveJava);
		menuCodeGen.add(menuCodeGenCloseJava);
		menuTools.add(menuToolsSaveXML);
		menuTools.addSeparator();
		menuTools.add(menuToolsOpenXSL);
		menuTools.add(menuToolsSaveXSL);
		menuTools.addSeparator();
		menuTools.add(menuToolsCodeCompletion);
		menuProject.add(menuProjectNewProject);
		menuProject.add(menuProjectOpenProject);
		menuProject.addSeparator();
		menuProject.add(menuProjectProperties);

		tabbedPane.addTab(" Info ", ImageManager.getInstance().getImage("images/tab.png"), infoPanel);
		tabbedPane.addTab(" Code ", ImageManager.getInstance().getImage("images/tab.png"), javaSourcePanel);

		tabbedPane.addTab("  XML  ", ImageManager.getInstance().getImage("images/tab.png"), xmlPanel);
		tabbedPane.addTab("  XSL  ", ImageManager.getInstance().getImage("images/tab.png"), xslPanel);
		tabbedPane.addTab("Transform", ImageManager.getInstance().getImage("images/tab.png"), transformationPanel);

		setJMenuBar(menuBar);

		registerListeners();
		splitPane.setDividerLocation(250);
	}

	private void registerListeners()
	{
		menuFileExit.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				exit();
			}
		});


		openProjectButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				openProject();
			}
		});

		newProjectButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				newProject();
			}
		});

		menuCodeGenGenerateFull.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				generateAllJavaCode();
			}
		});

		menuCodeGenerateSelected.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				generateSelectedJavaCode();
			}
		});

		menuCodeGenSaveJava.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveJavaFiles();
			}
		});

		menuCodeGenCloseJava.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				closeJavaFiles();
			}
		});

		menuToolsCodeCompletion.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				configureCodeCompletion();
			}
		});

		transformationPanel.addComponentListener(new java.awt.event.ComponentAdapter()
		{
			public void componentShown(ComponentEvent e)
			{
				performInlineTransformation();
			}
		});

		menuProjectProperties.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				editProjectProperties();
			}
		});

		editProjectButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				editProjectProperties();
			}
		});


		menuProjectNewProject.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				newProject();
			}
		});

		menuProjectOpenProject.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				openProject();
			}
		});

		createJavaButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				generateSelectedJavaCode();
			}
		});

		helpButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				showHelp();
			}
		});

		saveJavaButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveJavaFiles();
			}
		});

		closeJavaButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				closeJavaFiles();
			}
		});

		saveXMLButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveXML();
			}
		});

		openXSLButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				openXSL();
			}
		});

		saveXSLButton.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveXSL();
			}
		});

		menuToolsSaveXML.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveXML();
			}
		});

		menuToolsOpenXSL.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				openXSL();
			}
		});

		menuToolsSaveXSL.addActionListener(new java.awt.event.ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				saveXSL();
			}
		});



		typeDataTree.addTypeDataTreeSelectionListener(xmlPanel);
		typeDataTree.addTypeDataTreeSelectionListener(infoPanel);
		typeDataTree.addTypeDataTreeSelectionListener(this);
		typeDataTree.addTypeDataTreeSelectionListener(PopupManager.getInstance());
	}


	private void exit()
	{
		System.exit(0);
	}

	protected void processWindowEvent(WindowEvent e)
	{
		super.processWindowEvent(e);
		if (e.getID() == WindowEvent.WINDOW_CLOSING)
		{
			exit();
		}
	}

	public void show()
	{
		center();
		super.show();
	}

	private void center()
	{
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize = getSize();

		if (frameSize.height > screenSize.height)
		{
			frameSize.height = screenSize.height;
		}

⌨️ 快捷键说明

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