// * This code is licensed under:
// * JSlovo License, Version 1.0
// * - for license details see http://jslovo.sourceforge.net/License.txt
// *
// * Copyright (c) 2005 by the S.Chekanov (chekanov@sdf.lonestar.org). 
// * All rights reserved.

package japlot;

import japlot.jaxodraw.JaxoMainPanel;
import japlot.jaxodraw.JaxoPrefs;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.*;

import jplot.DataArray;

import javax.swing.*;
import java.util.*;

import jhplot.jadraw.JaAxes;

/**
 * Dialog to change data styles
 * 
 * @author S.Chekanov (ANL)
 * 
 */

public class DataBrowser extends JDialog {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JButton closeButton;
	private JButton okButton;
	private DataPanel mainPanel;
	public JList list;
	public DefaultListModel variableModel;
	private JaxoMainPanel frame;
	private JSplitPane splitPane;
	private boolean isChanged = false;

	public DataBrowser(JaAxes ja, JaxoMainPanel frame) {
		// super(frame, true);
		this.frame = frame;
		setTitle("Data editor");
		setModal( false );
		setResizable(true);

		
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

		JPanel lowerPanel = new JPanel();
		mainPanel = new DataPanel(ja, frame);

		closeButton = new JButton();
		closeButton.setText("Cancel");

		okButton = new JButton();
		okButton.setText("Accept");

		// actions
		closeButton.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				isChanged = false;
				exit(false);

			}
		});

		// actions
		okButton.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				doChanges();
			}
		});

		lowerPanel.add(okButton, null);
		lowerPanel.add(closeButton, null);

		// topPanel.setLayout( new BorderLayout() );

		JScrollPane jCandScroll = new JScrollPane();
		jCandScroll.setPreferredSize(new Dimension(1, 1));
		jCandScroll.setMinimumSize(new java.awt.Dimension(0, 0));

		Vector data = ja.getData();
		list = new JList(data);
		list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		list.setSelectedIndex(0);
		ListCellRenderer renderer = new ComplexCellRenderer();
		list.setCellRenderer(renderer);

		if (data.size() > 0) {
			Object o = list.getModel().getElementAt(0);
			DataArray da = (DataArray) o;
			mainPanel.setDataArray(da);
		}

		JScrollPane listScrollPane = new JScrollPane();
		listScrollPane.getViewport().add(list);

		MouseListener mouseListener = new MouseAdapter() {
			public void mouseClicked(MouseEvent mouseEvent) {
				JList theList = (JList) mouseEvent.getSource();
				if (mouseEvent.getClickCount() == 1) {
					int index = theList.locationToIndex(mouseEvent.getPoint());
					if (index >= 0) {
						Object o = theList.getModel().getElementAt(index);
						DataArray da = (DataArray) o;
						mainPanel.setDataArray(da);
						// System.out.println("Double-clicked on: " +
						// da.toString());
					}
				}
			}
		};
		list.addMouseListener(mouseListener);

		// Create a split pane with the two scroll panes in it.
		splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane,
				mainPanel);
		splitPane.setOneTouchExpandable(true);
		splitPane.setDividerLocation(80);

		getContentPane().add(splitPane, java.awt.BorderLayout.CENTER);
		getContentPane().add(lowerPanel, java.awt.BorderLayout.SOUTH);

	}

	public void doChanges() {
		mainPanel.setStyle();
		isChanged = true;
		showIt(false);
		frame.update();

	};

	public boolean isChanged() {
		return isChanged;
	}


         // create about
        public void exit(boolean show) {
             frame.getOptMenu().showBrowserbar(false);
             JaxoPrefs.setBooleanPref(JaxoPrefs.PREF_SHOWBROWSER, false); 
        }


	// create about
	public void showIt(boolean show) {

		if (show == false) {
			setVisible(false);
			dispose();
		} else {

			// store mainframe dimensions
			Dimension dim = frame.getSize();
			int w = dim.width;
			int h = dim.height;
			// Get the system resolution
			Dimension res = Toolkit.getDefaultToolkit().getScreenSize();

			// make sure the dialog is not too big
			Dimension size = new Dimension(
					Math.min((int) (0.4 * w), res.width), Math.min(
							(int) (0.6 * h), res.height));
			this.setSize(size);

			// pack();
			Util.centreWithin(frame, this);

			// Util.centreWithin( Global.mainFrame, this );
			setVisible(true);
		}


	}

}

 

Ads help maintain this website.