01: /*
02: * Copyright (C) 2004 TiongHiang Lee
03: *
04: * This library is free software; you can redistribute it and/or
05: * modify it under the terms of the GNU Lesser General Public
06: * License as published by the Free Software Foundation; either
07: * version 2.1 of the License, or (at your option) any later version.
08: *
09: * This library is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: * Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public
15: * License along with this library; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: *
18: * Email: thlee@onemindsoft.org
19: */
20:
21: package org.onemind.swingweb.templaterender.peerdelegate.javax.swing;
22:
23: import java.awt.Component;
24: import javax.swing.*;
25: import org.onemind.awtbridge.peer.BridgePeer;
26: import org.onemind.awtbridge.render.BridgeRenderContext;
27: import org.onemind.awtbridge.render.RenderingException;
28:
29: public class JListRenderDelegate extends JComponentRenderDelegate {
30: public static JListRenderDelegate INSTANCE = new JListRenderDelegate();
31:
32: public void renderCells(BridgePeer peer,
33: BridgeRenderContext context, Object output)
34: throws RenderingException {
35: JList list = (JList) peer.getComponentObject();
36: ListModel dataModel = list.getModel();
37: ListCellRenderer renderer = list.getCellRenderer();
38: ListSelectionModel selModel = list.getSelectionModel();
39: for (int i = 0; i < dataModel.getSize(); i++) {
40: Object value = dataModel.getElementAt(i);
41: boolean isSelected = selModel.isSelectedIndex(i);
42: Component rendererComponent = renderer
43: .getListCellRendererComponent(list, value, i,
44: isSelected, false);
45: context.renderOutput(rendererComponent, output);
46: }
47: }
48:
49: public void renderCell(BridgePeer peer,
50: BridgeRenderContext context, Object output, int row)
51: throws RenderingException {
52: JList list = (JList) peer.getComponentObject();
53: ListModel dataModel = list.getModel();
54: ListCellRenderer renderer = list.getCellRenderer();
55: ListSelectionModel selModel = list.getSelectionModel();
56: Object value = dataModel.getElementAt(row);
57: boolean isSelected = selModel.isSelectedIndex(row);
58: Component rendererComponent = renderer
59: .getListCellRendererComponent(list, value, row,
60: isSelected, false);
61: rendererComponent.setSize(list.getWidth(), rendererComponent
62: .getHeight());
63: context.renderOutput(rendererComponent, output);
64: }
65: }
|