1/*
2  Copyright (C) 2000-2005 SKYRIX Software AG
3
4  This file is part of SOPE.
5
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
9  later version.
10
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.
15
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
19  02111-1307, USA.
20*/
21
22#include "WETableCell.h"
23
24@interface WETableHeader : WETableCell
25{
26  // WODynamicElement: extraAttributes
27  // WODynamicElement: otherTagString
28}
29
30@end /* WETableHeader */
31
32#include "WETableView.h"
33#include "common.h"
34
35@implementation WETableHeader
36
37/* responder */
38
39- (void)appendToResponse:(WOResponse *)_response inContext:(WOContext *)_ctx {
40  if ([_ctx isRenderingDisabled]) {
41    [self->template appendToResponse:_response inContext:_ctx];
42    return;
43  }
44  if ([[_ctx objectForKey:WETableView_HeaderMode] boolValue]) {
45    WOComponent *cmp = nil;
46    NSString    *bg  = nil;
47
48    cmp = [_ctx component];
49    bg  = [self->bgColor stringValueInComponent:cmp];
50
51    if (!bg)
52      bg = [_ctx objectForKey:WETableView_headerColor];
53
54    [_response appendContentString:@"<td"];
55    if (bg) {
56      [_response appendContentString:@" bgcolor=\""];
57      [_response appendContentString:bg];
58      [_response appendContentCharacter:'"'];
59    }
60    [self appendExtraAttributesToResponse:_response inContext:_ctx];
61    if (self->otherTagString) {
62      [_response appendContentCharacter:' '];
63      [_response appendContentString:
64            [self->otherTagString stringValueInComponent:[_ctx component]]];
65    }
66    [_response appendContentString:@"><nobr>"];
67    [self appendSortIcon:_response inContext:_ctx];
68    [self->template appendToResponse:_response inContext:_ctx];
69
70    [_response appendContentString:@"</nobr>"];
71    [_response appendContentString:@"</td>\n"];
72  }
73}
74
75@end /* WETableHeader */
76