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 <Main/build.h>
31 #import "UIxPageFrame.h"
33 @implementation UIxPageFrame
37 if ((self = [super init]))
56 - (void) setTitle: (NSString *) _value
58 ASSIGNCOPY(title, _value);
63 if ([self isUIxDebugEnabled])
66 return [self labelForKey: @"SOGo"];
69 - (void) setItem: (id) _item
79 - (NSString *) buildDate
84 - (NSString *) ownerInContext
86 return [[self clientObject] ownerInContext: nil];
89 - (NSString *) doctype
91 return (@"<?xml version=\"1.0\"?>\n"
93 @" PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
94 @" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
99 - (NSString *) helpURL
101 return [NSString stringWithFormat: @"help/%@.html", title];
104 - (NSString *) helpWindowTarget
106 return [NSString stringWithFormat: @"Help_%@", title];
119 // TODO: I think all this should be done by the clientObject?!
121 - (NSString *) relativeHomePath
123 return [self relativePathToUserFolderSubPath: @""];
126 - (NSString *) relativeCalendarPath
128 return [self relativePathToUserFolderSubPath: @"Calendar/"];
131 - (NSString *) relativeContactsPath
133 return [self relativePathToUserFolderSubPath: @"Contacts/"];
136 - (NSString *) relativeMailPath
138 return [self relativePathToUserFolderSubPath: @"Mail/"];
141 - (NSString *) relativePreferencesPath
143 return [self relativePathToUserFolderSubPath: @"preferences"];
146 - (NSString *) logoffPath
148 return [self relativePathToUserFolderSubPath: @"logoff"];
152 - (void) setPopup: (BOOL) popup
162 - (NSString *) bodyClasses
164 return (isPopup ? @"popup" : @"main");
167 /* page based JavaScript */
169 - (NSString *) pageJavaScriptURL
172 NSString *pageJSFilename;
174 page = [context page];
175 pageJSFilename = [NSString stringWithFormat: @"%@.js",
176 NSStringFromClass([page class])];
178 return [self urlForResourceFilename: pageJSFilename];
181 - (NSString *) productJavaScriptURL
184 NSString *fwJSFilename;
186 page = [context page];
187 fwJSFilename = [NSString stringWithFormat: @"%@.js",
188 [page frameworkName]];
190 return [self urlForResourceFilename: fwJSFilename];
193 - (NSString *) productFrameworkName
197 page = [context page];
199 return [NSString stringWithFormat: @"%@.SOGo", [page frameworkName]];
202 - (BOOL) hasPageSpecificJavaScript
204 return ([[self pageJavaScriptURL] length] > 0);
207 - (BOOL) hasProductSpecificJavaScript
209 return ([[self productJavaScriptURL] length] > 0);
212 - (NSString *) pageCSSURL
215 NSString *pageJSFilename;
217 page = [context page];
218 pageJSFilename = [NSString stringWithFormat: @"%@.css",
219 NSStringFromClass([page class])];
221 return [self urlForResourceFilename: pageJSFilename];
224 - (NSString *) productCSSURL
227 NSString *fwJSFilename;
229 page = [context page];
230 fwJSFilename = [NSString stringWithFormat: @"%@.css",
231 [page frameworkName]];
233 return [self urlForResourceFilename: fwJSFilename];
236 - (NSString *) thisPageURL
238 return [[context page] uri];
241 - (BOOL) hasPageSpecificCSS
243 return ([[self pageCSSURL] length] > 0);
246 - (BOOL) hasProductSpecificCSS
248 return ([[self productCSSURL] length] > 0);
251 - (void) setToolbar: (NSString *) newToolbar
253 ASSIGN (toolbar, newToolbar);
256 - (NSString *) toolbar
261 @end /* UIxPageFrame */