]> err.no Git - sope/commitdiff
added support for component-action less wetreeview
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 28 Sep 2004 11:41:57 +0000 (11:41 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 28 Sep 2004 11:41:57 +0000 (11:41 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@180 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/WEExtensions/ChangeLog
sope-appserver/WEExtensions/Version
sope-appserver/WEExtensions/WETreeData.m
sope-appserver/samples/WOxExtTest/TreeView.m
sope-appserver/samples/WOxExtTest/TreeView.wox

index 99ae770594ecf9abe66063a493d06d256f391b7e..42eff02f4cceb39eccd5af6542370a2ee705c322 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-28  Helge Hess  <helge.hess@opengroupware.org>
+
+       * WETreeData.m: added new 'treeLink' association which can be used to
+         override the componentActionURL used for expand/collapse and therfore
+         allow for session less tree generation (v4.3.59)
+
 2004-09-21  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * WEExtensions.xcode: Fixed dependencies to resemble the make process
index 296d4b3c6560e21ea19676c248e5235bbd629427..de3d3ecd1a652cb6df956911af35bddf3a29e7d0 100644 (file)
@@ -1,3 +1,3 @@
-# $Id$
+# version file
 
-SUBMINOR_VERSION:=58
+SUBMINOR_VERSION:=59
index 4adb50a074d9e129c519adda755788b4715958d5..1e2d1e87414075ece11bd6d95101e245ab38b260 100644 (file)
@@ -30,6 +30,7 @@
     cornerIcon
     title
     string
+    treeLink (do not generate a -componentActionURL but use the specified link)
 
   Example:
       TreeDataCell: WETreeData {
@@ -55,6 +56,7 @@
   WOAssociation *string;
   WOAssociation *icon;
   WOAssociation *cornerIcon;
+  WOAssociation *treeLink;
   
   BOOL          doTable;
   WOElement     *template;
@@ -84,6 +86,7 @@ static Class StrClass = Nil;
     self->cornerIcon    = WOExtGetProperty(_config, @"cornerIcon");
     self->title         = WOExtGetProperty(_config, @"title");
     self->string        = WOExtGetProperty(_config, @"string");
+    self->treeLink      = WOExtGetProperty(_config, @"treeLink");
 
     self->template = [_root retain];
   }
@@ -92,6 +95,7 @@ static Class StrClass = Nil;
 
 - (void)dealloc {
   [self->isTreeElement release];
+  [self->treeLink      release];
   [self->icon          release];
   [self->cornerIcon    release];
   [self->title         release];
@@ -130,11 +134,13 @@ static Class StrClass = Nil;
 - (void)_appendLink:(NSString *)_icon resp:(WOResponse *)_response
   ctx:(WOContext *)_ctx
 {
-  BOOL doForm = [_ctx isInForm];
-
+  BOOL doForm;
+  
+  // doForm = [_ctx isInForm];
   doForm = NO;
   
   if (doForm) {
+    // TODO: we might want to support an assoc to provide the name
     [_response appendContentString:@"<input type=\"image\" border=\"0\""];
     [_response appendContentString:@" align=\"top\" name=\""];
     [_response appendContentString:[_ctx elementID]];
@@ -143,12 +149,23 @@ static Class StrClass = Nil;
     [_response appendContentString:@"\" />"];
   }
   else {
+    NSString *link;
+    
     [_ctx appendElementIDComponent:WETreeView_ZOOM_ACTION_ID];
-    [_response appendContentString:@"<a href=\""];
-    [_response appendContentString:[_ctx componentActionURL]];
-    [_response appendContentString:@"\">"];
+
+    link = (self->treeLink != nil)
+      ? [self->treeLink stringValueInComponent:[_ctx component]]
+      : [_ctx componentActionURL];
+    
+    if ([link length] > 0) {
+      [_response appendContentString:@"<a href=\""];
+      [_response appendContentString:link];
+      [_response appendContentString:@"\">"];
+    }
     [self _appendIcon:_icon alt:@"z" toResponse:_response inContext:_ctx];
-    [_response appendContentString:@"</a>"];
+    if ([link length] > 0)
+      [_response appendContentString:@"</a>"];
+    
     [_ctx deleteLastElementIDComponent];
   }
 }
@@ -159,13 +176,24 @@ static Class StrClass = Nil;
 {
   BOOL     doLink;
   NSString *img;
+  NSString *link;
+  
+  // TODO: we need to patch this for stateless operation
   
+  link   = nil;
   doLink = (_key == WETreeView_Plus   || _key == WETreeView_CornerPlus ||
             _key == WETreeView_Minus  || _key == WETreeView_CornerMinus);
+  if (doLink) {
+    if (self->treeLink) {
+      link = [self->treeLink stringValueInComponent:[_ctx component]];
+      if (link == nil)
+       doLink = NO;
+    }
+  }
+  
+  img = [_ctx objectForKey:_key];
+  img = WEUriOfResource(img, _ctx);
   
-  img    = [_ctx objectForKey:_key];
-  img    = WEUriOfResource(img, _ctx);
-
   if (_key == WETreeView_Leaf) {
     NSString *tmp = [self->icon stringValueInComponent:[_ctx component]];
     
@@ -182,16 +210,16 @@ static Class StrClass = Nil;
     if (doLink) {
       [_ctx appendElementIDComponent:WETreeView_ZOOM_ACTION_ID];
       [_response appendContentString:@"<a href=\""];
-      [_response appendContentString:[_ctx componentActionURL]];
+      [_response appendContentString:(link ? link :[_ctx componentActionURL])];
       [_response appendContentString:@"\">"];
 
       if (_key == WETreeView_Plus || _key == WETreeView_CornerPlus)
         [_response appendContentString:@"<tt>[+]</tt>"];
       else if (_key == WETreeView_Minus || _key == WETreeView_CornerMinus)
         [_response appendContentString:@"<tt>[-]</tt>"];
-    
+      
       [_response appendContentString:@"</a>"];
-      [_ctx deleteLastElementIDComponent];
+      [_ctx deleteLastElementIDComponent]; /* WETreeView_ZOOM_ACTION_ID */
     }
     else if (_key == WETreeView_Leaf)
       [_response appendContentString:@"<tt>--&nbsp;</tt>"];
@@ -215,10 +243,14 @@ static Class StrClass = Nil;
 }
 
 - (void)appendHeader:(WOResponse *)_response inContext:(WOContext *)_ctx {
-  WOComponent *cmp   = [_ctx component];
-  NSString    *tmp   = [self->title stringValueInComponent:cmp];
-  BOOL        isTree = [self->isTreeElement boolValueInComponent:cmp];;
-
+  WOComponent *cmp;
+  NSString    *tmp;
+  BOOL        isTree;
+  
+  cmp    = [_ctx component];
+  tmp    = [self->title stringValueInComponent:cmp];
+  isTree = [self->isTreeElement boolValueInComponent:cmp];;
+  
   if (tmp == nil)
     return;
   
@@ -231,10 +263,10 @@ static Class StrClass = Nil;
                         [_ctx component]]];
     }
     if (isTree) {
-        [_response appendContentString:@" colspan=\""];
-        [_response appendContentString:
+      [_response appendContentString:@" colspan=\""];
+      [_response appendContentString:
                    [[_ctx objectForKey:WETreeView_HEADER_MODE] stringValue]];
-        [_response appendContentString:@"\"><nobr>"];
+      [_response appendContentString:@"\"><nobr>"];
     }
     else
       [_response appendContentString:@"><nobr>"];
index 2040543ced6f77f179c4b1fba834477dfef76611..f5993bc6821f36116eaa157a219086aff846f362 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/WOComponent.h>
 
index 429b5716f78d4aa5bd7147aa3062b2888d637a01..808031eb630ea854a0e4164b8ab9990479a912e2 100644 (file)
@@ -30,7 +30,8 @@
              
              <!-- Header Content -->
              
-             <var:tree-header const:isTreeElement="YES" const:bgcolor="#FFDAAA">
+             <var:tree-header const:isTreeElement="YES"
+                              const:bgcolor="#FFDAAA">
                <b>tree cell</b><entity name="nbsp"/><entity name="nbsp"/>
              </var:tree-header>
              <var:tree-header const:isTreeElement="NO" const:bgcolor="#FFDAAA">