2 Copyright (C) 2004-2005 SKYRIX Software AG
4 This file is part of OpenGroupware.org.
6 OGo is free software; you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
11 OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with OGo; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
23 #import <NGObjWeb/SoComponent.h>
24 #import <NGObjWeb/WOComponent.h>
26 #import <SOGoUI/UIxComponent.h>
27 #import <SOGo/SOGoUser.h>
29 #import "UIxPageFrame.h"
31 @implementation UIxPageFrame
35 if ((self = [super init]))
54 - (void) setTitle: (NSString *) _value
56 ASSIGNCOPY(title, _value);
61 if ([self isUIxDebugEnabled])
64 return [self labelForKey: @"SOGo"];
67 - (void) setItem: (id) _item
77 - (NSString *) ownerInContext
79 return [[self clientObject] ownerInContext: nil];
82 - (NSString *) doctype
84 return (@"<?xml version=\"1.0\"?>\n"
86 @" PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
87 @" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
92 - (NSString *) helpURL
94 return [NSString stringWithFormat: @"help/%@.html", title];
97 - (NSString *) helpWindowTarget
99 return [NSString stringWithFormat: @"Help_%@", title];
112 // TODO: I think all this should be done by the clientObject?!
114 - (NSString *) relativeHomePath
116 return [self relativePathToUserFolderSubPath: @""];
119 - (NSString *) relativeCalendarPath
121 return [self relativePathToUserFolderSubPath: @"Calendar/"];
124 - (NSString *) relativeContactsPath
126 return [self relativePathToUserFolderSubPath: @"Contacts/"];
129 - (NSString *) relativeMailPath
131 return [self relativePathToUserFolderSubPath: @"Mail/"];
134 - (NSString *) relativePreferencesPath
136 return [self relativePathToUserFolderSubPath: @"preferences"];
139 - (NSString *) logoffPath
141 return [self relativePathToUserFolderSubPath: @"logoff"];
145 - (void) setPopup: (BOOL) popup
155 - (NSString *) bodyClasses
157 return (isPopup ? @"popup" : @"main");
160 /* page based JavaScript */
162 - (NSString *) pageJavaScriptURL
165 NSString *pageJSFilename;
167 page = [[self context] page];
168 pageJSFilename = [NSString stringWithFormat: @"%@.js",
169 NSStringFromClass([page class])];
171 return [self urlForResourceFilename: pageJSFilename];
174 - (NSString *) productJavaScriptURL
177 NSString *fwJSFilename;
179 page = [[self context] page];
180 fwJSFilename = [NSString stringWithFormat: @"%@.js",
181 [page frameworkName]];
183 return [self urlForResourceFilename: fwJSFilename];
186 - (NSString *) productFrameworkName
190 page = [[self context] page];
192 return [NSString stringWithFormat: @"%@.SOGo", [page frameworkName]];
195 - (BOOL) hasPageSpecificJavaScript
197 return ([[self pageJavaScriptURL] length] > 0);
200 - (BOOL) hasProductSpecificJavaScript
202 return ([[self productJavaScriptURL] length] > 0);
205 - (NSString *) pageCSSURL
208 NSString *pageJSFilename;
210 page = [[self context] page];
211 pageJSFilename = [NSString stringWithFormat: @"%@.css",
212 NSStringFromClass([page class])];
214 return [self urlForResourceFilename: pageJSFilename];
217 - (NSString *) productCSSURL
220 NSString *fwJSFilename;
222 page = [[self context] page];
223 fwJSFilename = [NSString stringWithFormat: @"%@.css",
224 [page frameworkName]];
226 return [self urlForResourceFilename: fwJSFilename];
229 - (NSString *) thisPageURL
231 return [[[self context] page] uri];
234 - (BOOL) hasPageSpecificCSS
236 return ([[self pageCSSURL] length] > 0);
239 - (BOOL) hasProductSpecificCSS
241 return ([[self productCSSURL] length] > 0);
244 - (void) setToolbar: (NSString *) newToolbar
246 ASSIGN (toolbar, newToolbar);
249 - (NSString *) toolbar
254 @end /* UIxPageFrame */