/* * Copyright 2003,2004,2005 Colin Crist * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package hermes.fix; import hermes.swing.Colours; import hermes.swing.URLRenderer; import hermes.swing.URLRendererMouseListener; import java.awt.Color; import java.awt.Component; import javax.swing.JLabel; import javax.swing.ListSelectionModel; import javax.swing.table.TableCellRenderer; import com.jidesoft.grid.SortableTable; /** * @author colincrist@hermesjms.com * @version $Id: FIXMessageViewTable.java,v 1.1 2006/05/13 14:06:55 colincrist * Exp $ */ public class FIXMessageViewTable extends SortableTable { /** * */ private static final long serialVersionUID = -7557105531629435884L; private FIXMessageViewTableModel model; public FIXMessageViewTable(FIXMessageViewTableModel model) { super(model); this.model = model; setSortable(true); int block = 25; getColumn(FIXMessageViewTableModel.FIELD).setPreferredWidth(block); getColumn(FIXMessageViewTableModel.NAME).setPreferredWidth(block * 4); getColumn(FIXMessageViewTableModel.VALUE).setPreferredWidth(block * 4); getColumn(FIXMessageViewTableModel.DESCRIPTION).setPreferredWidth(block * 8); getColumn(FIXMessageViewTableModel.FIELD).setCellRenderer(new URLRenderer()); getColumn(FIXMessageViewTableModel.NAME).setCellRenderer(new URLRenderer()); addMouseListener(new URLRendererMouseListener(this)); setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { final Component c = super.prepareRenderer(renderer, row, column); final FIXMessageViewTableModel.RowType rowType = model.getRowType(getActualRowAt(row)); if (!isCellSelected(row, column)) { switch (rowType) { case HEADER: c.setBackground(Colours.WHITESMOKE); break; case TRAILER: c.setBackground(Colours.WHITESMOKE); break; case APPLICATION: c.setBackground(Colours.POWDER_BLUE); break; } } switch (column) { case 0: ((JLabel) c).setHorizontalAlignment(JLabel.LEFT); break; } c.setForeground(Color.BLACK); return c; } }