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.
308 lines
10 KiB
308 lines
10 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.properties;
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Component;
|
|
import java.awt.Graphics;
|
|
import java.awt.Insets;
|
|
import java.text.DecimalFormat;
|
|
import java.text.NumberFormat;
|
|
import java.util.Locale;
|
|
|
|
import javax.swing.DefaultListCellRenderer;
|
|
import javax.swing.Icon;
|
|
import javax.swing.JList;
|
|
import javax.swing.UIManager;
|
|
|
|
import parser.type.*;
|
|
import prism.DefinedConstant;
|
|
|
|
public class GraphConstantLine extends javax.swing.JPanel
|
|
{
|
|
public static final String SINGLE_DEFAULT = "0";
|
|
public static final String RANGE_START_DEFAULT = "0";
|
|
public static final String RANGE_END_DEFAULT = "1";
|
|
public static final String STEP_DEFAULT = "1";
|
|
|
|
private DefinedConstant dc;
|
|
private GUIGraphPicker parent;
|
|
private Type type;
|
|
|
|
/** Creates new form ConstantLine */
|
|
public GraphConstantLine(DefinedConstant dc, GUIGraphPicker parent)
|
|
{
|
|
this.dc = dc;
|
|
this.parent = parent;
|
|
|
|
initComponents();
|
|
this.valuePicker.setRenderer(new DefaultListCellRenderer()
|
|
{
|
|
public Component getListCellRendererComponent(JList list, Object obj, int i, boolean selection, boolean hasFocus)
|
|
{
|
|
if(obj instanceof Double)
|
|
{
|
|
setComponentOrientation(list.getComponentOrientation());
|
|
if (selection)
|
|
{
|
|
setBackground(list.getSelectionBackground());
|
|
setForeground(list.getSelectionForeground());
|
|
}
|
|
else
|
|
{
|
|
setBackground(list.getBackground());
|
|
setForeground(list.getForeground());
|
|
}
|
|
|
|
if (obj instanceof Icon)
|
|
{
|
|
setIcon((Icon)obj);
|
|
setText("");
|
|
}
|
|
else
|
|
{
|
|
setIcon(null);
|
|
String str;
|
|
Double d = (Double) obj;
|
|
NumberFormat n = DecimalFormat.getInstance(Locale.UK);
|
|
n.setMaximumFractionDigits(6);
|
|
str = n.format(d.doubleValue());
|
|
setText((obj == null) ? "" : str);
|
|
}
|
|
|
|
setEnabled(list.isEnabled());
|
|
setFont(list.getFont());
|
|
setBorder((hasFocus) ? UIManager.getBorder("List.focusCellHighlightBorder") : noFocusBorder);
|
|
|
|
return this;
|
|
}
|
|
else
|
|
{
|
|
return super.getListCellRendererComponent(list, obj, i, selection, hasFocus);
|
|
}
|
|
}
|
|
});
|
|
setBorder(new BottomBorder());
|
|
setConstName(dc.getName());
|
|
setConstType(dc.getType());
|
|
init();
|
|
}
|
|
|
|
private void init()
|
|
{
|
|
|
|
valuePicker.addItem("All series");
|
|
|
|
for(int i = 0; i < dc.getNumSteps(); i++)
|
|
{
|
|
valuePicker.addItem(dc.getValue(i));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public void setConstName(String str)
|
|
{
|
|
nameLabel.setText(str);
|
|
}
|
|
|
|
public void setConstType(Type type)
|
|
{
|
|
this.type = type;
|
|
if (type instanceof TypeDouble) {
|
|
typeLabel.setText("double");
|
|
} else if (type instanceof TypeInt) {
|
|
typeLabel.setText("int");
|
|
} else {
|
|
typeLabel.setText("unknown");
|
|
}
|
|
}
|
|
|
|
public void setEnabled(boolean b)
|
|
{
|
|
//System.out.println("setEnabloed called on a GraphConstantPickerList");
|
|
super.setEnabled(b);
|
|
nameLabel.setEnabled(b);
|
|
typeLabel.setEnabled(b);
|
|
valuePicker.setEnabled(b);
|
|
if(b)
|
|
{
|
|
setBackground(Color.white);
|
|
jPanel1.setBackground(Color.white);
|
|
jPanel2.setBackground(Color.white);
|
|
jPanel3.setBackground(Color.white);
|
|
}
|
|
else
|
|
{
|
|
setBackground(Color.lightGray);
|
|
jPanel1.setBackground(Color.lightGray);
|
|
jPanel2.setBackground(Color.lightGray);
|
|
jPanel3.setBackground(Color.lightGray);
|
|
}
|
|
}
|
|
|
|
//ACCESS METHODS
|
|
|
|
|
|
public String getName()
|
|
{
|
|
return nameLabel.getText();
|
|
}
|
|
|
|
public Object getSelectedValue()
|
|
{
|
|
return valuePicker.getSelectedItem();
|
|
}
|
|
|
|
public DefinedConstant getDC()
|
|
{
|
|
return dc;
|
|
}
|
|
|
|
|
|
/** 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
|
|
{
|
|
java.awt.GridBagConstraints gridBagConstraints;
|
|
|
|
choiceButtonGroup = new javax.swing.ButtonGroup();
|
|
boolSingleValueCombo = new javax.swing.JComboBox();
|
|
sizerPanel = new javax.swing.JPanel();
|
|
jPanel1 = new javax.swing.JPanel();
|
|
nameLabel = new javax.swing.JLabel();
|
|
jPanel2 = new javax.swing.JPanel();
|
|
typeLabel = new javax.swing.JLabel();
|
|
jPanel3 = new javax.swing.JPanel();
|
|
valuePicker = new javax.swing.JComboBox();
|
|
|
|
boolSingleValueCombo.setBackground(new java.awt.Color(255, 255, 255));
|
|
boolSingleValueCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "true", "false" }));
|
|
boolSingleValueCombo.setMinimumSize(new java.awt.Dimension(4, 19));
|
|
boolSingleValueCombo.setPreferredSize(new java.awt.Dimension(4, 19));
|
|
|
|
setLayout(new java.awt.GridBagLayout());
|
|
|
|
setBackground(new java.awt.Color(255, 255, 255));
|
|
setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0)));
|
|
setPreferredSize(new java.awt.Dimension(300, 26));
|
|
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
|
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
|
gridBagConstraints.gridx = 0;
|
|
gridBagConstraints.gridy = 0;
|
|
add(jPanel1, gridBagConstraints);
|
|
|
|
nameLabel.setText("a");
|
|
nameLabel.setPreferredSize(new java.awt.Dimension(30, 15));
|
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
|
gridBagConstraints.gridx = 1;
|
|
gridBagConstraints.gridy = 0;
|
|
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
|
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
|
|
gridBagConstraints.weightx = 0.3;
|
|
add(nameLabel, gridBagConstraints);
|
|
|
|
jPanel2.setBackground(new java.awt.Color(255, 255, 255));
|
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
|
gridBagConstraints.gridx = 2;
|
|
gridBagConstraints.gridy = 0;
|
|
add(jPanel2, gridBagConstraints);
|
|
|
|
typeLabel.setText("double");
|
|
typeLabel.setPreferredSize(new java.awt.Dimension(50, 15));
|
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
|
gridBagConstraints.gridx = 3;
|
|
gridBagConstraints.gridy = 0;
|
|
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
|
|
add(typeLabel, gridBagConstraints);
|
|
|
|
jPanel3.setBackground(new java.awt.Color(255, 255, 255));
|
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
|
gridBagConstraints.gridx = 4;
|
|
gridBagConstraints.gridy = 0;
|
|
add(jPanel3, gridBagConstraints);
|
|
|
|
valuePicker.setBackground(new java.awt.Color(255, 255, 255));
|
|
valuePicker.addActionListener(new java.awt.event.ActionListener()
|
|
{
|
|
public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
{
|
|
valuePickerActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
|
gridBagConstraints.gridx = 6;
|
|
gridBagConstraints.gridy = 0;
|
|
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
|
|
gridBagConstraints.weightx = 0.7;
|
|
add(valuePicker, gridBagConstraints);
|
|
|
|
}//GEN-END:initComponents
|
|
|
|
private void valuePickerActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_valuePickerActionPerformed
|
|
{//GEN-HEADEREND:event_valuePickerActionPerformed
|
|
parent.resetAutoSeriesName();
|
|
}//GEN-LAST:event_valuePickerActionPerformed
|
|
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
private javax.swing.JComboBox boolSingleValueCombo;
|
|
private javax.swing.ButtonGroup choiceButtonGroup;
|
|
private javax.swing.JPanel jPanel1;
|
|
private javax.swing.JPanel jPanel2;
|
|
private javax.swing.JPanel jPanel3;
|
|
private javax.swing.JLabel nameLabel;
|
|
private javax.swing.JPanel sizerPanel;
|
|
private javax.swing.JLabel typeLabel;
|
|
private javax.swing.JComboBox valuePicker;
|
|
// End of variables declaration//GEN-END:variables
|
|
|
|
class BottomBorder implements javax.swing.border.Border
|
|
{
|
|
public Insets getBorderInsets(Component c)
|
|
{
|
|
return new Insets(0,0,1,0);
|
|
}
|
|
|
|
public boolean isBorderOpaque()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
|
|
{
|
|
g.setColor(Color.lightGray);
|
|
g.drawLine(x,(y+height-1), (x+width), (y+height-1));
|
|
|
|
}
|
|
}
|
|
}
|