/* ** This file is part of Filius, a network construction and simulation software. ** ** Originally created at the University of Siegen, Institute "Didactics of ** Informatics and E-Learning" by a students' project group: ** members (2006-2007): ** André Asschoff, Johannes Bade, Carsten Dittich, Thomas Gerding, ** Nadja Haßler, Ernst Johannes Klebert, Michell Weyer ** supervisors: ** Stefan Freischlad (maintainer until 2009), Peer Stechert ** Project is maintained since 2010 by Christian Eibl <filius@c.fameibl.de> ** and Stefan Freischlad ** Filius is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 2 of the License, or ** (at your option) version 3. ** ** Filius is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ** PURPOSE. See the GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Filius. If not, see <http://www.gnu.org/licenses/>. */ package filius.gui.nachrichtensicht; import java.awt.Color; import java.awt.Component; import java.awt.Font; import javax.swing.JTable; import javax.swing.border.LineBorder; import javax.swing.table.DefaultTableCellRenderer; import filius.rahmenprogramm.nachrichten.Lauscher; public class LauscherTableCellRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = 1L; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { String schichtString; int schicht = 5; int lfdNr = 0; int tblCols = table.getColumnCount(); int tblRows = table.getRowCount(); if (tblRows>row && tblCols>NachrichtenTabelle.SCHICHT_SPALTE && table.getValueAt(row, NachrichtenTabelle.SCHICHT_SPALTE) != null) schichtString = table.getValueAt(row, NachrichtenTabelle.SCHICHT_SPALTE).toString(); else schichtString = ""; if (table.getValueAt(row, 0) != null) { try { lfdNr = Integer.parseInt((String) table.getValueAt(row, 0)); } catch (Exception e) {} } for (int i=0; i<Lauscher.PROTOKOLL_SCHICHTEN.length; i++) { if (schichtString.equals(Lauscher.PROTOKOLL_SCHICHTEN[i])) schicht = i; } switch (schicht) { case 0: setForeground(Color.BLACK); // if (lfdNr%2==0) setBackground(new Color(0.9f, 0.9f, 0.9f)); // else setBackground(new Color(0.8f, 0.8f, 0.8f)); break; case 1: setForeground(Color.BLACK); if (lfdNr%2==0) setBackground(new Color(0.3f, 1f, 0.3f)); else setBackground(new Color(0.2f, 1f, 0.2f)); break; case 2: setForeground(Color.BLACK); setBackground(Color.CYAN); setFont(new Font(Font.MONOSPACED, Font.PLAIN, 10)); break; case 3: setForeground(Color.WHITE); setBackground(Color.BLUE); setFont(new Font(Font.DIALOG, Font.BOLD, 12)); break; default: setBackground(Color.DARK_GRAY); } switch (column) { case 0: setFont(new Font(Font.DIALOG, Font.PLAIN, 12)); break; case 1: setFont(new Font(Font.DIALOG, Font.PLAIN, 12)); break; case 2: case 3: setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12)); break; case 4: setFont(new Font(Font.SANS_SERIF, Font.BOLD, 12)); break; case 5: setFont(new Font(Font.DIALOG, Font.BOLD + Font.ITALIC, 12)); break; case 6: setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12)); break; default: setFont(new Font(Font.DIALOG, Font.ITALIC, 12)); } if (value != null) setText(value.toString()); else setText(""); return this; } }