From c48b96cdb0561204eaa7f00521db8a8734734f60 Mon Sep 17 00:00:00 2001 From: helge Date: Tue, 23 Nov 2004 18:57:57 +0000 Subject: [PATCH] removed WEClientCapabilities.h added ability to disable tab items git-svn-id: http://svn.opengroupware.org/SOPE/trunk@407 e4a50df8-12e2-0310-a44c-efbce7f8a7e3 --- sope-appserver/WEExtensions/ChangeLog | 9 ++ sope-appserver/WEExtensions/GNUmakefile | 3 +- .../WEExtensions/GNUmakefile.postamble | 3 +- sope-appserver/WEExtensions/JSClipboard.m | 5 +- sope-appserver/WEExtensions/JSMenu.h | 1 - sope-appserver/WEExtensions/JSMenu.m | 1 - sope-appserver/WEExtensions/JSMenuItem.h | 1 - sope-appserver/WEExtensions/JSMenuItem.m | 1 - sope-appserver/WEExtensions/JSShiftClick.m | 9 +- sope-appserver/WEExtensions/README | 2 - sope-appserver/WEExtensions/TODO | 2 - sope-appserver/WEExtensions/Version | 2 +- sope-appserver/WEExtensions/WEBrowser.m | 22 ++--- sope-appserver/WEExtensions/WECalendarField.h | 1 - sope-appserver/WEExtensions/WECalendarField.m | 5 +- .../WEExtensions/WEClientCapabilities.h | 23 ----- .../WECollapsibleComponentContent.m | 3 +- sope-appserver/WEExtensions/WEDragContainer.m | 4 +- sope-appserver/WEExtensions/WEDropContainer.m | 4 +- sope-appserver/WEExtensions/WEPageView.m | 5 +- sope-appserver/WEExtensions/WETabView.api | 2 + sope-appserver/WEExtensions/WETabView.h | 20 ++-- sope-appserver/WEExtensions/WETabView.m | 92 ++++++++++++------- .../WEExtensions/WETableCalcMatrix.h | 1 - .../WEExtensions/WETableView/WETableView.m | 3 +- sope-appserver/WEExtensions/WETreeView.m | 1 - .../WEExtensions/WExCalElemBuilder.m | 1 - .../WEExtensions/WExDnDElemBuilder.m | 5 +- sope-appserver/WEExtensions/common.h | 5 +- 29 files changed, 113 insertions(+), 123 deletions(-) delete mode 100644 sope-appserver/WEExtensions/WEClientCapabilities.h diff --git a/sope-appserver/WEExtensions/ChangeLog b/sope-appserver/WEExtensions/ChangeLog index 29565ec7..8b998d78 100644 --- a/sope-appserver/WEExtensions/ChangeLog +++ b/sope-appserver/WEExtensions/ChangeLog @@ -1,3 +1,12 @@ +2004-11-23 Helge Hess + + * v4.5.63 + + * removed WEClientCapabilities.h (lives in NGObjWeb for quite some time now) + + * WETabView.m: code cleanups, added a way to disable certain tabs + (disabledTabKeys association) + 2004-11-07 Marcus Mueller * WEExtensions.xcode: bumped the framework version diff --git a/sope-appserver/WEExtensions/GNUmakefile b/sope-appserver/WEExtensions/GNUmakefile index 2ffd62fb..08ccd4a1 100644 --- a/sope-appserver/WEExtensions/GNUmakefile +++ b/sope-appserver/WEExtensions/GNUmakefile @@ -14,8 +14,7 @@ libWEExtensions_HEADER_FILES_DIR = . libWEExtensions_HEADER_FILES_INSTALL_DIR = /WEExtensions libWEExtensions_HEADER_FILES = \ - WEClientCapabilities.h \ - WEContextConditional.h \ + WEContextConditional.h libWEExtensions_OBJC_FILES = \ JSClipboard.m \ diff --git a/sope-appserver/WEExtensions/GNUmakefile.postamble b/sope-appserver/WEExtensions/GNUmakefile.postamble index fb5c01e5..fbe3baa5 100644 --- a/sope-appserver/WEExtensions/GNUmakefile.postamble +++ b/sope-appserver/WEExtensions/GNUmakefile.postamble @@ -1,5 +1,4 @@ -# $Id$ - +# postprocessing makefile WEDropScript.jsm : WEDropScript.js sh js2m.sh $< $@ diff --git a/sope-appserver/WEExtensions/JSClipboard.m b/sope-appserver/WEExtensions/JSClipboard.m index b9e6a417..e20adb1b 100644 --- a/sope-appserver/WEExtensions/JSClipboard.m +++ b/sope-appserver/WEExtensions/JSClipboard.m @@ -1,7 +1,7 @@ /* - Copyright (C) 2000-2003 SKYRIX Software AG + Copyright (C) 2000-2004 SKYRIX Software AG - This file is part of OGo + This file is part of OpenGroupware.org. OGo is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id: #include #include diff --git a/sope-appserver/WEExtensions/JSMenu.h b/sope-appserver/WEExtensions/JSMenu.h index d9b807d2..11fa9455 100644 --- a/sope-appserver/WEExtensions/JSMenu.h +++ b/sope-appserver/WEExtensions/JSMenu.h @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #ifndef __WEExtensions_JSMenu_H__ #define __WEExtensions_JSMenu_H__ diff --git a/sope-appserver/WEExtensions/JSMenu.m b/sope-appserver/WEExtensions/JSMenu.m index 3f769170..59e289b9 100644 --- a/sope-appserver/WEExtensions/JSMenu.m +++ b/sope-appserver/WEExtensions/JSMenu.m @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #include "JSMenu.h" #include "JSMenuItem.h" diff --git a/sope-appserver/WEExtensions/JSMenuItem.h b/sope-appserver/WEExtensions/JSMenuItem.h index 0a99b2ce..bf37ce59 100644 --- a/sope-appserver/WEExtensions/JSMenuItem.h +++ b/sope-appserver/WEExtensions/JSMenuItem.h @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #ifndef __WEExtensions_JSMenuItem_H__ #define __WEExtensions_JSMenuItem_H__ diff --git a/sope-appserver/WEExtensions/JSMenuItem.m b/sope-appserver/WEExtensions/JSMenuItem.m index fdb86485..d893dd14 100644 --- a/sope-appserver/WEExtensions/JSMenuItem.m +++ b/sope-appserver/WEExtensions/JSMenuItem.m @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #import #import diff --git a/sope-appserver/WEExtensions/JSShiftClick.m b/sope-appserver/WEExtensions/JSShiftClick.m index fb843b31..eb050b5c 100644 --- a/sope-appserver/WEExtensions/JSShiftClick.m +++ b/sope-appserver/WEExtensions/JSShiftClick.m @@ -18,10 +18,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ -#include -#include "WEClientCapabilities.h" +#include /* @@ -69,6 +67,9 @@ } @end +#include "common.h" +#include + static NSString *JSShiftClick_Script = @""; -#include "common.h" - @implementation JSShiftClick - (id)initWithName:(NSString *)_name diff --git a/sope-appserver/WEExtensions/README b/sope-appserver/WEExtensions/README index fa93f361..84810493 100644 --- a/sope-appserver/WEExtensions/README +++ b/sope-appserver/WEExtensions/README @@ -1,5 +1,3 @@ -# $Id$ - WEExtensions ============ diff --git a/sope-appserver/WEExtensions/TODO b/sope-appserver/WEExtensions/TODO index db38e778..a4f90d9a 100644 --- a/sope-appserver/WEExtensions/TODO +++ b/sope-appserver/WEExtensions/TODO @@ -1,5 +1,3 @@ -# $Id$ - TODO for WEExtensions ===================== diff --git a/sope-appserver/WEExtensions/Version b/sope-appserver/WEExtensions/Version index 3fea82c7..645b0033 100644 --- a/sope-appserver/WEExtensions/Version +++ b/sope-appserver/WEExtensions/Version @@ -1,3 +1,3 @@ # version file -SUBMINOR_VERSION:=62 +SUBMINOR_VERSION:=63 diff --git a/sope-appserver/WEExtensions/WEBrowser.m b/sope-appserver/WEExtensions/WEBrowser.m index 0b9c88ee..7f7d7760 100644 --- a/sope-appserver/WEExtensions/WEBrowser.m +++ b/sope-appserver/WEExtensions/WEBrowser.m @@ -1,7 +1,7 @@ /* - Copyright (C) 2000-2003 SKYRIX Software AG + Copyright (C) 2000-2004 SKYRIX Software AG - This file is part of OGo + This file is part of OpenGroupware.org. OGo is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the @@ -18,22 +18,18 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ -#include -#include "WEClientCapabilities.h" -#include "common.h" +#include /* - API: + WEBrowser + + TODO: document + API: - extra attributes are attributes of the tag - */ -static NSString *WEBrowser_Plus = @"WEBrowser_Plus"; -static NSString *WEBrowser_Minus = @"WEBrowser_Minus"; - @interface WEBrowser : WODynamicElement { @protected @@ -51,8 +47,12 @@ static NSString *WEBrowser_Minus = @"WEBrowser_Minus"; } @end +#include #include "common.h" +static NSString *WEBrowser_Plus = @"WEBrowser_Plus"; +static NSString *WEBrowser_Minus = @"WEBrowser_Minus"; + @implementation WEBrowser #if 0 diff --git a/sope-appserver/WEExtensions/WECalendarField.h b/sope-appserver/WEExtensions/WECalendarField.h index 870681e9..05f4394d 100644 --- a/sope-appserver/WEExtensions/WECalendarField.h +++ b/sope-appserver/WEExtensions/WECalendarField.h @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #ifndef __WEExtensions_WECalendarField_H__ #define __WEExtensions_WECalendarField_H__ diff --git a/sope-appserver/WEExtensions/WECalendarField.m b/sope-appserver/WEExtensions/WECalendarField.m index a5778d99..59c85954 100644 --- a/sope-appserver/WEExtensions/WECalendarField.m +++ b/sope-appserver/WEExtensions/WECalendarField.m @@ -18,12 +18,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #include "WECalendarField.h" -#include -#include -#include "WEClientCapabilities.h" +#include #include "common.h" static Class StrClass = Nil; diff --git a/sope-appserver/WEExtensions/WEClientCapabilities.h b/sope-appserver/WEExtensions/WEClientCapabilities.h deleted file mode 100644 index 8e646189..00000000 --- a/sope-appserver/WEExtensions/WEClientCapabilities.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2000-2003 SKYRIX Software AG - - This file is part of OGo - - OGo is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - OGo is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with OGo; see the file COPYING. If not, write to the - Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. -*/ -// $Id$ - -#include diff --git a/sope-appserver/WEExtensions/WECollapsibleComponentContent.m b/sope-appserver/WEExtensions/WECollapsibleComponentContent.m index ccc9ba24..14466973 100644 --- a/sope-appserver/WEExtensions/WECollapsibleComponentContent.m +++ b/sope-appserver/WEExtensions/WECollapsibleComponentContent.m @@ -53,9 +53,8 @@ } @end -#include #include "WEContextConditional.h" -#include "WEClientCapabilities.h" +#include #include "common.h" static NSString *WECollapsible_TitleMode = @"WECollapsible_TitleMode"; diff --git a/sope-appserver/WEExtensions/WEDragContainer.m b/sope-appserver/WEExtensions/WEDragContainer.m index dc7d385e..1d68b9a3 100644 --- a/sope-appserver/WEExtensions/WEDragContainer.m +++ b/sope-appserver/WEExtensions/WEDragContainer.m @@ -50,9 +50,7 @@ inContext:(WOContext *)_ctx; @end -#include "WEClientCapabilities.h" -#include -#include +#include #include "common.h" //#define DEBUG_TAKEVALUES 1 diff --git a/sope-appserver/WEExtensions/WEDropContainer.m b/sope-appserver/WEExtensions/WEDropContainer.m index dea05065..b31542b1 100644 --- a/sope-appserver/WEExtensions/WEDropContainer.m +++ b/sope-appserver/WEExtensions/WEDropContainer.m @@ -67,9 +67,7 @@ inContext:(WOContext *)_ctx; @end -#include "WEClientCapabilities.h" -#import -#import +#include #include "common.h" @implementation WEDropContainer diff --git a/sope-appserver/WEExtensions/WEPageView.m b/sope-appserver/WEExtensions/WEPageView.m index 157ae805..9aea2d18 100644 --- a/sope-appserver/WEExtensions/WEPageView.m +++ b/sope-appserver/WEExtensions/WEPageView.m @@ -80,11 +80,8 @@ } @end +#include #include "common.h" -#include "WEClientCapabilities.h" -#import -#import -#import // #define DEBUG_TAKEVALUES 1 diff --git a/sope-appserver/WEExtensions/WETabView.api b/sope-appserver/WEExtensions/WETabView.api index 96b41a91..aa3d152a 100644 --- a/sope-appserver/WEExtensions/WETabView.api +++ b/sope-appserver/WEExtensions/WETabView.api @@ -21,4 +21,6 @@ + + diff --git a/sope-appserver/WEExtensions/WETabView.h b/sope-appserver/WEExtensions/WETabView.h index 9eff985a..c12ecc3d 100644 --- a/sope-appserver/WEExtensions/WETabView.h +++ b/sope-appserver/WEExtensions/WETabView.h @@ -18,28 +18,26 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #ifndef __WETabView_H__ #define __WETabView_H__ /* - This is a library private header ! + This is a library private header! */ #include /* - Does not support tab-head-creation from nested components !!! - - hh: Why not ??? -> Because selection is manipulated in sub-elements - + Note: Does not support tab-head-creation from nested components! + Why: => because selection is manipulated in sub-elements + WETabView creates element-IDs like .h.*.$key. for the tab-items (head-mode) .b.$key... for the tab-content (content-mode) (new, hh) - - !!! WETabView JavaScript can't handle duplicate tab-keys !!! + + Note: the WETabView JavaScript mode cannot handle duplicate tab-keys. */ @interface WETabView : WODynamicElement @@ -61,11 +59,13 @@ WOAssociation *height; WOAssociation *activeBgColor; WOAssociation *inactiveBgColor; - + + WOAssociation *disabledTabKeys; + WOAssociation *fontColor; WOAssociation *fontSize; WOAssociation *fontFace; - + id template; } diff --git a/sope-appserver/WEExtensions/WETabView.m b/sope-appserver/WEExtensions/WETabView.m index d1e7a484..838711fe 100644 --- a/sope-appserver/WEExtensions/WETabView.m +++ b/sope-appserver/WEExtensions/WETabView.m @@ -18,14 +18,10 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #include "WETabView.h" +#include #include "common.h" -#include "WEClientCapabilities.h" -#import -#import -#import #if DEBUG // # define DEBUG_TAKEVALUES 1 @@ -61,7 +57,7 @@ static NSNumber *YesNumber; self->selection = WOExtGetProperty(_config, @"selection"); self->bgColor = WOExtGetProperty(_config, @"bgColor"); - self->nonSelectedBgColor = WOExtGetProperty(_config, @"nonSelectedBgColor"); + self->nonSelectedBgColor = WOExtGetProperty(_config,@"nonSelectedBgColor"); self->leftCornerIcon = WOExtGetProperty(_config, @"leftCornerIcon"); self->rightCornerIcon = WOExtGetProperty(_config, @"rightCornerIcon"); @@ -78,6 +74,8 @@ static NSNumber *YesNumber; self->fontColor = WOExtGetProperty(_config, @"fontColor"); self->fontSize = WOExtGetProperty(_config, @"fontSize"); self->fontFace = WOExtGetProperty(_config, @"fontFace"); + + self->disabledTabKeys = WOExtGetProperty(_config, @"disabledTabKeys"); self->template = [_t retain]; } @@ -85,28 +83,23 @@ static NSNumber *YesNumber; } - (void)dealloc { - RELEASE(self->selection); - - RELEASE(self->bgColor); - RELEASE(self->nonSelectedBgColor); - RELEASE(self->leftCornerIcon); - RELEASE(self->rightCornerIcon); - - RELEASE(self->leftTabIcon); - RELEASE(self->selectedTabIcon); - RELEASE(self->tabIcon); - - RELEASE(self->width); - RELEASE(self->height); - - RELEASE(self->activeBgColor); - RELEASE(self->inactiveBgColor); - - RELEASE(self->fontColor); - RELEASE(self->fontSize); - RELEASE(self->fontFace); - - RELEASE(self->template); + [self->disabledTabKeys release]; + [self->selection release]; + [self->bgColor release]; + [self->nonSelectedBgColor release]; + [self->leftCornerIcon release]; + [self->rightCornerIcon release]; + [self->leftTabIcon release]; + [self->selectedTabIcon release]; + [self->tabIcon release]; + [self->width release]; + [self->height release]; + [self->activeBgColor release]; + [self->inactiveBgColor release]; + [self->fontColor release]; + [self->fontSize release]; + [self->fontFace release]; + [self->template release]; [super dealloc]; } @@ -119,14 +112,51 @@ static NSNumber *YesNumber; if (_state == nil) return; } +- (NSArray *)filterKeys:(NSArray *)_keys inContext:(WOContext *)_ctx { + NSMutableArray *ma; + NSArray *rkeys; + unsigned i, count; + + if (self->disabledTabKeys == nil || _keys == nil) + return _keys; + + rkeys = [self->disabledTabKeys valueInComponent:[_ctx component]]; + if (rkeys == nil || (count = [rkeys count]) == 0) + return _keys; + + ma = [[_keys mutableCopy] autorelease]; + for (i = 0; i < count; i++) { + unsigned j, jc; + + // TODO: not particulary efficient, but should be OK ... */ + for (j = 0, jc = [ma count]; j < jc; j++) { + WETabItemInfo *info; + + info = [ma objectAtIndex:j]; + if (![info->key isEqualToString:[rkeys objectAtIndex:i]]) + continue; + + [ma removeObjectAtIndex:j]; + } + } + + return ma; +} + - (NSArray *)collectKeysInContext:(WOContext *)_ctx { + NSArray *keys; + /* collect mode, collects all keys */ [_ctx setObject:WETabView_COLLECT forKey:WETabView_HEAD]; - [self->template appendToResponse:nil inContext:_ctx]; - [_ctx removeObjectForKey:WETabView_HEAD]; - return [_ctx objectForKey:WETabView_KEYS]; + + keys = [_ctx objectForKey:WETabView_KEYS]; + + /* filter keys */ + keys = [self filterKeys:keys inContext:_ctx]; + + return keys; } /* responder */ diff --git a/sope-appserver/WEExtensions/WETableCalcMatrix.h b/sope-appserver/WEExtensions/WETableCalcMatrix.h index 280e50c5..0a8837e5 100644 --- a/sope-appserver/WEExtensions/WETableCalcMatrix.h +++ b/sope-appserver/WEExtensions/WETableCalcMatrix.h @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #ifndef __WETableCalcMatrix_H__ #define __WETableCalcMatrix_H__ diff --git a/sope-appserver/WEExtensions/WETableView/WETableView.m b/sope-appserver/WEExtensions/WETableView/WETableView.m index caa01a23..c3482089 100644 --- a/sope-appserver/WEExtensions/WETableView/WETableView.m +++ b/sope-appserver/WEExtensions/WETableView/WETableView.m @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #include "WETableView.h" #include "WETableView+Grouping.h" @@ -48,7 +47,7 @@ @end -#include "WEClientCapabilities.h" +#include @implementation WETableView diff --git a/sope-appserver/WEExtensions/WETreeView.m b/sope-appserver/WEExtensions/WETreeView.m index 076a4a0a..3b60e2f8 100644 --- a/sope-appserver/WEExtensions/WETreeView.m +++ b/sope-appserver/WEExtensions/WETreeView.m @@ -187,7 +187,6 @@ #include "WETreeContextKeys.h" #include "WETreeMatrixElement.h" #include "common.h" -#include #include NSString *WETreeView_HEADER_MODE = @"WETreeView_HEADER_MODE"; diff --git a/sope-appserver/WEExtensions/WExCalElemBuilder.m b/sope-appserver/WEExtensions/WExCalElemBuilder.m index 626c3a60..7aef447f 100644 --- a/sope-appserver/WEExtensions/WExCalElemBuilder.m +++ b/sope-appserver/WEExtensions/WExCalElemBuilder.m @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #include diff --git a/sope-appserver/WEExtensions/WExDnDElemBuilder.m b/sope-appserver/WEExtensions/WExDnDElemBuilder.m index 709a09eb..da0150bd 100644 --- a/sope-appserver/WEExtensions/WExDnDElemBuilder.m +++ b/sope-appserver/WEExtensions/WExDnDElemBuilder.m @@ -1,7 +1,7 @@ /* - Copyright (C) 2000-2003 SKYRIX Software AG + Copyright (C) 2000-2004 SKYRIX Software AG - This file is part of OGo + This file is part of OpenGroupware.org. OGo is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the @@ -18,7 +18,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id$ #include diff --git a/sope-appserver/WEExtensions/common.h b/sope-appserver/WEExtensions/common.h index 4c67de56..54a4accb 100644 --- a/sope-appserver/WEExtensions/common.h +++ b/sope-appserver/WEExtensions/common.h @@ -18,14 +18,15 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// $Id: common.h 1 2004-08-20 10:08:27Z znek $ #ifndef __WEExtensions_common_H__ #define __WEExtensions_common_H__ #import -#include + #include +#include + #if NeXT_Foundation_LIBRARY || APPLE_Foundation_LIBRARY # include -- 2.39.5