Author: jflesch
Date: 2007-08-01 21:20:07 +0000 (Wed, 01 Aug 2007)
New Revision: 14457

Modified:
   trunk/apps/Thaw/src/thaw/gui/Table.java
   trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
   trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java
Log:
Optimize the table renderers

Modified: trunk/apps/Thaw/src/thaw/gui/Table.java
===================================================================
--- trunk/apps/Thaw/src/thaw/gui/Table.java     2007-08-01 17:49:01 UTC (rev 
14456)
+++ trunk/apps/Thaw/src/thaw/gui/Table.java     2007-08-01 21:20:07 UTC (rev 
14457)
@@ -161,13 +161,23 @@

                private Color softGray;

+               private JLabel labelRenderer;
+               private TransferProgressBar transferProgressBarRenderer;
+               private JTextArea textAreaRenderer;

                public DefaultRenderer() {
                        softGray = new Color(240,240,240);
+                       labelRenderer = new JLabel();
+                       transferProgressBarRenderer = new 
TransferProgressBar(null, statusInProgressBars);
+                       textAreaRenderer = new JTextArea();
+                       textAreaRenderer.setEditable(false);
+                       textAreaRenderer.setLineWrap(true);
+                       textAreaRenderer.setWrapStyleWord(true);
                }

                public void showStatusInProgressBars(boolean v) {
                        statusInProgressBars = v;
+                       transferProgressBarRenderer.showStatusInProgressBar(v);
                }

                public void specifyColumnWithKeys(int c) {
@@ -183,15 +193,20 @@

                        if (value instanceof FCPTransferQuery) {
                                final FCPTransferQuery query = 
(FCPTransferQuery)value;
-                               final JProgressBar bar = new 
TransferProgressBar(query, statusInProgressBars);

-                               return bar;
+                               //final JProgressBar bar = new 
TransferProgressBar(query, statusInProgressBars);
+
+                               transferProgressBarRenderer.setQuery(query);
+                               transferProgressBarRenderer.refresh();
+
+                               return transferProgressBarRenderer;
                        }

                        Component cell;

                        if (value instanceof ImageIcon) {
-                               return new JLabel(((ImageIcon)value));
+                               labelRenderer.setIcon((ImageIcon)value);
+                               return labelRenderer;
                        } if (value instanceof JPanel) {
                                cell = (Component)value;
                        } else if(value instanceof Long) {
@@ -201,15 +216,12 @@
                                                                           
isSelected, hasFocus, row, column);

                        } else if (value instanceof String && 
((String)value).indexOf("\n") >= 0) {
-                               JTextArea area = new JTextArea((String)value);
-                               area.setEditable(false);
-                               area.setLineWrap(true);
-                               area.setWrapStyleWord(true);
+                               textAreaRenderer.setText((String)value);

-                               if (table.getRowHeight(row) < 
area.getPreferredSize().getHeight())
-                                       
table.setRowHeight((int)area.getPreferredSize().getHeight());
+                               if (table.getRowHeight(row) < 
textAreaRenderer.getPreferredSize().getHeight())
+                                       
table.setRowHeight((int)textAreaRenderer.getPreferredSize().getHeight());

-                               cell = area;
+                               cell = textAreaRenderer;

                        } else {
                                cell = 
super.getTableCellRendererComponent(table, value,

Modified: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java
===================================================================
--- trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java       2007-08-01 
17:49:01 UTC (rev 14456)
+++ trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java       2007-08-01 
21:20:07 UTC (rev 14457)
@@ -23,14 +23,21 @@
                this.query = query;
                this.statusInProgressBar = statusInProgressBar;
                this.withBorder = withBorder;
-
-               refresh();
        }

        public TransferProgressBar(FCPTransferQuery query, boolean 
statusInProgressBar) {
                this(query, statusInProgressBar, false);
        }

+       public void setQuery(FCPTransferQuery query) {
+               this.query = query;
+       }
+
+       public void showStatusInProgressBar(boolean v) {
+               this.statusInProgressBar = v;
+       }
+
+
        public void refresh() {

                int progress;

Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java    
2007-08-01 17:49:01 UTC (rev 14456)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java    
2007-08-01 21:20:07 UTC (rev 14457)
@@ -261,8 +261,11 @@
        }

        protected class MessageTableRenderer extends Table.DefaultRenderer {
+               private JCheckBox checkBoxRenderer;
+
                public MessageTableRenderer() {
                        super();
+                       this.checkBoxRenderer = new JCheckBox();
                }

                public Component getTableCellRendererComponent(final JTable 
table, Object value,
@@ -273,11 +276,9 @@
                        Author author = model.getMsg(row).getSender();

                        if (value instanceof Boolean) {
-                               JCheckBox box = new JCheckBox();
+                               
checkBoxRenderer.setSelected(((Boolean)value).booleanValue());

-                               
box.setSelected(((Boolean)value).booleanValue());
-
-                               return box;
+                               return checkBoxRenderer;
                        }

                        Color color = Color.BLACK;

Modified: trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java    
2007-08-01 17:49:01 UTC (rev 14456)
+++ trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java    
2007-08-01 21:20:07 UTC (rev 14457)
@@ -132,9 +132,18 @@
                private Color softGray;
                private Color lightBlue;

+               private JTextArea textAreaRenderer;
+               private JLabel labelRenderer;
+
                public TransferTableRenderer() {
                        softGray = new Color(240,240,240);
                        lightBlue = new Color(220, 220, 255);
+
+                       labelRenderer = new JLabel("", JLabel.CENTER);
+
+                       textAreaRenderer = new JTextArea();
+                       textAreaRenderer.setEditable(false);
+                       textAreaRenderer.setLineWrap(false);
                }

                public Component getTableCellRendererComponent(final JTable 
table, Object value,
@@ -143,14 +152,12 @@
                        Component cell;

                        if (value instanceof String && 
((String)value).indexOf("\n") >= 0) {
-                               JTextArea area = new JTextArea((String)value);
-                               area.setEditable(false);
-                               area.setLineWrap(false);
+                               textAreaRenderer.setText((String)value);
+                               cell = textAreaRenderer;

-                               cell = area;
-
                        } else if ((value instanceof String) && 
"X".equals((String)value) ) {
-                               return new JLabel(IconBox.minClose);
+                               labelRenderer.setIcon(IconBox.minClose);
+                               return labelRenderer;
                        } else if (value instanceof Integer) {
                                int val = ((Integer)value).intValue();

@@ -168,7 +175,9 @@
                                                icon = (val == 
TransferLogs.TRANSFER_TYPE_DOWNLOAD) ?
                                                        IconBox.minDownloads : 
IconBox.minInsertions;

-                                       return new JLabel(icon);
+                                       labelRenderer.setIcon(icon);
+
+                                       return labelRenderer;
                                }

                        } else {


Reply via email to