01: /*
02: * SSHTools - Java SSH2 API
03: *
04: * Copyright (C) 2002-2003 Lee David Painter and Contributors.
05: *
06: * Contributions made by:
07: *
08: * Brett Smith
09: * Richard Pernavas
10: * Erwin Bolwidt
11: *
12: * This program is free software; you can redistribute it and/or
13: * modify it under the terms of the GNU General Public License
14: * as published by the Free Software Foundation; either version 2
15: * of the License, or (at your option) any later version.
16: *
17: * This program is distributed in the hope that it will be useful,
18: * but WITHOUT ANY WARRANTY; without even the implied warranty of
19: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20: * GNU General Public License for more details.
21: *
22: * You should have received a copy of the GNU General Public License
23: * along with this program; if not, write to the Free Software
24: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25: */
26: package com.sshtools.common.ui;
27:
28: import com.sshtools.j2ssh.util.StartStopState;
29:
30: import java.awt.Component;
31:
32: import javax.swing.Icon;
33: import javax.swing.JLabel;
34: import javax.swing.JTable;
35: import javax.swing.table.DefaultTableCellRenderer;
36:
37: public class StartStopStateRenderer extends DefaultTableCellRenderer {
38: // Private instance variables
39: private Icon startedIcon;
40:
41: // Private instance variables
42: private Icon stoppedIcon;
43:
44: // Private instance variables
45: private Icon failedIcon;
46:
47: // Private instance variables
48: private String errorMsg;
49:
50: public StartStopStateRenderer(Icon startedIcon, Icon stoppedIcon) {
51: this .startedIcon = startedIcon;
52: this .stoppedIcon = stoppedIcon;
53: setHorizontalAlignment(JLabel.CENTER);
54: }
55:
56: public StartStopStateRenderer(Icon startedIcon, Icon stoppedIcon,
57: Icon failedIcon, String errorMsg) {
58: this .startedIcon = startedIcon;
59: this .stoppedIcon = stoppedIcon;
60: this .failedIcon = failedIcon;
61: this .errorMsg = errorMsg;
62: setHorizontalAlignment(JLabel.CENTER);
63: }
64:
65: public Component getTableCellRendererComponent(JTable table,
66: Object value, boolean isSelected, boolean hasFocus,
67: int row, int column) {
68: super .getTableCellRendererComponent(table, value, isSelected,
69: hasFocus, row, column);
70:
71: StartStopState state = (StartStopState) value;
72:
73: if (state.getValue() == StartStopState.FAILED) {
74: setIcon(failedIcon);
75: setToolTipText(errorMsg);
76: } else {
77: setIcon((state.getValue() == StartStopState.STOPPED) ? stoppedIcon
78: : startedIcon);
79: setToolTipText(null);
80: }
81:
82: return this ;
83: }
84:
85: public String getText() {
86: return null;
87: }
88: }
|