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

📄 wizardframe.java

📁 数据仓库工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.webdocwf.util.loader.wizard;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.UIManager;


public class WizardFrame extends JFrame {
	private WizardFrame wizardFrame;
	private JDesktopPane desktop;
	private JPopupMenu popUp;
	private static boolean startOctopusLoader = false;
	private static String pathToXmlFile = "";
	private static boolean startOctopusProject = false;
	private static String pathToProjectFile = "";
	private static String confJarStructure = "";
	private static int defaultProjectNameCounter = 1;
	private static final String DEFAULT_PROJECT_NAME = "Untitled project";

	public WizardFrame(String title) {
		super(title);
		wizardFrame = this;
		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		desktop = new JDesktopPane();
		setContentPane(desktop);

		// Install our custom desktop manager.
		//ZK commented this
		//desktop.setDesktopManager(new SampleDesktopMgr());
		desktop.setBackground(new Color(210, 210, 210));

		createMenuBar();
		createPopupMenu();

		if (startOctopusLoader) {
			try {
				OctopusProjectFrame octopusProject = createOctopusProjectFrame(DEFAULT_PROJECT_NAME+defaultProjectNameCounter++);
				//redefine settings
				octopusProject.getLoaderPanel().setOctopusLoaderInit(
					new OctopusLoaderData(),
					pathToXmlFile,
					confJarStructure);
				octopusProject.setActiveTab(1);
				desktop.add(octopusProject);
				octopusProject.setVisible(true);
				octopusProject.requestFocus();
			} catch (Exception ex) {
				String message = "Error while starting OctopusWizard . Message : ";
				message += ex.getMessage();
				JOptionPane.showMessageDialog(desktop, message + "\n", "Error", 0);
				System.exit(0);
			}
		} else if( startOctopusProject ) {
				try {
				OctopusProperties properties = new OctopusProperties();
				InputStream is=new FileInputStream(pathToProjectFile);
		 		properties.load(is);
				String name = properties.getOctopusProperty("ProjectName");
				if (name == null || name.trim().equals(""))
									name = DEFAULT_PROJECT_NAME+defaultProjectNameCounter++;
				OctopusProjectFrame octopusProject = createOctopusProjectFrame(name);
				confJarStructure = properties.getOctopusProperty("Generator.ConfJarStructure");
				OctopusGeneratorData generatorData = new OctopusGeneratorData(confJarStructure);
				
				//set data
				setGeneratorData(properties,generatorData);
				
				octopusProject.getGeneratorPanel().setOctopusGeneratorInit(
					generatorData,
					confJarStructure);
				//set data
				OctopusLoaderData loaderData = new OctopusLoaderData();
				setLoaderData(properties,loaderData);
//				
								
				
				octopusProject.getLoaderPanel().setOctopusLoaderInit(
					loaderData,
					null,
					confJarStructure);
				
				desktop.add(octopusProject);
				octopusProject.setVisible(true);
				octopusProject.requestFocus();
			} catch (Exception ex) {
				String message = "Error while starting OctopusWizard . Message : ";
				message += ex.getMessage();
				JOptionPane.showMessageDialog(desktop, message + "\n", "Error", 0);
				System.exit(0);
			}
		}
	}

	protected void createMenuBar() {
		JMenuBar mb = new JMenuBar();
		JMenu menu = new JMenu("Project");
		menu.setMnemonic('P');
		JMenu menu2 = new JMenu("IDEOptions");
		menu2.setMnemonic('I');
		JMenu menu3 = new JMenu("Help");
		menu3.setMnemonic('H');

		menu.add(new NewOctopusProjectItem()); // add Octopus Project frame as new project
		menu.add(new OpenOctopusProjectItem()); // add Octopus Project frame as open project
		menu.add(new ExitOctopusApplicationItem()); // add exit
		menu2.add(new LnFActionMetal()); // add look and feel option
		menu2.add(new LnFActionMotif());
		menu2.add(new LnFActionWindows());
		menu2.add(new LnFActionJava());
		menu3.add(new OctopusHelpAction("Help"));
		menu3.addSeparator();
		menu3.add(new OctopusAboutAction());

		setJMenuBar(mb);
		mb.add(menu);
		mb.add(menu2);
		mb.add(menu3);
	}


