[Undmail-dev 22] メールボックス(一覧)表示の要件

アーカイブの一覧に戻る

Hori,Masaki masak****@users*****
2002年 11月 21日 (木) 21:08:14 JST


ども、堀です。
タイトルどおりです。
たりない、おかしい、それは英語なのか?等々ご意見お待ちしております。

ここから
-------------------------

メールボックス(一覧)表示が行うであろう処理。
1,MainControllerを取得する 
     id mainController = [NSObject sharedMainController];
2,MailboxManagerを取得する
     id mailboxManager = [mainController mailboxManager];
3,ルートメールボックスを取得する
     Mailbox*    rootMailbox = [mailboxManager rootMailbox];
4,子供の一覧を取得し解析する
  NSArray* children = [rootMailbox children];

  Mailbox* aMailbox = [children objectAtIndex:n];
     NSString* mailboxName = [aMailbox name];
     unsigned mailsNum = [aMailbox mailsNum];
     unsigned unreadMailsNum = [aMailbox unreadMailsNum];
     unsigned long long mailsSize = [aMailbox mailsSize]; // bytes order.
     NSString* mailboxID = [aMailbox mailboxID];
5,更に子供を...
  NSArray* children = [aMailbox children];
  ...


メールボックス(一覧)表示のアクション
2,メールボックスの削除
  MailboxManagerに対し、
  -(BOOL)deleteMailbox:(Mailbox*)mailbox;
  もしくは、
  -(BOOL)deleteMailboxByID:(NSString*)mailboxID;
  削除されればYESが、されなければNOが返される。

3,メールボックスの追加
  MailboxManagerに対し、
  -(BOOL)addMailboxNamed:(NSString*)name underMailbox:(Mailbox*)mailbox;
  もしくは、
  -(BOOL)addMailboxNamed:(NSString*)name 
underMailboxByID:(NSString*)mailboxID;
  追加されればYESが、されなければNOが返される。

4,メールボックスの名称変更
  MailboxManagerに対し、
  -(BOOL)changeName:(NSString*)name mailbox:(Mailbox*)mailbox;
  もしくは、
  -(BOOL)changeName:(NSString*)name mailboxByID:(NSString*)mailboxID;
  変更されればYESが、されなければNOが返される。

5,メールボックスの移動
  MailboxManagerに対し、
  -(BOOL)moveMailbox:(Mailbox*)target underMailbox:(Mailbox*)mailbox;
  もしくは、
  -(BOOL)moveMailboxByID:(NSString*)targetID 
underMailboxByID:(NSString*)mailboxID;
  移動できたらYESが、できなければNOが返される。

6,メールボックスの複写
  MailboxManagerに対し、
  -(BOOL)copyMailbox:(Mailbox*)target underMailbox:(Mailbox*)mailbox;
  もしくは、
  -(BOOL)copyMailboxByID:(NSString*)targetID 
underMailboxByID:(NSString*)mailboxID;
  複写できたらYESが、できなければNOが返される。

7,メールの追加(DnDによる。pastboardType等については別記)
  MailboxManagerに対し、
  -(BOOL)dropMessage:(id <NSDraggingInfo>)sender 
intoMailbox:(Mailbox*)mailbox;
  もしくは、
  -(BOOL)dropMessage:(id <NSDraggingInfo>)sender 
intoMailboxByID:(NSString*)mailboxID;
  ドロップできたらYES、できなければNOが返される。

8,メールボックスの再構築
  MailboxManagerに対し、
  -(void)rebuildMailbox:(Mailbox*)mailbox;
  もしくは、
  -(void)rebuildMailboxByID:(NSString*)mailboxID;
  あるいは、
  -(void)rebuildMailboxes;


******** MailboxIDに関して *********
MailboxIDは、インスタンスと違い、永続的にその値が不変です。
プロトタイプでは、メールボックスが作成された時点での名前と時間を連結し、MD5
にかけています。(予定)
時間を連結しますので初期状態の名前が常に@"Untitled"でも対応可能です。
MailboxManagerが管理していますので、MailboxManagerに対し、
-(Mailbox*)mailboxByID:(NSString*)mailboxID;
-(NSStrnig*)mailboxIDForMailbox:(Mailbox*)mailbox;
で変換可能です。(が、普通は使わないと思います。)



メールボックス(一覧)表示に関するNotification
*** Obseverの登録に関しては別記 ***
1,メールボックス内に変更があった(メールの追加削除、属性の変化)
  object: 変更のあったメールボックス
  userInfo: nil

2,メールボックスの構造に変更があった(メールボックスの追加削除、移動複写)
  object:MailboxManagerのインスタンス
  userInfo:nil


----------------
ここまで。

では。




Undmail-dev メーリングリストの案内
アーカイブの一覧に戻る