2 Copyright (C) 2000-2004 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 #include <NGObjWeb/WOxElemBuilder.h>
26 This builder builds various calendaring elements from the WEExtensions
29 All tags are mapped into the <var:> namespace (XMLNS_OD_BIND).
32 <var:month-overview .../> to WEMonthOverview
33 <var:month-label .../> to WEMonthLabel
34 <var:month-title .../> to WEMonthTitle
35 <var:month-info .../> to WEMonthOverviewInfoMode
36 <var:month .../> to WEMonthOverviewContentMode
38 <var:week-overview .../> to WEWeekOverview
39 <var:week-title .../> to WEWeekOverviewTitleMode
40 <var:week-info .../> to WEWeekOverviewInfoMode
41 <var:week-pminfo .../> to WEWeekOverviewPMInfoMode
42 <var:week .../> to WEWeekOverviewContentMode
43 <var:week-header .../> to WEWeekOverviewHeaderMode
44 <var:week-footer .../> to WEWeekOverviewFooterMode
46 <var:weekcol-view .../> to WEWeekColumnView
47 <var:weekcol-title .../> to WEWeekColumnViewTitleMode
48 <var:weekcol-info .../> to WEWeekColumnViewInfoMode
49 <var:weekcol .../> to WEWeekColumnViewContentMode
52 @interface WExCalElemBuilder : WOxTagClassElemBuilder
58 #include <SaxObjC/XMLNamespaces.h>
61 @implementation WExCalElemBuilder
63 - (Class)classForElement:(id<DOMElement>)_element {
68 if (![[_element namespaceURI] isEqualToString:XMLNS_OD_BIND])
71 tagName = [_element tagName];
72 if ((tl = [tagName length]) < 4)
75 c1 = [tagName characterAtIndex:0];
80 if (![tagName hasPrefix:@"month"])
85 return NSClassFromString(@"WEMonthOverviewContentMode");
88 if ([tagName isEqualToString:@"month-info"])
89 return NSClassFromString(@"WEMonthOverviewInfoMode");
93 if ([tagName isEqualToString:@"month-label"])
94 return NSClassFromString(@"WEMonthLabel");
95 if ([tagName isEqualToString:@"month-title"])
96 return NSClassFromString(@"WEMonthTitle");
100 if ([tagName isEqualToString:@"month-overview"])
101 return NSClassFromString(@"WEMonthOverview");
105 else if (c1 == 'w') {
108 if (![tagName hasPrefix:@"week"])
113 return NSClassFromString(@"WEWeekOverviewContentMode");
116 if ([tagName isEqualToString:@"weekcol"])
117 return NSClassFromString(@"WEWeekColumnViewContentMode");
121 if ([tagName isEqualToString:@"week-info"])
122 return NSClassFromString(@"WEWeekOverviewInfoMode");
126 if ([tagName isEqualToString:@"week-title"])
127 return NSClassFromString(@"WEWeekOverviewTitleMode");
131 if ([tagName isEqualToString:@"week-header"])
132 return NSClassFromString(@"WEWeekOverviewHeaderMode");
133 if ([tagName isEqualToString:@"week-footer"])
134 return NSClassFromString(@"WEWeekOverviewFooterMode");
135 if ([tagName isEqualToString:@"week-pminfo"])
136 return NSClassFromString(@"WEWeekOverviewPMInfoMode");
140 if ([tagName isEqualToString:@"weekcol-view"])
141 return NSClassFromString(@"WEWeekColumnView");
142 if ([tagName isEqualToString:@"weekcol-info"])
143 return NSClassFromString(@"WEWeekColumnViewInfoMode");
147 if ([tagName isEqualToString:@"weekcol-title"])
148 return NSClassFromString(@"WEWeekColumnViewTitleMode");
149 if ([tagName isEqualToString:@"week-overview"])
150 return NSClassFromString(@"WEWeekOverview");
158 @end /* WExCalElemBuilder */