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

org.math.plot.components.DataToolBar Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
package org.math.plot.components;

import java.awt.event.*;
import java.security.*;

import javax.swing.*;

import org.math.plot.*;

/**
 * BSD License
 * 
 * @author Yann RICHET
 */

public class DataToolBar extends JToolBar {

	/**
	 * Comment for serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	protected JButton buttonPasteToClipboard;

	protected JButton buttonSaveFile;

	private boolean denySaveSecurity;

	private JFileChooser fileChooser;

	private DataPanel dataPanel;

	public DataToolBar(DataPanel dp) {

		dataPanel = dp;

		try {
			fileChooser = new JFileChooser();
		} catch (AccessControlException ace) {
			denySaveSecurity = true;
		}

		buttonPasteToClipboard = new JButton(new ImageIcon(org.math.plot.PlotPanel.class.getResource("icons/toclipboard.png")));
		buttonPasteToClipboard.setToolTipText("Copy data to clipboard");

		buttonSaveFile = new JButton(new ImageIcon(org.math.plot.PlotPanel.class.getResource("icons/tofile.png")));
		buttonSaveFile.setToolTipText("Save data into ASCII file");

		buttonPasteToClipboard.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dataPanel.toClipBoard();
			}
		});
		buttonSaveFile.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				chooseFile();
			}
		});

		add(buttonPasteToClipboard, null);
		add(buttonSaveFile, null);

		if (!denySaveSecurity) {
			fileChooser.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(ActionEvent e) {
					saveFile();
				}
			});
		} else {
			buttonSaveFile.setEnabled(false);
		}
	}

	void saveFile() {
		java.io.File file = fileChooser.getSelectedFile();
		dataPanel.toASCIIFile(file);
	}

	void chooseFile() {
		fileChooser.showSaveDialog(this);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy