]> err.no Git - sope/commitdiff
removed WEClientCapabilities.h
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 23 Nov 2004 18:57:57 +0000 (18:57 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 23 Nov 2004 18:57:57 +0000 (18:57 +0000)
added ability to disable tab items

git-svn-id: http://svn.opengroupware.org/SOPE/trunk@407 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

29 files changed:
sope-appserver/WEExtensions/ChangeLog
sope-appserver/WEExtensions/GNUmakefile
sope-appserver/WEExtensions/GNUmakefile.postamble
sope-appserver/WEExtensions/JSClipboard.m
sope-appserver/WEExtensions/JSMenu.h
sope-appserver/WEExtensions/JSMenu.m
sope-appserver/WEExtensions/JSMenuItem.h
sope-appserver/WEExtensions/JSMenuItem.m
sope-appserver/WEExtensions/JSShiftClick.m
sope-appserver/WEExtensions/README
sope-appserver/WEExtensions/TODO
sope-appserver/WEExtensions/Version
sope-appserver/WEExtensions/WEBrowser.m
sope-appserver/WEExtensions/WECalendarField.h
sope-appserver/WEExtensions/WECalendarField.m
sope-appserver/WEExtensions/WEClientCapabilities.h [deleted file]
sope-appserver/WEExtensions/WECollapsibleComponentContent.m
sope-appserver/WEExtensions/WEDragContainer.m
sope-appserver/WEExtensions/WEDropContainer.m
sope-appserver/WEExtensions/WEPageView.m
sope-appserver/WEExtensions/WETabView.api
sope-appserver/WEExtensions/WETabView.h
sope-appserver/WEExtensions/WETabView.m
sope-appserver/WEExtensions/WETableCalcMatrix.h
sope-appserver/WEExtensions/WETableView/WETableView.m
sope-appserver/WEExtensions/WETreeView.m
sope-appserver/WEExtensions/WExCalElemBuilder.m
sope-appserver/WEExtensions/WExDnDElemBuilder.m
sope-appserver/WEExtensions/common.h

index 29565ec737bc01ad48fbdb9a108ae401b03be980..8b998d78da65fdc77c6b8227cce14e8fc9ee65aa 100644 (file)
@@ -1,3 +1,12 @@
+2004-11-23  Helge Hess  <helge.hess@opengroupware.org>
+
+       * 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  <znek@mulle-kybernetik.com>
 
        * WEExtensions.xcode: bumped the framework version
index 2ffd62fb2d601c8ec4117db4c956922299df5758..08ccd4a139afc2e8924b0605d6c9ab6eaf7ab5af 100644 (file)
@@ -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                   \
index fb5c01e520f9f5c692024a33bdf19998eec2a3cb..fbe3baa5cf3e9f428a7e9bd7cb4069d0b5a8a557 100644 (file)
@@ -1,5 +1,4 @@
-# $Id$
-
+# postprocessing makefile 
 
 WEDropScript.jsm : WEDropScript.js
        sh js2m.sh $< $@
index b9e6a417bdd2ce6a48c851aacd0cf74904f0063b..e20adb1b7c83095ab565a82d9ab020436eb8fc99 100644 (file)
@@ -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 <NGObjWeb/NGObjWeb.h>
 #include <NGObjWeb/WEClientCapabilities.h>
index d9b807d269c3f0dd3ec1f7dd4c5ffe55ba0c8423..11fa9455dfe7d9a332a147664356e59ab8f96036 100644 (file)
@@ -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__
index 3f76917097846855443d4dd2e9bfd5d6062804ab..59e289b98b96fd4d0eb78b847140add283b685fd 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include "JSMenu.h"
 #include "JSMenuItem.h"
index 0a99b2ce06051a5a50c50a86f0e8915c6037a3de..bf37ce59049937d0259a107cdeb84389ca3ee78c 100644 (file)
@@ -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__
index fdb864856b0d68ee08029d7119ff2df43b6cefbf..d893dd14bc3baf184188aaf60122cb35056930a7 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #import <NGObjWeb/NGObjWeb.h>
 #import <Foundation/Foundation.h>
index fb843b319f3e8e4cc45c96f980dbe1cbb9f4cca1..eb050b5c3428ef3f4e320aa77a389d30c5d5a6d4 100644 (file)
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
-#include <NGObjWeb/NGObjWeb.h>
-#include "WEClientCapabilities.h"
+#include <NGObjWeb/WODynamicElement.h>
 
 /*
 
@@ -69,6 +67,9 @@
 }
 @end
 
+#include "common.h"
+#include <NGObjWeb/WEClientCapabilities.h>
+
 static NSString *JSShiftClick_Script =
       @"<script language=\"JavaScript\">\n"
       @"<!--\n"
@@ -106,8 +107,6 @@ static NSString *JSShiftClick_Script =
       @"//-->\n"
       @"</script>";
 
-#include "common.h"
-
 @implementation JSShiftClick
 
 - (id)initWithName:(NSString *)_name
index fa93f361beb5eec53b5a67f6e75f62962a4f368a..848104933f7ebad409176c613fc9860bff9a6d31 100644 (file)
@@ -1,5 +1,3 @@
-# $Id$
-
 WEExtensions
 ============
 
index db38e7786ddd52ce8d8e07279183ae94cd858e3a..a4f90d9ae7e58a74ac4541969161d98bc2acd2cc 100644 (file)
@@ -1,5 +1,3 @@
-# $Id$
-
 TODO for WEExtensions
 =====================
 
index 3fea82c731bd0ba8206616e89526d2b254f05cf4..645b0033f8950f99fd834a9346f6527653b302c2 100644 (file)
@@ -1,3 +1,3 @@
 # version file
 
-SUBMINOR_VERSION:=62
+SUBMINOR_VERSION:=63
index 0b9c88ee76b6d20c18181beb5611c08652608b95..7f7d77606c570458e49c00f7e74602f6b380ba3e 100644 (file)
@@ -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
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
-#include <NGObjWeb/NGObjWeb.h>
-#include "WEClientCapabilities.h"
-#include "common.h"
+#include <NGObjWeb/WODynamicElement.h>
 
 /*
-  API:
+  WEBrowser
+  
+  TODO: document
 
+  API:
     - extra attributes are attributes of the <table> 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 <NGObjWeb/WEClientCapabilities.h>
 #include "common.h"
 
+static NSString *WEBrowser_Plus    = @"WEBrowser_Plus";
+static NSString *WEBrowser_Minus   = @"WEBrowser_Minus";
+
 @implementation WEBrowser
 
 #if 0
index 870681e98fe5e45b7dfe0edec13f288c5d06d92c..05f4394ddd869d7b3f6459e43c7f8ffe4d06adc7 100644 (file)
@@ -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__
index a5778d99efb39989852258f4f4c7cd922b4b86c5..59c85954c307b805796e8ef32721c8deb2fc73f7 100644 (file)
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include "WECalendarField.h"
-#include <NGObjWeb/NGObjWeb.h>
-#include <NGExtensions/NGExtensions.h>
-#include "WEClientCapabilities.h"
+#include <NGObjWeb/WEClientCapabilities.h>
 #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 (file)
index 8e64618..0000000
+++ /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 <NGObjWeb/WEClientCapabilities.h>
index ccc9ba24f8009046adbbfba70e1e6500e382d84c..14466973f5865b2d14f6afd40c3170dc8d9ea9ec 100644 (file)
@@ -53,9 +53,8 @@
 }
 @end
 
-#include <NGObjWeb/NGObjWeb.h>
 #include "WEContextConditional.h"
-#include "WEClientCapabilities.h"
+#include <NGObjWeb/WEClientCapabilities.h>
 #include "common.h"
 
 static NSString *WECollapsible_TitleMode   = @"WECollapsible_TitleMode";
index dc7d385e85b7d28d08d517c8bdd222f8065713f3..1d68b9a3c1b78536179c8b9f38b1beeef3252bea 100644 (file)
@@ -50,9 +50,7 @@
   inContext:(WOContext *)_ctx;
 @end
 
-#include "WEClientCapabilities.h"
-#include <NGObjWeb/NGObjWeb.h>
-#include <NGExtensions/NGExtensions.h>
+#include <NGObjWeb/WEClientCapabilities.h>
 #include "common.h"
 
 //#define DEBUG_TAKEVALUES 1
index dea05065cb566ff2af22c4237261722add2cbeee..b31542b16d5c31c523c44924f23c5a95e83c1024 100644 (file)
@@ -67,9 +67,7 @@
   inContext:(WOContext *)_ctx;
 @end
 
-#include "WEClientCapabilities.h"
-#import <NGObjWeb/NGObjWeb.h>
-#import <NGExtensions/NGExtensions.h>
+#include <NGObjWeb/WEClientCapabilities.h>
 #include "common.h"
 
 @implementation WEDropContainer
index 157ae805748e7d9d24d4f455cb175b8f4fd6f2a4..9aea2d1856c22c7e01f2cd4e5ea854515a7444be 100644 (file)
 }
 @end
 
+#include <NGObjWeb/WEClientCapabilities.h>
 #include "common.h"
-#include "WEClientCapabilities.h"
-#import <NGObjWeb/NGObjWeb.h>
-#import <NGExtensions/NGExtensions.h>
-#import <EOControl/EOControl.h>
 
 // #define DEBUG_TAKEVALUES 1
 
index 96b41a913dd425d2c11859541d343052ee6652ea..aa3d152a16727f73bdaf3f029e929c5b90a29eb7 100644 (file)
@@ -21,4 +21,6 @@
   <binding name="fontColor" />
   <binding name="fontSize" />
   <binding name="fontFace" />
+
+  <binding name="disabledTabKeys" />
 </wo>
index 9eff985a3788823dfa2667c25d102c001b135dc9..c12ecc3dd20ecffd65b5e8b64d6fa448a7625c3f 100644 (file)
   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 <NGObjWeb/WODynamicElement.h>
 
 /*
-  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
   WOAssociation *height;
   WOAssociation *activeBgColor;
   WOAssociation *inactiveBgColor;
-
+  
+  WOAssociation *disabledTabKeys;
+  
   WOAssociation *fontColor;
   WOAssociation *fontSize;
   WOAssociation *fontFace;
-
+  
   id            template;
 }
 
index d1e7a484b02eef277e4c0b56ec7f7fad8ba83164..838711fe3795da088ee8be7d5eb4a67a484a9ed6 100644 (file)
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include "WETabView.h"
+#include <NGObjWeb/WEClientCapabilities.h>
 #include "common.h"
-#include "WEClientCapabilities.h"
-#import <NGObjWeb/NGObjWeb.h>
-#import <NGExtensions/NGExtensions.h>
-#import <EOControl/EOControl.h>
 
 #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 */
index 280e50c559ac3e8088ca798dc52508c0c1da5c7d..0a8837e55b4b9af51ff00436416b0fa5de94e7cf 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #ifndef __WETableCalcMatrix_H__
 #define __WETableCalcMatrix_H__
index caa01a236f281d59ae9a9273e5384388fe7cab1e..c348208933a827f7c8b01437865bda04f4c40915 100644 (file)
@@ -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 <NGObjWeb/WEClientCapabilities.h>
 
 @implementation WETableView
 
index 076a4a0ad2aa8ca11916fcd224409edbf1a9cc6b..3b60e2f8c056a293096c0a35213ebfa7fc4ab2a1 100644 (file)
 #include "WETreeContextKeys.h"
 #include "WETreeMatrixElement.h"
 #include "common.h"
-#include <NGObjWeb/NGObjWeb.h>
 #include <NGObjWeb/WEClientCapabilities.h>
 
 NSString *WETreeView_HEADER_MODE    = @"WETreeView_HEADER_MODE";
index 626c3a60db5a7a7e9766c892a59039de19688b64..7aef447fa8595b27083e2cc36a1fab19ea8969b9 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include <NGObjWeb/WOxElemBuilder.h>
 
index 709a09eb8144d9fdabc7d6e5fc6df06d437146a0..da0150bd97d4d51aa6b97c47bf08480bbdd36a6a 100644 (file)
@@ -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 <NGObjWeb/WOxElemBuilder.h>
 
index 4c67de564fe2b19be7860e56fb06a40fb573b6a4..54a4accb40a6cf76586e1db10f540fcc222808dd 100644 (file)
   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 <Foundation/Foundation.h>
-#include <NGObjWeb/NGObjWeb.h>
+
 #include <NGExtensions/NGExtensions.h>
+#include <NGObjWeb/NGObjWeb.h>
+
 
 #if NeXT_Foundation_LIBRARY || APPLE_Foundation_LIBRARY
 #  include <NGExtensions/NGObjectMacros.h>