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 }