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.component.shareapp;
22:
23: import java.awt.CardLayout;
24: import java.awt.Component;
25: import java.util.HashMap;
26: import java.util.Map;
27: import javax.swing.JPanel;
28: import org.onemind.commons.java.lang.ref.ValueRef;
29:
30: public class ViewComponent extends JPanel {
31:
32: private ValueRef _currentView;
33:
34: private CardLayout _layout = new CardLayout();
35:
36: private Map _components = new HashMap();
37:
38: public ViewComponent(ValueRef currentView) {
39: _currentView = currentView;
40: setLayout(_layout);
41: }
42:
43: public void addView(String name, Component com) {
44: add(name, com);
45: _components.put(name, com);
46: }
47:
48: public void add(Component comp, Object constraints) {
49: throw new UnsupportedOperationException(
50: "Use addView method for adding view");
51: }
52:
53: public void add(Component comp, Object constraints, int index) {
54: throw new UnsupportedOperationException(
55: "Use addView method for adding view");
56: }
57:
58: public void setCurrentView(String currentView) {
59: if (_components.get(currentView) != null) {
60: _currentView.setValue(currentView);
61: _layout.show(this , currentView);
62: } else {
63: throw new IllegalArgumentException("Unknown view "
64: + currentView);
65: }
66: }
67:
68: public Component getCurrentView() {
69: Component com = (Component) _components.get(_currentView
70: .getValue());
71: return com;
72: }
73: }
|