All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jgraph.pad.actions.FileLibrarySaveAs Maven / Gradle / Ivy

There is a newer version: 0.4.7
Show newest version
package org.jgraph.pad.actions;

import org.jgraph.GPGraphpad;
import org.jgraph.pad.GPLibraryPanel;
import org.jgraph.pad.resources.Translator;

import java.awt.event.ActionEvent;
import java.beans.XMLEncoder;
import java.io.BufferedOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
 * Action that saves the Library to a file.
 *
 * @author sven.luzar
 *
 */
public class FileLibrarySaveAs extends AbstractActionFile {

	/**
	 * Constructor for FileLibrarySaveAs.
	 * @param graphpad
	 */
	public FileLibrarySaveAs(GPGraphpad graphpad) {
		super(graphpad);
	}

	/**
	 * @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		String libraryExtension = Translator.getString("LibraryExtension");

		String name =
			saveDialog(
				Translator.getString("FileSaveAsLabel"),
				libraryExtension,
				Translator.getString("JGraphpadLibrary", new Object[]{libraryExtension}));
		if (name != null) {
			GPLibraryPanel.ScrollablePanel panel =
				getCurrentDocument().getLibraryPanel().getPanel();
			if (panel != null) {
				Serializable s = panel.getArchiveableState();
				try {
					Boolean compress = new Boolean(Translator.getString("compressLibraries"));
					ObjectOutputStream out = createOutputStream(name, compress.booleanValue());
					XMLEncoder enc =
						new XMLEncoder(
							new BufferedOutputStream(out));
					enc.writeObject(s);
					enc.close();
				} catch (Exception ex) {
					graphpad.error(ex.toString());
				} finally {
					graphpad.invalidate();
				}
			}
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy