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

📄 saveprojectaction.java

📁 数据仓库工具
💻 JAVA
字号:
/*
 * SaveProjectAction.java. Created on Apr 23, 2004.
 */
package org.webdocwf.util.loader.wizard;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;

import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;

import org.webdocwf.util.loader.generator.Utils;

/**
 * 
 * 
 * @author Zoran Milakovic
 */
public class SaveProjectAction extends AbstractAction {

	OctopusProjectFrame octopusProjectFrame;

	public SaveProjectAction(OctopusProjectFrame octopusProjectFrame, String label) {
		this.octopusProjectFrame = octopusProjectFrame;
		putValue(NAME, label);
		putValue(
			SMALL_ICON,
			new ImageIcon(
				getClass().getClassLoader().getResource(
					"org/webdocwf/util/loader/" + "wizard/images/Save.gif")));
		putValue(SHORT_DESCRIPTION, "Save Octopus project");
		putValue(LONG_DESCRIPTION, "Save Octopus project");
		putValue(
			ACCELERATOR_KEY,
			KeyStroke.getKeyStroke('S', Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
		putValue(MNEMONIC_KEY, new Integer('S'));
	}

	/**
	 * This method check if the action is performed (event key pressed)
	 * @param e is event
	 */
	public void actionPerformed(ActionEvent e) {
		try {
			OctopusLoaderData loaderData =
				octopusProjectFrame.getLoaderPanel().getOctopusLoaderInit();
			OctopusGeneratorData generatorData =
				octopusProjectFrame.getGeneratorPanel().getOctopusGeneratorInit();
			
			String confString = "#  Octopus project file. \n\n";
			confString += "ProjectName="+octopusProjectFrame.getProjectName();
			confString += "\n\n";
			confString += "#  Loader section \n";
			confString += loaderData.toConfString();
			confString += "\n\n#  Generator section \n";
			confString += generatorData.toConfString();
			
			confString = Utils.replaceAll(confString,"\\","\\\\");
			
			File current = new File(System.getProperty("user.dir"));
			JFileChooser chooser = new JFileChooser(current);
			chooser.setDialogTitle("Save Octopus project ...");
			chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
			chooser.setFileFilter(
				(javax.swing.filechooser.FileFilter) new OctopusFileFilter(OctopusFileFilter.OPF));
			chooser.setAcceptAllFileFilterUsed(false);

			chooser.setSelectedFile(new File("new_project.opf"));
			chooser.setApproveButtonText("Save");
			int v = chooser.showOpenDialog(octopusProjectFrame);

			switch (v) {
				case JFileChooser.APPROVE_OPTION :
					if (chooser.getSelectedFile() != null) {
						this.saveFile(chooser.getSelectedFile().getAbsolutePath(), confString);
					}
					break;
				case JFileChooser.CANCEL_OPTION :
				case JFileChooser.ERROR_OPTION :
					chooser.removeAll();
					chooser = null;
					current = null;

			}

		} catch (Exception ex) {
			String message = "Error while save Octopus project. Message :" + ex.getMessage();
			JOptionPane.showMessageDialog(octopusProjectFrame, message + "\n", "Error", 0);
		}
	}

	private boolean saveFile(String fileName, String text) throws Exception {
		boolean success = true;
		try {
			File saveAsFile = new File(fileName);
			FileOutputStream fos = new FileOutputStream(saveAsFile);
			PrintStream printStream = new PrintStream(fos, true);
			printStream.print(text);
			fos.close();
			printStream.close();
		} catch (Exception e) {
			success = false;
			throw e;
		}
		return success;
	}
}

⌨️ 快捷键说明

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