📄 wizardframe.java
字号:
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 + -