/**
*
*/
package agg.gui.cpa;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Hashtable;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import agg.editor.impl.EdGraph;
/**
* @author olga
*
*/
@SuppressWarnings("serial")
public class VariableEqualityDialog extends JDialog {
final protected EdGraph graph;
public VariableEqualityDialog(final EdGraph graph, final Point location) {
super(new JFrame(), "Variable Equalities", false);
this.graph = graph;
String text = graph.getBasisGraph().getHelpInfoAboutVariableEquality();
// text = text.substring(1,text.length()-1).replaceAll(",", "\n").replaceAll(" ", "");
text = text.substring(1,text.length()-1).replaceAll(" ", "");
String [] array = text.split(",");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
setVisible(false);
}
});
final JPanel content = new JPanel(new BorderLayout());
content.add(new JLabel(" "), BorderLayout.NORTH);
final JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel(" "+graph.getName()+" "), BorderLayout.NORTH);
final JPanel p = new JPanel(new GridLayout(array.length+3, 1));
p.add(new JLabel(" "));
for (int i=0; i<array.length; i++) {
String s = array[i];
final JLabel l = new JLabel(" "+s+" ");
l.setForeground(Color.RED);
p.add(l);
}
p.add(new JLabel(" "));
panel.add(p, BorderLayout.CENTER);
final JButton close = new JButton("OK");
close.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});
final JPanel pb = new JPanel();
pb.add(new JLabel(" "));
pb.add(close);
pb.add(new JLabel(" "));
panel.add(pb, BorderLayout.SOUTH);
content.add(panel, BorderLayout.CENTER);
content.add(new JLabel(" "), BorderLayout.SOUTH);
setContentPane(content);
setLocation(location.x, location.y);
pack();
setAlwaysOnTop(true);
setVisible(true);
}
public EdGraph getGraph() {
return this.graph;
}
public static Hashtable<String,String> getVarNameEquality(String varsEquality) {
String [] array = varsEquality.split(",");
Hashtable<String,String> map = new Hashtable<String,String>(array.length);
for (int i=0; i<array.length; i++) {
String s = array[i];
String [] vars = s.split("=");
if (vars.length == 2) {
map.put(vars[0], vars[1]);
}
}
return map;
}
}