2 Copyright (C) 2000-2005 SKYRIX Software AG
4 This file is part of SOPE.
6 SOPE 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 SOPE 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 SOPE; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
22 #include <NGObjWeb/WOxElemBuilder.h>
25 This builder builds various calendaring elements from the WEExtensions
28 All tags are mapped into the <var:> namespace (XMLNS_OD_BIND).
31 <var:month-overview .../> to WEMonthOverview
32 <var:month-label .../> to WEMonthLabel
33 <var:month-title .../> to WEMonthTitle
34 <var:month-info .../> to WEMonthOverviewInfoMode
35 <var:month .../> to WEMonthOverviewContentMode
37 <var:week-overview .../> to WEWeekOverview
38 <var:week-title .../> to WEWeekOverviewTitleMode
39 <var:week-info .../> to WEWeekOverviewInfoMode
40 <var:week-pminfo .../> to WEWeekOverviewPMInfoMode
41 <var:week .../> to WEWeekOverviewContentMode
42 <var:week-header .../> to WEWeekOverviewHeaderMode
43 <var:week-footer .../> to WEWeekOverviewFooterMode
45 <var:weekcol-view .../> to WEWeekColumnView
46 <var:weekcol-title .../> to WEWeekColumnViewTitleMode
47 <var:weekcol-info .../> to WEWeekColumnViewInfoMode
48 <var:weekcol .../> to WEWeekColumnViewContentMode
51 @interface WExCalElemBuilder : WOxTagClassElemBuilder
57 #include <SaxObjC/XMLNamespaces.h>
60 @implementation WExCalElemBuilder
62 - (Class)classForElement:(id<DOMElement>)_element {
67 if (![[_element namespaceURI] isEqualToString:XMLNS_OD_BIND])
70 tagName = [_element tagName];
71 if ((tl = [tagName length]) < 4)
74 c1 = [tagName characterAtIndex:0];
79 if (![tagName hasPrefix:@"month"])
84 return NSClassFromString(@"WEMonthOverviewContentMode");
87 if ([tagName isEqualToString:@"month-info"])
88 return NSClassFromString(@"WEMonthOverviewInfoMode");
92 if ([tagName isEqualToString:@"month-label"])
93 return NSClassFromString(@"WEMonthLabel");
94 if ([tagName isEqualToString:@"month-title"])
95 return NSClassFromString(@"WEMonthTitle");
99 if ([tagName isEqualToString:@"month-overview"])
100 return NSClassFromString(@"WEMonthOverview");
104 else if (c1 == 'w') {
107 if (![tagName hasPrefix:@"week"])
112 return NSClassFromString(@"WEWeekOverviewContentMode");
115 if ([tagName isEqualToString:@"weekcol"])
116 return NSClassFromString(@"WEWeekColumnViewContentMode");
120 if ([tagName isEqualToString:@"week-info"])
121 return NSClassFromString(@"WEWeekOverviewInfoMode");
125 if ([tagName isEqualToString:@"week-title"])
126 return NSClassFromString(@"WEWeekOverviewTitleMode");
130 if ([tagName isEqualToString:@"week-header"])
131 return NSClassFromString(@"WEWeekOverviewHeaderMode");
132 if ([tagName isEqualToString:@"week-footer"])
133 return NSClassFromString(@"WEWeekOverviewFooterMode");
134 if ([tagName isEqualToString:@"week-pminfo"])
135 return NSClassFromString(@"WEWeekOverviewPMInfoMode");
139 if ([tagName isEqualToString:@"weekcol-view"])
140 return NSClassFromString(@"WEWeekColumnView");
141 if ([tagName isEqualToString:@"weekcol-info"])
142 return NSClassFromString(@"WEWeekColumnViewInfoMode");
146 if ([tagName isEqualToString:@"weekcol-title"])
147 return NSClassFromString(@"WEWeekColumnViewTitleMode");
148 if ([tagName isEqualToString:@"week-overview"])
149 return NSClassFromString(@"WEWeekOverview");
157 @end /* WExCalElemBuilder */