package org.sintef.umt.systemfamily;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collection;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.sintef.umt.hutntree.HutnModelListener;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class ResultViewer {
private JFrame frame = null;
JTextField text = null;
SystemFamilyTreeView treeview = null;
Element model = null;
JComponent _owner = null;
public ResultViewer (Element result, JComponent owner) {
model = result;
_owner = owner;
init ();
}
private void init () {
frame = new JFrame ("");
text = new JTextField ("The Resolved Model...");
treeview = new SystemFamilyTreeView (new HutnModelListener() {
public void viewChanged (String description, Node modelnode) {
// NOOP
}
});
frame.getContentPane().setLayout(new BorderLayout ());
frame.setUndecorated(true);
treeview.setBackground(VariabilityManager.bgColor);
treeview.setForeground(Color.gray);
text.setFont(VariabilityManager.rendererFont2);
text.setBackground(VariabilityManager.bgColor);
text.setForeground(Color.gray);
DocumentBuilderFactory docfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docbuild = null;
Document doc = null;
try {
docbuild = docfac.newDocumentBuilder();
doc = docbuild.newDocument();
} catch (ParserConfigurationException pcerr) {
System.out.println ("Could not create document :" + pcerr);
// Have to exit ---
}
Element newModel = (Element) doc.importNode(model, true);
doc.appendChild(newModel);
Collection modelElements = new Vector ();
Element docElem = doc.getDocumentElement();
modelElements.add(docElem);
treeview.addModelElements(modelElements);
frame.getContentPane().add(new JScrollPane(treeview), BorderLayout.CENTER);
frame.getContentPane().add(new JScrollPane(text), BorderLayout.NORTH);
JPanel buttonPanel = new JPanel(new FlowLayout (FlowLayout.RIGHT));
buttonPanel.setBackground(VariabilityManager.bgColor);
frame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
JButton close = new JButton ("close");
close.setOpaque(true);
close.setContentAreaFilled(false);
close.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent ae) {
frame.setVisible(false);
frame.dispose();
}
});
buttonPanel.add(close);
frame.setSize(500,400);
}
public void open () {
Point loc = _owner.getLocationOnScreen();
// frame.setLocationRelativeTo(this);
frame.setLocation(loc.x - 40, loc.y + 40);
frame.setVisible(true);
}
}