]> err.no Git - scalable-opengroupware.org/blob - SOGo/UI/Common/UIxPageFrame.m
new hyperlinks in UIxPageFrame
[scalable-opengroupware.org] / SOGo / UI / Common / UIxPageFrame.m
1 /*
2   Copyright (C) 2004 SKYRIX Software AG
3
4   This file is part of OpenGroupware.org.
5
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
9   later version.
10
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.
15
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
19   02111-1307, USA.
20 */
21 // $Id$
22
23 #include <SOGoUI/UIxComponent.h>
24
25 @interface UIxPageFrame : UIxComponent
26 {
27   NSString *title;
28   id       item;
29 }
30
31 @end
32
33 #include "common.h"
34 #include <NGObjWeb/SoComponent.h>
35
36 @implementation UIxPageFrame
37
38 - (void)dealloc {
39   [self->item  release];
40   [self->title release];
41   [super dealloc];
42 }
43
44 /* accessors */
45
46 - (void)setTitle:(NSString *)_value {
47   ASSIGNCOPY(self->title, _value);
48 }
49 - (NSString *)title {
50   if ([self isUIxDebugEnabled])
51     return self->title;
52
53   return [self labelForKey:@"OpenGroupware.org"];
54 }
55
56 - (void)setItem:(id)_item {
57   ASSIGN(self->item, _item);
58 }
59 - (id)item {
60   return self->item;
61 }
62
63 - (NSString *)ownerInContext {
64   return [[self clientObject] ownerInContext:[self context]];
65 }
66
67 /* Help URL/target */
68
69 - (NSString *)helpURL {
70   return [NSString stringWithFormat:@"help/%@.html", self->title];
71 }
72 - (NSString *)helpWindowTarget {
73   return [NSString stringWithFormat:@"Help_%@", self->title];
74 }
75
76
77 /* notifications */
78
79 - (void)sleep {
80   [self->item release]; self->item = nil;
81   [super sleep];
82 }
83
84 /* URL generation */
85 // TODO: I think all this should be done by the clientObject?!
86
87 - (NSString *)relativeHomePath {
88   return [self relativePathToUserFolderSubPath:@""];
89 }
90
91 - (NSString *)relativeCalendarPath {
92   return [self relativePathToUserFolderSubPath:@"Calendar/"];
93 }
94
95 - (NSString *)relativeContactsPath {
96   return [self relativePathToUserFolderSubPath:@"Contacts/"];
97 }
98
99 - (NSString *)relativeMailPath {
100   return [self relativePathToUserFolderSubPath:@"Mail/"];
101 }
102
103 @end /* UIxPageFrame */