01: //WebOnSwing - Web Application Framework
02: //Copyright (C) 2003 Fernando Damian Petrola
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: package net.ar.webonswing.wrapping;
19:
20: import net.ar.webonswing.*;
21: import net.ar.webonswing.helpers.*;
22: import net.ar.webonswing.managers.persistence.*;
23:
24: public class VirtualWindowWrapper extends VirtualWindow implements
25: VisualWindow, ComponentWrapper {
26: public VirtualWindowWrapper(VisualWindow aWindow,
27: String aWindowName, String aWindowClassName,
28: PersistenceContributionContainer aPersistenceContainer) {
29: super (aWindow, aWindowName, aWindowClassName,
30: aPersistenceContainer);
31: }
32:
33: protected ComponentWrapper getOriginalAsComponentWrapper() {
34: return (ComponentWrapper) theOriginalWindow;
35: }
36:
37: protected void restoreOriginal() {
38: if (getOriginalAsComponentWrapper() == null) {
39: theOriginalWindow = WosFramework
40: .getInstance()
41: .getHierarchyWrapper()
42: .wrapWindow(
43: WosHelper
44: .createClassInstance(theWindowClassName));
45: theOriginalWindow.setName(theVirtualName);
46: new ComponentStandardizer()
47: .standardizeWindowHierarchy(theOriginalWindow);
48: thePersistenceContainer.restoreAllValues(theOriginalWindow
49: .getRootComponent());
50: }
51: }
52:
53: public void setWrappedComponent(Object object) {
54: restoreOriginal();
55: getOriginalAsComponentWrapper().setWrappedComponent(object);
56: }
57:
58: public Object getWrappedComponent() {
59: restoreOriginal();
60: return getOriginalAsComponentWrapper().getWrappedComponent();
61: }
62: }
|