	public void createPopupMenu() {
		JMenuItem menuItem;

		//Create the popup menu.
		JPopupMenu popup = new JPopupMenu();
		JMenuItem popupItem = new JMenuItem("Start new Octopus project");
		popupItem.setAction(new NewOctopusProjectItem());
		JMenuItem popupItem2 = new JMenuItem("Open existing Octopus project");
		popupItem2.setAction(new OpenOctopusProjectItem());
		JMenuItem popupItem3 = new JMenuItem("Exit Octopus Application");
		popupItem3.setAction(new ExitOctopusApplicationItem());

		popup.add(popupItem);
		popup.add(popupItem2);
		popup.add(popupItem3);

		//Add listener to the destop area so the popup menu can come up.
		MouseListener popupListener = new PopupListener(popup);
		desktop.addMouseListener(popupListener);
	}

	public static void main(String[] args) {

		OctopusSplash octopusSplash = new OctopusSplash("splash_octopus.gif", null);

		if (args.length > 0 && args.length < 5) {
			for (int i = 0; i < args.length - 1; i = i + 1) {
				if (args[i].equalsIgnoreCase("-sol")) {
					pathToXmlFile = args[++i];
					if (!pathToXmlFile.equalsIgnoreCase(""))
						startOctopusLoader = true;
				}
				if (args[i].equalsIgnoreCase("-sop")) {
					pathToProjectFile = args[++i];
					if (!pathToProjectFile.equalsIgnoreCase(""))
						startOctopusProject = true;
				}
				if (args[i].equalsIgnoreCase("-cjs")) {
					confJarStructure = args[++i];
				}
			}
		}
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			e.printStackTrace();
		}
		WizardFrame wizardFrame = new WizardFrame("Enhydra Octopus Application");

//		wizardFrame.addWindowListener(new WindowAdapter() {
//			public void windowClosing(WindowEvent we) {
//				System.exit(0);
//			}
//		});

		wizardFrame.setIconImage(
			new ImageIcon(WizardFrame.class.getResource("images/Enhydra16.gif")).getImage());

		Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
		wizardFrame.setBounds(0, 0, dimension.width - 20, dimension.height - 40);

