001 package org.shiftone.jrat.provider.tree.ui.summary.action;
002
003
004 import org.jdesktop.swingx.JXTable;
005 import org.jdesktop.swingx.decorator.SortOrder;
006
007 import javax.swing.*;
008 import javax.swing.table.DefaultTableModel;
009 import java.awt.*;
010 import java.awt.event.ActionEvent;
011 import java.util.Iterator;
012 import java.util.Properties;
013
014 /**
015 * @author (jeff@shiftone.org) Jeff Drost
016 */
017 public class ShowSystemPropertiesAction extends AbstractAction {
018
019 private final Component component;
020 private final Properties properties;
021
022
023 public ShowSystemPropertiesAction(Component component, Properties properties) {
024 super("Show System Properties");
025 this.component = component;
026 this.properties = properties;
027 }
028
029 public void actionPerformed(ActionEvent e) {
030
031 JDialog dialog = new TextDialog(properties);
032
033 dialog.setSize(new Dimension(400, 500));
034 dialog.setLocationRelativeTo(component);
035 dialog.setModal(true);
036 dialog.setVisible(true);
037
038 }
039
040 private class TextDialog extends JDialog {
041
042 public TextDialog(Properties properties) {
043
044 DefaultTableModel tableModel = new DefaultTableModel();
045
046 tableModel.addColumn("Name");
047 tableModel.addColumn("Value");
048 for (Iterator keys = properties.keySet().iterator(); keys.hasNext();) {
049
050 String key = (String) keys.next();
051 String value = properties.getProperty(key);
052
053 tableModel.addRow(new Object[]{key, value});
054 }
055
056 JXTable table = new JXTable(tableModel);
057 table.setSortOrder(0, SortOrder.ASCENDING);
058
059
060 setLayout(new BorderLayout());
061 add(new JScrollPane(table), BorderLayout.CENTER);
062
063 setTitle("System Properties During Run");
064 setModal(true);
065 }
066
067 }
068
069 }