// * 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.