You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ps...@apache.org on 2004/05/21 06:24:16 UTC
cvs commit: logging-log4j/src/java/org/apache/log4j/chainsaw/vfs FileObjectTable.java
psmith 2004/05/20 21:24:16
Modified: src/java/org/apache/log4j/chainsaw/vfs FileObjectTable.java
Log:
Table looks much nice with row striping and alignment.
Also added the sort feature. Remind me to buy Claude & Scott an extra beer. Nice and easy.
Revision Changes Path
1.2 +50 -1 logging-log4j/src/java/org/apache/log4j/chainsaw/vfs/FileObjectTable.java
Index: FileObjectTable.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/chainsaw/vfs/FileObjectTable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FileObjectTable.java 19 May 2004 00:11:08 -0000 1.1
+++ FileObjectTable.java 21 May 2004 04:24:16 -0000 1.2
@@ -1,10 +1,17 @@
package org.apache.log4j.chainsaw.vfs;
import java.awt.BorderLayout;
+import java.awt.Component;
+import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.DefaultTableCellRenderer;
+
+import org.apache.log4j.chainsaw.ChainsawConstants;
+import org.apache.log4j.chainsaw.JSortTable;
/**
* @author psmith
@@ -13,7 +20,7 @@
public class FileObjectTable extends JPanel {
private final DirectoryListTableModel tableModel = new DirectoryListTableModel();
- private final JTable table = new JTable(tableModel);
+ private final JSortTable table = new JSortTable(tableModel);
private final JScrollPane scrollPane = new JScrollPane(table);
public FileObjectTable(){
@@ -27,6 +34,11 @@
private void initGUI() {
setLayout(new BorderLayout());
add(scrollPane, BorderLayout.CENTER);
+ table.setShowGrid(false);
+ table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ table.setDefaultRenderer(Object.class, new DirectoryListCellRenderer());
+
+
}
/**
* @return Returns the tableModel.
@@ -34,4 +46,41 @@
public final DirectoryListTableModel getTableModel() {
return tableModel;
}
+ /**
+ * Simple Row striping renderer
+ */
+ private static final class DirectoryListCellRenderer extends DefaultTableCellRenderer{
+
+ /* (non-Javadoc)
+ * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
+ */
+ public Component getTableCellRendererComponent(JTable table,
+ Object value, boolean isSelected, boolean hasFocus, int row,
+ int column) {
+ Component component = super.getTableCellRendererComponent(table, value,
+ isSelected, hasFocus, row, column);
+ JLabel label =((JLabel)component);
+
+ if(isSelected) {
+ return component;
+ }
+ switch(column) {
+ case 0:
+ label.setHorizontalAlignment(JLabel.LEFT);
+ break;
+ default:
+ label.setHorizontalAlignment(JLabel.RIGHT);
+ break;
+ }
+ /**
+ * Colourize based on row striping
+ */
+ if ((row % 2) != 0) {
+ component.setBackground(ChainsawConstants.COLOR_ODD_ROW);
+ } else {
+ component.setBackground(ChainsawConstants.COLOR_EVEN_ROW);
+ }
+ return component;
+ }
+}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org