]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1072 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 31 May 2007 13:51:56 +0000 (13:51 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 31 May 2007 13:51:56 +0000 (13:51 +0000)
UI/MailerUI/UIxMailFolderMenu.h [deleted file]
UI/MailerUI/UIxMailFolderMenu.m [deleted file]
UI/MailerUI/UIxMailTree.h [deleted file]
UI/MailerUI/UIxMailTree.m [deleted file]
UI/MailerUI/UIxMailTreeBlock.h [deleted file]
UI/MailerUI/UIxMailTreeBlock.m [deleted file]
UI/MailerUI/UIxMailTreeBlockJS.h [deleted file]
UI/MailerUI/UIxMailTreeBlockJS.m [deleted file]

diff --git a/UI/MailerUI/UIxMailFolderMenu.h b/UI/MailerUI/UIxMailFolderMenu.h
deleted file mode 100644 (file)
index 4a07856..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* UIxMailFolderMenu.h - this file is part of SOGo
- *
- * Copyright (C) 2006 Inverse groupe conseil
- *
- * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This file 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef UIXMAILFOLDERMENU_H
-#define UIXMAILFOLDERMENU_H
-
-#import "UIxMailTree.h"
-
-@class NSArray;
-
-@interface UIxMailFolderMenu : UIxMailTree
-{
-  NSString *menuId;
-  NSString *parentMenu;
-}
-
-- (void) setMenuId: (NSString *) newMenuId;
-- (NSString *) menuId;
-
-- (void) setParentMenu: (NSString *) newParentMenu;
-- (NSString *) parentMenu;
-
-- (NSArray *) levelledNodes;
-
-@end
-
-#endif /* UIXMAILFOLDERMENU_H */
diff --git a/UI/MailerUI/UIxMailFolderMenu.m b/UI/MailerUI/UIxMailFolderMenu.m
deleted file mode 100644 (file)
index e90d9f4..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* UIxMailFolderMenu.m - this file is part of SOGo
- *
- * Copyright (C) 2006 Inverse groupe conseil
- *
- * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This file 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#import <Foundation/NSArray.h>
-#import <Foundation/NSString.h>
-
-#import "UIxMailTreeBlock.h"
-#import "UIxMailFolderMenu.h"
-
-@implementation UIxMailFolderMenu
-
-- (void) setMenuId: (NSString *) newMenuId
-{
-  menuId = newMenuId;
-}
-
-- (NSString *) menuId
-{
-  return menuId;
-}
-
-- (void) setParentMenu: (NSString *) newParentMenu
-{
-  parentMenu = newParentMenu;
-}
-
-- (NSString *) parentMenu
-{
-  return parentMenu;
-}
-
-- (NSArray *) levelledNodes
-{
-  NSEnumerator *nodes;
-  NSMutableArray *levelledNodes;
-  UIxMailTreeBlock *block;
-
-  levelledNodes = [NSMutableArray new];
-  [levelledNodes autorelease];
-
-  nodes = [[self flattenedNodes] objectEnumerator];
-  block = [nodes nextObject];
-
-  while (block)
-    {
-      if ([block parent] == [parentMenu intValue])
-        [levelledNodes addObject: block];
-      block = [nodes nextObject];
-    }
-
-  return levelledNodes;
-}
-
-- (NSString *) iconForMenuItem
-{
-  NSString *iconName;
-
-  iconName = [item iconName];
-  if (!iconName)
-    iconName = [self defaultIconName];
-
-  return [self urlForResourceFilename: iconName];
-}
-
-@end
diff --git a/UI/MailerUI/UIxMailTree.h b/UI/MailerUI/UIxMailTree.h
deleted file mode 100644 (file)
index b2c6a6a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/* UIxMailTree.h - this file is part of $PROJECT_NAME_HERE$
- *
- * Copyright (C) 2006  Inverse groupe conseil
- *
- * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This file 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef UIXMAILTREE_H
-#define UIXMAILTREE_H
-
-#import <SOGoUI/UIxComponent.h>
-
-@class NSString;
-
-@interface UIxMailTree : UIxComponent
-{
-  NSString *rootClassName;
-  NSString *treeFolderAction;
-  NSMutableArray *flattenedNodes;
-  id rootNodes;
-  id item;
-}
-
-- (NSArray *) flattenedNodes;
-- (NSString *) defaultIconName;
-
-@end
-
-#endif /* UIXMAILTREE_H */
diff --git a/UI/MailerUI/UIxMailTree.m b/UI/MailerUI/UIxMailTree.m
deleted file mode 100644 (file)
index 0204d4f..0000000
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
-  Copyright (C) 2004 SKYRIX Software AG
-
-  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; 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.
-*/
-
-#import "common.h"
-
-#import <SoObjects/Mailer/SOGoMailBaseObject.h>
-#import <SoObjects/Mailer/SOGoMailAccount.h>
-#import <SoObjects/Mailer/SOGoMailFolder.h>
-#import <NGObjWeb/SoComponent.h>
-#import <NGObjWeb/SoObject+SoDAV.h>
-
-#import "UIxMailTree.h"
-#import "UIxMailTreeBlock.h"
-
-/*
-  Support special icons:
-    tbtv_leaf_corner_17x17.gif
-    tbtv_inbox_17x17.gif
-    tbtv_drafts_17x17.gif
-    tbtv_sent_17x17.gif
-    tbtv_trash_17x17.gif
-*/
-
-@interface NSString(DotCutting)
-
-- (NSString *)stringByCuttingOffAtDotsWhenExceedingLength:(int)_maxLength;
-
-- (NSString *)titleForSOGoIMAP4String;
-
-@end
-
-@implementation UIxMailTree
-
-static BOOL debugBlocks = NO;
-
-+ (void)initialize
-{
-  [UIxMailTreeBlock class]; // ensure that globals are initialized
-}
-
-- (id) init
-{
-  if ((self = [super init]))
-    {
-      flattenedNodes = nil;
-    }
-
-  return self;
-}
-
-- (void) dealloc
-{
-  [treeFolderAction release];
-  [rootClassName release];
-  [rootNodes release];
-  [item release];
-  [flattenedNodes release];
-  [super dealloc];
-}
-
-/* icons */
-
-- (NSString *) defaultIconName
-{
-  return @"tbtv_leaf_corner_17x17.gif";
-}
-
-- (NSString *)iconNameForType:(NSString *)_type {
-  if (![_type isNotNull])
-    return [self defaultIconName];
-  
-  //return @"tbtv_drafts_17x17.gif";
-  
-  return [self defaultIconName];
-}
-
-/* accessors */
-
-- (void)setRootClassName:(id)_rootClassName {
-  ASSIGNCOPY(rootClassName, _rootClassName);
-}
-- (id)rootClassName {
-  return rootClassName;
-}
-
-- (void)setItem:(id)_item {
-  ASSIGN(item, _item);
-}
-- (id)item {
-  return item;
-}
-
-- (void)setTreeFolderAction:(NSString *)_action {
-  ASSIGNCOPY(treeFolderAction, _action);
-}
-- (NSString *)treeFolderAction {
-  return treeFolderAction;
-}
-
-- (NSString *)itemIconName {
-  // TODO: only called once!
-  NSString *ftype;
-  
-  ftype = [[self item] valueForKey:@"outlookFolderClass"];
-  return [self iconNameForType:ftype];
-}
-
-/* fetching subfolders */
-
-- (NSArray *)fetchSubfoldersOfObject:(id)_object {
-  /* Walk over toManyRelationshipKeys and lookup the controllers for them. */
-  NSMutableArray *ma;
-  NSArray  *names;
-  unsigned i, count;
-  
-  if ((names = [_object toManyRelationshipKeys]) == nil) {
-    if (debugBlocks) [self logWithFormat:@"no to-many: %@", _object];
-    return nil;
-  }
-  
-  if (debugBlocks) {
-    [self logWithFormat:@"to-many: %@ %@", _object,
-         [names componentsJoinedByString:@","]];
-  }
-
-  count = [names count];
-  ma    = [NSMutableArray arrayWithCapacity:(count + 1)];
-  for (i = 0; i < count; i++) {
-    id folder;
-    
-    // TODO: use some context or reuse the main context?
-    folder = [_object lookupName:[names objectAtIndex:i] inContext:nil 
-                     acquire:NO];
-    if (folder == nil) {
-      if (debugBlocks) {
-       [self logWithFormat:@"  DID NOT FIND FOLDER %@: %@",
-               _object,
-               [names objectAtIndex:i]];
-      }
-      continue;
-    }
-    if ([folder isKindOfClass:[NSException class]]) {
-      if (debugBlocks) {
-       [self logWithFormat:@"  FOLDER LOOKUP EXCEPTION %@: %@",
-               [names objectAtIndex:i], folder];
-      }
-      continue;
-    }
-    
-    [ma addObject:folder];
-  }
-  if (debugBlocks)
-    [self logWithFormat:@"  returning: %@ %@", _object, ma];
-  return ma;
-}
-
-/* navigation nodes */
-
-- (BOOL)isRootObject:(id)_object {
-  if (![_object isNotNull]) {
-    [self warnWithFormat:@"(%s): got to root by nil lookup ...",
-            __PRETTY_FUNCTION__];
-    return YES;
-  }
-
-  if ([_object isKindOfClass:NSClassFromString(@"SOGoUserFolder")])
-    return YES;
-  
-  return [_object isKindOfClass:NSClassFromString([self rootClassName])];
-}
-
-- (NSString *)treeNavigationLinkForObject:(id)_object
-                                 atDepth:(int)_depth
-{
-  NSMutableString *link;
-  int i;
-  
-  link = [NSMutableString new];
-  [link autorelease];
-
-  for (i = 0; i < _depth; i++)
-    [link appendString: @"../"];
-
-  [link appendFormat: @"%@/%@",
-       [_object nameInContainer],
-       [self treeFolderAction]];
-  
-  return link;
-}
-
-- (void) getTitle: (NSString **)_t
-       folderType: (NSString **)_ft
-         andIcon: (NSString **)_icon
-       forObject: (id)_object
-{
-  // TODO: need to refactor for reuse!
-  NSString *ftype;
-  unsigned len;
-
-//   if ([_object respondsToSelector: @selector (outlookFolderClass)])
-//     ftype = [_object outlookFolderClass];
-//   else
-    ftype = [_object valueForKey:@"outlookFolderClass"];
-  len = [ftype length];
-  
-  *_ft = nil;
-
-  switch (len) {
-  case 8:
-    if ([ftype isEqualToString:@"IPF.Sent"]) {
-      *_t = [self labelForKey:@"SentFolderName"];
-      *_icon = @"tbtv_sent_17x17.gif";
-      *_ft = @"sent";
-      return;
-    }
-    break;
-  case 9:
-    if ([ftype isEqualToString:@"IPF.Inbox"]) {
-      *_t = [self labelForKey:@"InboxFolderName"];
-      *_icon = @"tbtv_inbox_17x17.gif";
-      *_ft = @"inbox";
-      return;
-    }
-    if ([ftype isEqualToString:@"IPF.Trash"]) {
-      *_t = [self labelForKey:@"TrashFolderName"];
-      *_icon = @"tbtv_trash_17x17.gif";
-      *_ft = @"trash";
-      return;
-    }
-    break;
-  case 10:
-    if ([ftype isEqualToString:@"IPF.Drafts"]) {
-      *_t = [self labelForKey:@"DraftsFolderName"];
-      *_icon = @"tbtv_drafts_17x17.gif";
-      *_ft = @"drafts";
-      return;
-    }
-//     if ([ftype isEqualToString:@"IPF.Filter"]) {
-//       *_t = [self labelForKey:@"SieveFolderName"];
-//       *_icon = nil;
-//       *_ft = @"sieve";
-//       return;
-//     }
-    break;
-  }
-
-  *_t    = [_object davDisplayName];
-  *_icon = nil;
-  
-  if ([_object isKindOfClass:NSClassFromString(@"SOGoMailFolder")])
-    *_icon = nil;
-  else if ([_object isKindOfClass:NSClassFromString(@"SOGoMailAccount")]) {
-    *_icon = @"tbtv_account_17x17.gif";
-
-    *_ft = @"account";
-    
-    /* title processing is somehow Agenor specific and should be done in UI */
-    *_t = [[_object nameInContainer] titleForSOGoIMAP4String];
-  }
-  else if ([_object isKindOfClass:NSClassFromString(@"SOGoMailAccounts")])
-    *_icon = @"tbtv_account_17x17.gif";
-  else if ([_object isKindOfClass:NSClassFromString(@"SOGoUserFolder")])
-    *_icon = @"tbtv_inbox_17x17.gif";
-  else {
-    // TODO: use drafts icon for other SOGo folders
-    *_icon = @"tbtv_drafts_17x17.gif";
-  }
-}
-
-- (UIxMailTreeBlock *) treeNavigationBlockForLeafNode: (id) _o
-                                             atDepth: (int) _d
-{
-  UIxMailTreeBlock *md;
-  NSString *n, *i, *ft;
-  id blocks;
-
-  /* 
-     Trigger plus in treeview if it has subfolders. It is an optimization that
-     we do not generate blocks for folders which are not displayed anyway.
-  */
-  blocks = [[_o toManyRelationshipKeys] count] > 0
-    ? UIxMailTreeHasChildrenMarker
-    : nil;
-
-  [self getTitle: &n folderType: &ft andIcon: &i forObject:_o];
-
-  md = [UIxMailTreeBlock blockWithName: nil
-                        title: n
-                        iconName: i
-                        link: [self treeNavigationLinkForObject:_o atDepth:_d]
-                        isPathNode:NO
-                        isActiveNode:NO
-                        childBlocks: blocks];
-  return md;
-}
-
-- (UIxMailTreeBlock *)treeNavigationBlockForRootNode:(id)_object {
-  /*
-     This generates the block for the root object (root of the tree, we get
-     there by walking up the chain starting with the client object).
-  */
-  UIxMailTreeBlock *md;
-  NSMutableArray   *blocks;
-  NSArray          *folders;
-  NSString         *title, *icon, *ft;
-  unsigned         i, count;
-
-  if (debugBlocks) {
-    [self logWithFormat:@"block for root node 0x%08X<%@>", 
-           _object, NSStringFromClass([_object class])];
-  }
-  
-  /* process child folders */
-  
-  folders = [self fetchSubfoldersOfObject:_object];
-  count   = [folders count];
-  blocks  = [NSMutableArray arrayWithCapacity:count];
-  for (i = 0; i < count; i++) {
-    id block;
-    
-    block = [self treeNavigationBlockForLeafNode: [folders objectAtIndex:i]
-                 atDepth:0];
-    if ([block isNotNull]) [blocks addObject:block];
-  }
-  if ([blocks count] == 0)
-    blocks = nil;
-  
-  /* build block */
-  
-  [self getTitle:&title folderType: &ft andIcon:&icon forObject:_object];
-
-  md = [UIxMailTreeBlock blockWithName: [_object nameInContainer]
-                        title: title
-                        iconName: icon
-                        link: [@"../" stringByAppendingString:
-                                  [_object nameInContainer]]
-                        isPathNode: YES
-                        isActiveNode: YES
-                        childBlocks: blocks];
-  return md;
-}
-
-- (UIxMailTreeBlock *) fullTreeNavigationBlockForNode: (id)_object
-{
-  UIxMailTreeBlock *md;
-  NSMutableArray   *blocks;
-  NSArray          *folders;
-  NSString         *title, *icon, *ft;
-  unsigned         i, count;
-
-  if (debugBlocks)
-    [self logWithFormat:@"block for root node 0x%08X<%@>", 
-           _object, NSStringFromClass([_object class])];
-  
-  folders = [self fetchSubfoldersOfObject: _object];
-  count   = [folders count];
-  blocks  = [NSMutableArray arrayWithCapacity: count];
-  for (i = 0; i < count; i++)
-    {
-      id block;
-    
-      block = [self fullTreeNavigationBlockForNode: [folders objectAtIndex:i]];
-      if ([block isNotNull]) [blocks addObject:block];
-    }
-
-  if (![blocks count])
-    blocks = nil;
-  
-  [self getTitle: &title folderType: &ft andIcon: &icon forObject: _object];
-//   NSLog (@"*********** title = '%@'/icon = '%@'", title, icon);
-
-  md = [UIxMailTreeBlock blockWithName: [_object nameInContainer]
-                        title: title
-                        iconName: icon
-                        link: [@"../" stringByAppendingString:
-                                  [_object nameInContainer]]
-                        isPathNode: YES
-                        isActiveNode: YES
-                        childBlocks: blocks];
-  [md setFolderType: ft];
-
-  return md;
-}
-
-- (UIxMailTreeBlock *) treeNavigationBlockForActiveNode: (id) _object
-{
-  /* 
-     This generates the block for the clientObject (the object which has the 
-     focus)
-  */
-  UIxMailTreeBlock *md;
-  NSMutableArray   *blocks;
-  NSArray  *folders;
-  NSString *title, *icon, *ft;
-  unsigned i, count;
-
-  // TODO: maybe we can join the two implementations, this might not be
-  //       necessary
-  if ([self isRootObject:_object]) /* we are at the top */
-    return [self treeNavigationBlockForRootNode:_object];
-  
-  if (debugBlocks) {
-    [self logWithFormat:@"block for active node 0x%08X<%@> - %@", 
-           _object, NSStringFromClass([_object class]),
-           [_object davDisplayName]];
-  }
-  
-  /* process child folders */
-  
-  folders = [self fetchSubfoldersOfObject:_object];
-  count   = [folders count];
-  blocks  = [NSMutableArray arrayWithCapacity:count];
-  for (i = 0; i < count; i++) {
-    UIxMailTreeBlock *block;
-    
-    block = [self treeNavigationBlockForLeafNode: [folders objectAtIndex:i]
-                 atDepth: 0];
-    if ([block isNotNull]) [blocks addObject:block];
-  }
-  if ([blocks count] == 0) blocks = nil;
-
-  /* build block */
-  
-  [self getTitle:&title folderType: &ft andIcon:&icon forObject:_object];
-  md = [UIxMailTreeBlock blockWithName: [_object nameInContainer]
-                        title: title
-                        iconName: icon
-                        link: @"."
-                        isPathNode: YES
-                        isActiveNode: YES
-                        childBlocks: blocks];
-  return md;
-}
-
-- (UIxMailTreeBlock *)
-  treeNavigationBlockForObject: (id) _object
-         withActiveChildBlock: (UIxMailTreeBlock *) _activeChildBlock 
-                        depth: (int) _depth
-{
-  /*
-    Note: 'activeChildBlock' here doesn't mean that the block is the selected
-          folder in the tree. Its just the element which is active in the
-         list of subfolders.
-  */
-  UIxMailTreeBlock *resultBlock;
-  NSMutableArray   *blocks;
-  NSString         *activeName;
-  NSArray          *folders;
-  NSString         *title, *icon, *ft;
-  unsigned         i, count;
-  
-  activeName = [_activeChildBlock valueForKey:@"name"];
-  
-  /* process child folders */
-  
-  folders = [self fetchSubfoldersOfObject:_object];
-  count   = [folders count];
-  blocks  = [NSMutableArray arrayWithCapacity:count == 0 ? 1 : count];
-  for (i = 0; i < count; i++) {
-    UIxMailTreeBlock *block;
-    id folder;
-    
-    folder = [folders objectAtIndex:i];
-    block = [activeName isEqualToString:[folder nameInContainer]]
-      ? _activeChildBlock
-      : [self treeNavigationBlockForLeafNode: folder
-             atDepth:_depth];
-    
-    if ([block isNotNull]) [blocks addObject:block];
-  }
-  if ([blocks count] == 0) {
-    if (_activeChildBlock != nil) // if the parent has no proper fetchmethod!
-      [blocks addObject:_activeChildBlock];
-    else
-      blocks = nil;
-  }
-
-  /* build block */
-  
-  [self getTitle:&title folderType: &ft andIcon:&icon forObject:_object];
-  resultBlock
-    = [UIxMailTreeBlock blockWithName: [_object nameInContainer]
-                       title: title
-                       iconName: icon
-                       link:
-                         [self treeNavigationLinkForObject: _object 
-                               atDepth: (_depth + 1)]
-                       isPathNode:YES isActiveNode:NO
-                       childBlocks:blocks];
-  
-  /* recurse up unless we are at the root */
-
-  if ([self isRootObject:_object]) /* we are at the top */
-    return resultBlock;
-  
-  return [self treeNavigationBlockForObject:[_object container] 
-              withActiveChildBlock:resultBlock
-              depth:(_depth + 1)];
-}
-
-- (UIxMailTreeBlock *)buildNavigationNodesForObject:(id)_object {
-  /*
-    This is the top-level 'flattening' method. The _object is the active
-    object in the tree, that is, usually a "current folder".
-    
-    The tree will show:
-    all subfolders of the current folder,
-    all parent folders of the current folder up to some root,
-    all siblings along the parent chain.
-  */
-  UIxMailTreeBlock *block;
-  
-  /* 
-     This is the cursor, we create nodes below that for direct subfolders
-  */
-  if (debugBlocks) [self logWithFormat:@"ACTIVE block ..."];
-  block = [self treeNavigationBlockForActiveNode:_object];
-  if (debugBlocks) [self logWithFormat:@"  ACTIVE block: %@", block];
-  
-  if ([self isRootObject:_object]) {
-    if (debugBlocks) [self logWithFormat:@"  active block is root."];
-    return block;
-  }
-  
-  /* 
-     The following returns the root block. It calculates the chain up to the
-     root folder starting with the parent of the current object.
-  */
-  if (debugBlocks) [self logWithFormat:@"ACTIVE parent block ..."];
-  block = [self treeNavigationBlockForObject:[_object container] 
-               withActiveChildBlock:block
-               depth: 1];
-  if (debugBlocks) [self logWithFormat:@"done: %@", block];
-  return block;
-}
-
-/* tree */
-
-- (NSArray *)rootNodes {
-  UIxMailTreeBlock *navNode;
-  
-  if (rootNodes != nil)
-    return rootNodes;
-  
-  navNode = [self buildNavigationNodesForObject:[self clientObject]];
-  
-  if ([navNode hasChildren] && [navNode areChildrenLoaded])
-    rootNodes = [[navNode children] retain];
-  else if (navNode)
-    rootNodes = [[NSArray alloc] initWithObjects:&navNode count:1];
-  
-  return rootNodes;
-}
-
-- (int) addNodes: (NSArray *) nodes
-        atSerial: (int) startSerial
-       forParent: (int) parent
-    withRootName: (NSString *) rootName
-         toArray: (NSMutableArray *) array
-{
-  unsigned int count, max, currentSerial;
-  UIxMailTreeBlock *curNode;
-  NSString *fullName;
-
-  max = [nodes count];
-  currentSerial = startSerial;
-  for (count = 0; count < max; count++)
-    {
-      curNode = [nodes objectAtIndex: count];
-      fullName = [rootName stringByAppendingFormat: @"/%@", [curNode name]];
-      [curNode setName: fullName];
-      [curNode setSerial: currentSerial];
-      [curNode setParent: parent];
-      [array addObject: curNode];
-      if ([curNode hasChildren])
-        currentSerial = [self addNodes: [curNode children]
-                              atSerial: currentSerial + 1
-                              forParent: currentSerial
-                              withRootName: fullName
-                              toArray: array];
-      else
-        currentSerial++;
-    }
-
-  return currentSerial;
-}
-
-- (NSArray *) flattenedNodes
-{
-  UIxMailTreeBlock *rootNode; // , *curNode;
-  id mailAccounts;
-//   unsigned int count, max;
-
-  if (!flattenedNodes)
-    {
-      flattenedNodes = [NSMutableArray new];
-
-      if (![[self clientObject] isKindOfClass: NSClassFromString(@"SOGoMailAccounts")])
-       mailAccounts = [[self clientObject] mailAccountsFolder];
-      else
-       mailAccounts = [self clientObject];
-
-      rootNode = [self fullTreeNavigationBlockForNode: mailAccounts];
-      [self addNodes: [rootNode children]
-           atSerial: 1
-           forParent: 0
-           withRootName: @""
-           toArray: flattenedNodes];
-//       max = [flattenedBlocks count];
-//       for (count = 0; count < max; count++)
-//     {
-//       curNode = [flattenedBlocks objectAtIndex: count];
-//       NSLog (@"%d: %@/%@", count, [curNode title], [curNode iconName]);
-//     }
-    }
-
-  return flattenedNodes;
-}
-
-/* notifications */
-
-- (void) sleep
-{
-  [item release]; item = nil;
-  [rootNodes release]; rootNodes = nil;
-  [super sleep];
-}
-
-@end /* UIxMailTree */
-
-
-@implementation NSString(DotCutting)
-
-- (NSString *)stringByCuttingOffAtDotsWhenExceedingLength:(int)_maxLength {
-  NSRange  r, r2;
-  NSString *s;
-  int      i;
-  
-  if ([self length] <= _maxLength) /* if length is small, return as is */
-    return self;
-  
-  if ((r = [self rangeOfString:@"."]).length == 0)
-    /* no dots in share, return even if longer than boundary */
-    return self;
-  
-  s = self;
-  i  = r.location + r.length;
-  r2 = [s rangeOfString:@"." options:NSLiteralSearch 
-         range:NSMakeRange(i, [s length] - i)];
-    
-  if (r2.length > 0) {
-    s = [s substringToIndex:r2.location];
-    if ([s length] <= _maxLength) /* if length is small, return as is */
-      return s;
-  }
-  
-  /* no second dot, and the whole was too long => cut off after first */
-  return [s substringToIndex:r.location];
-}
-
-- (NSString *)titleForSOGoIMAP4String {
-  /* 
-     eg:
-       guizmo.g.-.baluh.hommes.tests-montee-en-charge-ogo@\
-       amelie-01.ac.melanie2.i2
-  */
-  static int CutOffLength = 16;
-  NSString *s;
-  NSRange  r;
-  
-  s = self;
-  
-  /* check for connect strings without hostnames */
-  
-  r = [s rangeOfString:@"@"];
-  if (r.length == 0) {
-    /* no login provide, just use the hostname (without domain) */
-    r = [s rangeOfString:@"."];
-    return r.length > 0 ? [s substringToIndex:r.location] : s;
-  }
-  
-  s = [s substringToIndex:r.location];
-  
-  /* check for shares */
-  
-  r = [s rangeOfString:@".-."];
-  if (r.length > 0) {
-    /* eg: 'baluh.hommes.tests-montee-en-charge-ogo' */
-    s = [s substringFromIndex:(r.location + r.length)];
-    
-    return [s stringByCuttingOffAtDotsWhenExceedingLength:CutOffLength];
-  }
-  
-  /* just the login name, possibly long (test.et.di.cete-lyon) */
-  return [s stringByCuttingOffAtDotsWhenExceedingLength:CutOffLength];
-}
-
-@end /* NSString(DotCutting) */
diff --git a/UI/MailerUI/UIxMailTreeBlock.h b/UI/MailerUI/UIxMailTreeBlock.h
deleted file mode 100644 (file)
index 241914e..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-  Copyright (C) 2004-2005 SKYRIX Software AG
-
-  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; 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.
-*/
-
-#ifndef __UIxMailTreeBlock_H__
-#define __UIxMailTreeBlock_H__
-
-#import <Foundation/NSObject.h>
-
-@class NSString, NSArray;
-
-/*
-  UIxMailTreeBlock
-
-  A helper object for UIxMailTree.
-*/
-
-extern id UIxMailTreeHasChildrenMarker;
-
-@interface UIxMailTreeBlock : NSObject
-{
-  NSString *name;
-  NSString *title;
-  NSString *link;
-  NSArray  *blocks;
-  NSString *iconName;
-  NSString *folderType;
-  int serial;
-  int parent;
-  struct {
-    int isPath:1;
-    int isActive:1;
-    int reserved:30;
-  } flags;
-}
-
-+ (id) blockWithName: (NSString *)_n
-              title: (NSString *)_t
-           iconName: (NSString *)_i
-               link: (NSString *)_link
-         isPathNode: (BOOL)_isPath
-       isActiveNode: (BOOL)_isActive
-        childBlocks: (NSArray *)_blocks;
-
-- (id)initWithName: (NSString *)_n
-            title: (NSString *)_t
-         iconName: (NSString *)_i
-             link: (NSString *)_link
-       isPathNode: (BOOL)_isPath
-      isActiveNode: (BOOL)_isActive
-       childBlocks: (NSArray *)_blocks;
-
-/* accessors */
-
-- (BOOL) hasChildren;
-- (BOOL) areChildrenLoaded;
-- (NSArray *) children;
-
-- (void) setName: (NSString *) newName;
-- (NSString *) name;
-
-- (void) setSerial: (int) newSerial;
-- (int) serial;
-
-- (void) setParent: (int) newParent;
-- (int) parent;
-
-- (void) setFolderType: (NSString *) newFolderType;
-- (NSString *) folderType;
-
-- (NSString *) serialAsString;
-- (NSString *) parentAsString;
-
-- (NSString *) title;
-- (NSString *) link;
-- (NSString *) iconName;
-
-- (NSString *) folderMenuId;
-
-@end
-
-#endif /* __UIxMailTreeBlock_H__ */
diff --git a/UI/MailerUI/UIxMailTreeBlock.m b/UI/MailerUI/UIxMailTreeBlock.m
deleted file mode 100644 (file)
index 1aabe3d..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
-  Copyright (C) 2004-2005 SKYRIX Software AG
-
-  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; 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.
-*/
-
-#import "UIxMailTreeBlock.h"
-#import "common.h"
-
-@implementation UIxMailTreeBlock
-
-id UIxMailTreeHasChildrenMarker = nil;
-
-+ (void) initialize
-{
-  // TODO: needs to be an array because the WETreeView requires a
-  //       children array
-  UIxMailTreeHasChildrenMarker = 
-    [[NSArray alloc] initWithObjects:@"FAKE", nil];
-}
-
-+ (id) blockWithName: (NSString *) _name
-              title: (NSString *) _title
-           iconName: (NSString *) _icon
-               link: (NSString *) _link
-         isPathNode: (BOOL) _isPath
-       isActiveNode: (BOOL) _isActive
-        childBlocks: (NSArray *) _blocks
-{
-  UIxMailTreeBlock *block;
-
-  block = [[self alloc] initWithName:_name
-                       title:_title
-                       iconName:_icon
-                       link:_link
-                       isPathNode:_isPath
-                       isActiveNode:_isActive
-                       childBlocks:_blocks];
-  return [block autorelease];
-}
-
-- (id) initWithName: (NSString *) _name
-             title: (NSString *) _title
-          iconName: (NSString *) _icon
-              link: (NSString *) _link
-        isPathNode: (BOOL) _isPath
-       isActiveNode: (BOOL) _isActive
-       childBlocks: (NSArray *) _blocks
-{
-  if ((self = [self init]))
-    {
-      self->name     = [_name   copy];
-      self->title    = [_title  copy];
-      self->iconName = [_icon copy];
-      self->link     = [_link   copy];
-      self->blocks   = [_blocks retain];
-    
-      self->flags.isPath   = _isPath   ? 1 : 0;
-      self->flags.isActive = _isActive ? 1 : 0;
-    }
-  return self;
-}
-
-- (void) dealloc
-{
-  [self->iconName release];
-  [self->blocks   release];
-  [self->name     release];
-  [self->title    release];
-  [self->link     release];
-  [super dealloc];
-}
-
-/* accessors */
-
-- (NSString *) name
-{
-  return self->name;
-}
-
-- (void) setName: (NSString *) newName
-{
-  if (name)
-    [name release];
-  name = [newName copy];
-  if (name)
-    [name retain];
-}
-
-- (NSString *) title
-{
-  return self->title;
-}
-
-- (NSString *) link
-{
-  return self->link;
-}
-
-- (NSString *) iconName
-{
-  return self->iconName;
-}
-
-- (BOOL) hasChildren
-{
-  if (self->blocks == UIxMailTreeHasChildrenMarker)
-    return YES;
-  return [self->blocks count] > 0 ? YES : NO;
-}
-
-- (BOOL) areChildrenLoaded
-{
-  return self->blocks != UIxMailTreeHasChildrenMarker ? YES : NO;
-}
-
-- (NSArray *) children
-{
-  if (self->blocks == UIxMailTreeHasChildrenMarker)
-    // TODO: print a warning
-    return self->blocks;
-  
-  return self->blocks;
-}
-
-- (BOOL) isPathNode
-{
-  return self->flags.isPath ? YES : NO;
-}
-
-- (BOOL) isActiveNode
-{
-  return self->flags.isActive ? YES : NO;
-}
-
-/* description */
-
-- (void) appendAttributesToDescription: (NSMutableString *) _ms
-{
-  if (self->name  != nil) [_ms appendFormat:@" name='%@'", self->name];
-  if (self->title != nil) [_ms appendFormat:@" title='%@'", self->title];
-  
-  if ([self isPathNode])   [_ms appendString:@" path"];
-  if ([self isActiveNode]) [_ms appendString:@" active"];
-
-  if (self->blocks == UIxMailTreeHasChildrenMarker)
-    [_ms appendString:@" has-children"];
-  else if ([self->blocks count] > 0)
-    [_ms appendFormat:@" children=%@", self->blocks];
-}
-
-- (NSString *) description
-{
-  NSMutableString *ms;
-
-  ms = [NSMutableString stringWithCapacity:64];
-  [ms appendFormat:@"<0x%08X[%@]:", self, NSStringFromClass([self class])];
-  [self appendAttributesToDescription:ms];
-  [ms appendString:@">"];
-  return ms;
-}
-
-- (void) setSerial: (int) newSerial
-{
-  serial = newSerial;
-}
-
-- (int) serial
-{
-  return serial;
-}
-
-- (NSString *) serialAsString
-{
-  return [NSString stringWithFormat: @"%d", serial];
-}
-
-- (void) setParent: (int) newParent
-{
-  parent = newParent;
-}
-
-- (int) parent
-{
-  return parent;
-}
-
-- (void) setFolderType: (NSString *) newFolderType
-{
-  folderType = newFolderType;
-}
-
-- (NSString *) folderType
-{
-  return folderType;
-}
-
-- (NSString *) parentAsString
-{
-  return [NSString stringWithFormat: @"%d", parent];
-}
-
-- (NSString *) folderMenuId
-{
-  return [NSString stringWithFormat: @"__wox_submenu_%d-%d", parent, serial];
-}
-
-@end /* UIxMailTreeBlock */
diff --git a/UI/MailerUI/UIxMailTreeBlockJS.h b/UI/MailerUI/UIxMailTreeBlockJS.h
deleted file mode 100644 (file)
index e27d747..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* UIxMailTreeBlockJS.h - this file is part of $PROJECT_NAME_HERE$
- *
- * Copyright (C) 2006 Inverse groupe conseil
- *
- * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This file 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef UIXMAILTREEBLOCKJS_H
-#define UIXMAILTREEBLOCKJS_H
-
-#import <SOGoUI/UIxComponent.h>
-
-#import "common.h"
-
-@class NSString;
-@class UIxMailTreeBlock;
-
-@interface UIxMailTreeBlockJS : UIxComponent
-{
-  UIxMailTreeBlock *item;
-  NSString *treeObjectName;
-}
-
-- (void) setItem: (UIxMailTreeBlock *) newItem;
-- (UIxMailTreeBlock *) item;
-
-- (NSString *) iconName;
-
-- (void) setTreeObjectName: (NSString *) newName;
-- (NSString *) treeObjectName;
-
-- (BOOL) isAccount;
-- (BOOL) isInbox;
-- (BOOL) isTrash;
-
-@end
-
-#endif /* UIXMAILTREEBLOCKJS_H */
diff --git a/UI/MailerUI/UIxMailTreeBlockJS.m b/UI/MailerUI/UIxMailTreeBlockJS.m
deleted file mode 100644 (file)
index 1e03abe..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/* UIxMailTreeBlockJS.m - this file is part of $PROJECT_NAME_HERE$
- *
- * Copyright (C) 2006 Inverse groupe conseil
- *
- * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This file 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#import "UIxMailTreeBlockJS.h"
-
-#import "Common/UIxPageFrame.h"
-
-@implementation UIxMailTreeBlockJS
-
-- (id) init
-{
-  if ((self = [super init]))
-    {
-      item = nil;
-    }
-
-  return self;
-}
-
-- (void) setItem: (UIxMailTreeBlock *) newItem
-{
-  item = newItem;
-}
-
-- (UIxMailTreeBlock *) item
-{
-  return item;
-}
-
-- (WOResourceManager *) resourceManager
-{
-  WOResourceManager *resourceManager;
-  id c;
-
-  resourceManager = nil;
-
-  c = self;
-  while (!resourceManager
-        && c)
-    if ([c respondsToSelector: @selector(pageResourceManager)])
-      resourceManager = [c pageResourceManager];
-    else
-      c = [c parent];
-
-  return resourceManager;
-}
-
-- (NSString *) iconName
-{
-  WOResourceManager *resourceManager;
-  NSString *iconName, *rsrcIconName;
-
-  iconName = [item iconName];
-  if ([iconName length] > 0)
-    {
-      resourceManager = [self resourceManager];
-      rsrcIconName = [resourceManager urlForResourceNamed: iconName
-                                     inFramework: nil
-                                     languages: nil
-                                     request: [[self context] request]];
-    }
-  else
-    rsrcIconName = nil;
-
-  return rsrcIconName;
-}
-
-- (void) setTreeObjectName: (NSString *) newName
-{
-  treeObjectName = newName;
-}
-
-- (NSString *) treeObjectName
-{
-  return treeObjectName;
-}
-
-- (BOOL) isAccount
-{
-  return ([item parent] == 0);
-}
-
-- (BOOL) isInbox
-{
-  return ([[item name] isEqualToString: @"INBOX"]);
-}
-
-- (BOOL) isTrash
-{
-  return NO;
-}
-
-
-@end