You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

221 lines
6.7 KiB

//==============================================================================
//
// Copyright (c) 2002-
// Authors:
// * Andrew Hinton <ug60axh@cs.bham.ac.uk> (University of Birmingham)
// * Dave Parker <david.parker@comlab.ox.ac.uk> (University of Oxford, formerly University of Birmingham)
//
//------------------------------------------------------------------------------
//
// This file is part of PRISM.
//
// PRISM is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// PRISM is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with PRISM; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
//==============================================================================
package userinterface;
import java.util.*;
import javax.swing.*;
import prism.*;
import settings.*;
public class GUIOptionsDialog extends javax.swing.JDialog
{
private ArrayList panels;
private PrismSettings settings;
/** Creates new form GUIOptionsDialog */
public GUIOptionsDialog(GUIPrism parent)
{
super(parent, true);
settings = parent.getPrism().getSettings();
panels = new ArrayList();
initComponents();
this.getRootPane().setDefaultButton(cancelButton);
setLocationRelativeTo(getParent()); // centre
//setResizable(false);
for(int i = 0; i < settings.optionOwners.length; i++)
{
SettingTable table = new SettingTable(this);
ArrayList al = new ArrayList();
settings.optionOwners[i].setDisplay(table);
al.add(settings.optionOwners[i]);
table.setOwners(al);
panels.add(table);
theTabs.add(table);
theTabs.setTitleAt(panels.indexOf(table), settings.propertyOwnerNames[i]);
}
}
public void addPanel(OptionsPanel p)
{
// defunct
}
public void show()
{
super.show();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents()//GEN-BEGIN:initComponents
{
jPanel1 = new javax.swing.JPanel();
theTabs = new javax.swing.JTabbedPane();
jPanel2 = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
defaultButton = new javax.swing.JButton();
saveSettingsButton = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
cancelButton = new javax.swing.JButton();
addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent evt)
{
closeDialog(evt);
}
});
jPanel1.setLayout(new java.awt.BorderLayout());
theTabs.setMinimumSize(new java.awt.Dimension(400, 50));
theTabs.setPreferredSize(new java.awt.Dimension(400, 500));
jPanel1.add(theTabs, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
jPanel2.setLayout(new java.awt.BorderLayout());
jPanel2.setMinimumSize(new java.awt.Dimension(400, 35));
jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
defaultButton.setMnemonic('D');
defaultButton.setText("Load Defaults");
defaultButton.setMaximumSize(new java.awt.Dimension(220, 50));
defaultButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
defaultButtonActionPerformed(evt);
}
});
jPanel3.add(defaultButton);
saveSettingsButton.setMnemonic('S');
saveSettingsButton.setText("Save Options");
saveSettingsButton.setPreferredSize(new java.awt.Dimension(120, 25));
saveSettingsButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
saveSettingsButtonActionPerformed(evt);
}
});
jPanel3.add(saveSettingsButton);
jPanel2.add(jPanel3, java.awt.BorderLayout.CENTER);
jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
cancelButton.setText("Okay");
cancelButton.setMaximumSize(new java.awt.Dimension(200, 50));
cancelButton.setMinimumSize(new java.awt.Dimension(80, 25));
cancelButton.setPreferredSize(new java.awt.Dimension(80, 25));
cancelButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
cancelButtonActionPerformed(evt);
}
});
jPanel4.add(cancelButton);
jPanel2.add(jPanel4, java.awt.BorderLayout.EAST);
getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
pack();
}//GEN-END:initComponents
private void saveSettingsButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_saveSettingsButtonActionPerformed
{//GEN-HEADEREND:event_saveSettingsButtonActionPerformed
settings.notifySettingsListeners();
try
{
settings.saveSettingsFile();
}
catch(PrismException e)
{
GUIPrism.getGUI().errorDialog("Error saving settings:\n"+e.getMessage());
}
}//GEN-LAST:event_saveSettingsButtonActionPerformed
private void defaultButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_defaultButtonActionPerformed
{//GEN-HEADEREND:event_defaultButtonActionPerformed
String[] selection =
{"Yes", "No"};
int selectionNo = -1;
selectionNo = JOptionPane.showOptionDialog(this, "Are you sure you wish to load the default settings?\nAll previous settings will be lost.", "Save Settings", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, selection, selection[0]);
if (selectionNo == 0) {
settings.loadDefaults();
settings.notifySettingsListeners();
}
}//GEN-LAST:event_defaultButtonActionPerformed
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_cancelButtonActionPerformed
{//GEN-HEADEREND:event_cancelButtonActionPerformed
hide();
}//GEN-LAST:event_cancelButtonActionPerformed
/** Closes the dialog */
private void closeDialog(java.awt.event.WindowEvent evt)//GEN-FIRST:event_closeDialog
{
setVisible(false);
dispose();
}//GEN-LAST:event_closeDialog
// Variables declaration - do not modify//GEN-BEGIN:variables
javax.swing.JButton cancelButton;
javax.swing.JButton defaultButton;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JButton saveSettingsButton;
javax.swing.JTabbedPane theTabs;
// End of variables declaration//GEN-END:variables
}