1 package org.wcb.autohome.util.ui;
2 /***
3 * Copyright (C) 1999 Walter Bogaardt
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18 *
19 * Project: Home Automation Interface
20 *
21 */
22
23 import java.awt.Component;
24 import javax.swing.JLabel;
25 import javax.swing.ImageIcon;
26 import javax.swing.JTable;
27 import javax.swing.table.DefaultTableCellRenderer;
28 import org.wcb.autohome.AutoHomeAdminSession;
29 import org.wcb.autohome.interfaces.X10DeviceConstants;
30 import org.wcb.autohome.interfaces.IX10Module;
31
32 /***
33 * Filename: $Id: LightRender.java,v 1.5 2004/07/22 03:06:50 wbogaardt Exp $
34 *
35 * Abstract: This class renders an icon on a jtable cell. It helps to have
36 * a graphical representation of the item rather than just text.
37 *
38 * $Log: LightRender.java,v $
39 * Revision 1.5 2004/07/22 03:06:50 wbogaardt
40 * removed deprecated method calls.
41 *
42 * Revision 1.4 2004/02/27 01:29:53 wbogaardt
43 * modified classes so they conform to Checkstyle format in readability
44 *
45 * Revision 1.3 2004/01/21 05:29:43 wbogaardt
46 * fixed bug saving file format and added disable monitoring
47 *
48 * Revision 1.2 2004/01/16 00:53:43 wbogaardt
49 * Fixed a very obscure bug with the Macro Panel that it didn't added new
50 * x10 devices to the drop down of available x10 device for the macro. Modified Macro triggers to change the events
51 * to integer verses strings cleaner this way.
52 *
53 * Revision 1.1 2004/01/15 21:18:25 wbogaardt
54 * moved light render from util directory to sub ui directory package
55 *
56 * Revision 1.4 2004/01/15 21:05:20 wbogaardt
57 * major revamp of Modules and interfaces changes overall structure of how information is stored
58 *
59 * Revision 1.3 2003/12/22 20:51:32 wbogaardt
60 * refactored name assignments and formatted code for readability.
61 *
62 * Revision 1.2 2003/12/13 05:36:52 wbogaardt
63 * fixed javadoc comments.
64 *
65 */
66 public class LightRender extends DefaultTableCellRenderer implements X10DeviceConstants {
67
68 private ImageIcon onBulb = AutoHomeAdminSession.LIGHTICON;
69 private ImageIcon offBulb = AutoHomeAdminSession.LIGHTICON_OFF;
70 private ImageIcon onPlug = AutoHomeAdminSession.APPLIANCEICON;
71 private ImageIcon offPlug = AutoHomeAdminSession.APPLIANCEICON_OFF;
72 private ImageIcon timeIcon = AutoHomeAdminSession.CLOCKICON;
73 private ImageIcon eventIcon = AutoHomeAdminSession.CAUTIONICON;
74
75 /***
76 * This creates a cell render that shows different icons instead of text
77 * on a JTable.
78 */
79 public LightRender() {
80 setHorizontalAlignment(JLabel.CENTER);
81 }
82
83 /***
84 * Returns the default table cell renderer.
85 *
86 * @param table the JTable
87 * @param value the value to assign to the cell at [row, column]
88 * @param isSelected true if cell is selected
89 * @param hasFocus true if cell has focus
90 * @param row the row of the cell to render
91 * @param col the column of the cell to render
92 * @return the customized default table cell renderer
93 */
94 public Component getTableCellRendererComponent(JTable table, Object value,
95 boolean isSelected,
96 boolean hasFocus,
97 int row, int col) {
98 int s = 0;
99 IX10Module idevice = (IX10Module) value;
100 s = idevice.getType();
101 super.setText(idevice.getFullDeviceCode());
102 switch(s)
103 {
104 case LAMP_MODULE_ON:
105 super.setIcon(onBulb);
106 return this;
107 case APPLIANCE_MODULE_ON:
108 super.setIcon(onPlug);
109 return this;
110 case TIMER_EVENT:
111 super.setIcon(timeIcon);
112 return this;
113 case TRIGGER_EVENT:
114 super.setIcon(eventIcon);
115 return this;
116 default:
117 return this;
118 }
119 }
120 }
121