		try {
			Thread.sleep(2500);
		} catch (Exception e) {
			e.printStackTrace();
		}
		OctopusSplash.getSplash().hideSplash();
		octopusSplash = null;
		wizardFrame.setVisible(true);
	}

	private OctopusProjectFrame createOctopusProjectFrame(String name) throws Exception {
		
		//create menu
		JMenuBar mb = new JMenuBar();
		JMenu menu = new JMenu("Application");
		menu.setMnemonic('A');
		JMenuItem startGenerator = new JMenuItem("Start Generator");
		JMenuItem startLoader = new JMenuItem("Start Loader");
		JMenuItem save = new JMenuItem("Save project");
		JMenuItem stop = new JMenuItem("Close project");
		JMenuItem help = new JMenuItem("Help");
		menu.add(startGenerator);
		menu.add(startLoader);
		menu.addSeparator();
		menu.add(save);
		menu.add(stop);
		menu.addSeparator();
		menu.add(help);
		mb.add(menu); 
		
		//create toolbar
		JButton startGeneratorButton =
					OctopusProjectFrame.createOctopusButton(
						"Start Generator",
						OctopusGeneratorPanel.toolBarButton);
		JButton startLoaderButton =
			OctopusProjectFrame.createOctopusButton(
				"Start Loader",
				OctopusGeneratorPanel.toolBarButton);
		JButton stopButton =
			OctopusProjectFrame.createOctopusButton("Stop", OctopusGeneratorPanel.toolBarButton);
		JButton saveButton =
			OctopusProjectFrame.createOctopusButton("Save", OctopusGeneratorPanel.toolBarButton);
		JButton helpButton =
			OctopusProjectFrame.createOctopusButton("Help", OctopusGeneratorPanel.toolBarButton);
		JToolBar toolBar = new JToolBar("Octopus toolbar");
		toolBar.add(startGeneratorButton);
//		toolBar.addSeparator();
		toolBar.add(startLoaderButton);
		toolBar.addSeparator();
		toolBar.add(saveButton);
//		toolBar.addSeparator();
		toolBar.add(stopButton);
		toolBar.addSeparator();
		toolBar.add(helpButton);
		//create generator panel
		OctopusGeneratorPanel generatorPanel = new OctopusGeneratorPanel();
		generatorPanel.setOctopusGeneratorInit(
			new OctopusGeneratorData(confJarStructure),
			confJarStructure);
		//create loader panel
		OctopusLoaderPanel loaderPanel = new OctopusLoaderPanel();
		loaderPanel.setOctopusLoaderInit(new OctopusLoaderData(), null, confJarStructure);
		//create octopus project frame
		OctopusProjectFrame octopusProject =
			new OctopusProjectFrame(name, loaderPanel, generatorPanel, toolBar);
		octopusProject.getRootPane().setJMenuBar(mb);
		//set actions for menu
		startGenerator.setAction(new StartOctopusGeneratorAction(octopusProject, "Start Generator"));
		startLoader.setAction(new StartOctopusLoaderAction(octopusProject, "Start Loader"));
		stop.setAction(new CloseOctopusProjectAction(octopusProject, "Close"));
		save.setAction(new SaveProjectAction(octopusProject, "Save"));
		help.setAction(new OctopusHelpAction("Help"));
		//set actions for toolbar
		startGeneratorButton.setAction(new StartOctopusGeneratorAction(octopusProject, ""));
		startLoaderButton.setAction(new StartOctopusLoaderAction(octopusProject, ""));
		stopButton.setAction(new CloseOctopusProjectAction(octopusProject, ""));
		saveButton.setAction(new SaveProjectAction(octopusProject, ""));
		helpButton.setAction(new OctopusHelpAction(""));
		//return frame
		return octopusProject;
	}

	private class ExitOctopusApplicationItem extends AbstractAction {
		/**
		 * Action which creates new frame
		 */
		public ExitOctopusApplicationItem() {
			putValue(NAME, "Exit");
			putValue(
				ACCELERATOR_KEY,
				KeyStroke.getKeyStroke('X', Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
			putValue(
			SMALL_ICON,
			new ImageIcon(
				getClass().getClassLoader().getResource(
					"org/webdocwf/util/loader/" + "wizard/images/Stop.gif")));
			putValue(SHORT_DESCRIPTION, "Exit Enhydra Octopus Application");
			putValue(LONG_DESCRIPTION, "Exit Enhydra Octopus Application");
			putValue(MNEMONIC_KEY, new Integer('X'));
		}

		public void actionPerformed(ActionEvent e) {
			try {
				if( 
							JOptionPane.showConfirmDialog(null, "Are you are sure want to exit?", "Exit", JOptionPane.INFORMATION_MESSAGE) == 0 
							) 
							{
								System.exit(0);
							}
			} catch (Exception ex) {
				String message =
					"Error while creating action for ExitOctopusApplicationItem menu item. Message :"
						+ ex.getMessage();
				JOptionPane.showMessageDialog(desktop, message + "\n", "Error", 0);
			}

		}
	}

	private class NewOctopusProjectItem extends AbstractAction {
		/**
		 * Action which creates new frame
		 */
		public NewOctopusProjectItem() {
			putValue(NAME, "New Octopus Project");
			putValue(
				ACCELERATOR_KEY,
				KeyStroke.getKeyStroke('N', Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
			putValue(
			SMALL_ICON,
			new ImageIcon(
				getClass().getClassLoader().getResource(
					"org/webdocwf/util/loader/" + "wizard/images/New.gif")));
			putValue(SHORT_DESCRIPTION, "Octopus project");
			putValue(LONG_DESCRIPTION, "Start Octopus project");
			putValue(MNEMONIC_KEY, new Integer('N'));
		}

		public void actionPerformed(ActionEvent e) {
			try {
				String name = (String) JOptionPane.showInputDialog(null,
						"Project name : ",
						"New project...",
						JOptionPane.INFORMATION_MESSAGE,
						null,
						null,
						DEFAULT_PROJECT_NAME+defaultProjectNameCounter++);
			 if( name != null ) {
				if (name == null || name.trim().equals(""))
					name = DEFAULT_PROJECT_NAME+defaultProjectNameCounter++;
				OctopusProjectFrame octopusProject = createOctopusProjectFrame(name);
				desktop.add(octopusProject);

⌨️ 快捷键说明

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