[Commits] (donn) Added basic support for editing Mail messages, and fixed several bugs:

commits at osafoundation.org commits at osafoundation.org
Wed Aug 11 06:33:17 PDT 2004


Commit by: donn
Modified files:
chandler/parcels/osaf/contentmodel/ContentModel.py 1.23 1.24
chandler/parcels/osaf/contentmodel/parcel.xml 1.50 1.51
chandler/parcels/osaf/contentmodel/Query.py 1.2 1.3
chandler/parcels/osaf/framework/blocks/Block.py 1.57 1.58
chandler/parcels/osaf/framework/blocks/ContainerBlocks.py 1.123 1.124
chandler/parcels/osaf/framework/blocks/ControlBlocks.py 1.97 1.98
chandler/parcels/osaf/framework/blocks/NavigationBlocks.py 1.28 1.29
chandler/parcels/osaf/framework/blocks/parcel.xml 1.105 1.106
chandler/parcels/osaf/framework/blocks/detail/Detail.py 1.20 1.21
chandler/parcels/osaf/framework/blocks/detail/parcel.xml 1.17 1.18
chandler/parcels/osaf/framework/blocks/Events/parcel.xml 1.45 1.46
chandler/parcels/osaf/views/content/parcel.xml 1.57 1.58
chandler/parcels/osaf/views/main/Main.py 1.25 1.26
chandler/parcels/osaf/views/main/parcel.xml 1.86 1.87

Log message:
Added basic support for editing Mail messages, and fixed several bugs:
   * Added a "Send" button to the Detail View
   * Made Subject editable
   * "ToAddress:" field now saves email addresses
   * Added "All" view to the Sidebar
   * Enabled the New toobar button and New Message menu items
     - both of these do the same thing: create a message and take you to the 'All' box
   * Created a "SelectionChangedSentToSidebar" Event to allow you to set the sidebar selection
   * Changed the 'Out' box to show Mail messages
   * Added subkind of BlockEvent - KindParameterizedEvent, which has a Kind attribute
   * Made "New" a KindParameterizedEvent, handled by the MainView
   * Moved LayoutSelector toolbar to Main, so it can be copied instead of duplicated
   * Added convenience convert-to-string methods for redirectTo attributes to ContentModel
   * Found a typo in render() - 'block' not defined.
   * Changed wxBoxContainer.wxSynchronizeWidget() to only layout when isShown
   * Added "exactKind" attribute to Query so you can match on a Kind exactly
   * Fixed "Notes" to only show Notes

ViewCVS links:
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/contentmodel/ContentModel.py.diff?r1=text&tr1=1.23&r2=text&tr2=1.24
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/contentmodel/parcel.xml.diff?r1=text&tr1=1.50&r2=text&tr2=1.51
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/contentmodel/Query.py.diff?r1=text&tr1=1.2&r2=text&tr2=1.3
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/Block.py.diff?r1=text&tr1=1.57&r2=text&tr2=1.58
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/ContainerBlocks.py.diff?r1=text&tr1=1.123&r2=text&tr2=1.124
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/ControlBlocks.py.diff?r1=text&tr1=1.97&r2=text&tr2=1.98
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/NavigationBlocks.py.diff?r1=text&tr1=1.28&r2=text&tr2=1.29
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/parcel.xml.diff?r1=text&tr1=1.105&r2=text&tr2=1.106
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/detail/Detail.py.diff?r1=text&tr1=1.20&r2=text&tr2=1.21
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/detail/parcel.xml.diff?r1=text&tr1=1.17&r2=text&tr2=1.18
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/Events/parcel.xml.diff?r1=text&tr1=1.45&r2=text&tr2=1.46
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/views/content/parcel.xml.diff?r1=text&tr1=1.57&r2=text&tr2=1.58
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/views/main/Main.py.diff?r1=text&tr1=1.25&r2=text&tr2=1.26
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/views/main/parcel.xml.diff?r1=text&tr1=1.86&r2=text&tr2=1.87

Index: chandler/parcels/osaf/framework/blocks/Block.py
diff -u chandler/parcels/osaf/framework/blocks/Block.py:1.57 chandler/parcels/osaf/framework/blocks/Block.py:1.58
--- chandler/parcels/osaf/framework/blocks/Block.py:1.57	Tue Aug  3 12:59:57 2004
+++ chandler/parcels/osaf/framework/blocks/Block.py	Wed Aug 11 06:33:13 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.57 $"
-__date__ = "$Date: 2004/08/03 19:59:57 $"
+__version__ = "$Revision: 1.58 $"
+__date__ = "$Date: 2004/08/11 13:33:13 $"
 __copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
 __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
@@ -92,10 +92,10 @@
                 except:
                     pass
                 else:
-                    if not subscribedBlocks.has_key (block.itsUUID):
-                        subscribedBlocks [block.itsUUID] = UUID()
+                    if not subscribedBlocks.has_key (self.itsUUID):
+                        subscribedBlocks [self.itsUUID] = UUID()
                         Globals.notificationManager.Subscribe (subscribeAlwaysEvents,
-                                                               subscribedBlocks [block.itsUUID],
+                                                               subscribedBlocks [self.itsUUID],
                                                                Globals.mainView.dispatchEvent)
 
                 doFreeze = isinstance (widget, wx.Window)

Index: chandler/parcels/osaf/contentmodel/ContentModel.py
diff -u chandler/parcels/osaf/contentmodel/ContentModel.py:1.23 chandler/parcels/osaf/contentmodel/ContentModel.py:1.24
--- chandler/parcels/osaf/contentmodel/ContentModel.py:1.23	Sun Aug  8 19:13:23 2004
+++ chandler/parcels/osaf/contentmodel/ContentModel.py	Wed Aug 11 06:33:12 2004
@@ -1,14 +1,15 @@
 """ Classes used for contentmodel parcel and kinds.
 """
 
-__revision__  = "$Revision: 1.23 $"
-__date__      = "$Date: 2004/08/09 02:13:23 $"
+__revision__  = "$Revision: 1.24 $"
+__date__      = "$Date: 2004/08/11 13:33:12 $"
 __copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
 __license__   = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
 from application.Parcel import Parcel
 import repository.item.Item as Item
 import repository.item.Query as Query
+import repository.persistence.XMLRepositoryView as XMLRepositoryView
 import logging
 
 import application.Globals as Globals
@@ -419,6 +420,55 @@
         
         return clone
 
+    def ItemWhoString (self):
+        import osaf.contentmodel.contacts.Contacts as Contacts
+        """
+        return str(item.who)
+        DLDTBD - XMLRefDicts that have EmailAddress items should know how to do this
+        """
+        try:
+            whoContacts = self.who # get redirected who list
+        except AttributeError:
+            return ''
+        try:
+            numContacts = len(whoContacts)
+        except TypeError:
+            numContacts = 0            
+        if numContacts > 0:
+            whoNames = []
+            for whom in whoContacts.values():
+                whoNames.append(whom.getItemDisplayName())
+            whoString = ', '.join(whoNames)
+        else:
+            whoString = ''
+            if isinstance(whoContacts, Contacts.ContactName):
+                whoString = whoContacts.firstName + ' ' + whoContacts.lastName
+        return whoString
+
+    def ItemBodyString (self):
+        """
+        return str(item.body) converts from text to string 
+        """
+        try:
+            noteBody = self.body
+        except AttributeError:
+            noteBody = ''
+        else:
+            if isinstance(noteBody, XMLRepositoryView.XMLText):
+                # Read the unicode stream from the XML
+                noteBody = noteBody.getInputStream().read()
+        return noteBody
+
+    def ItemAboutString (self):
+        """
+        return str(item.about)
+        """
+        try:
+            about = self.about
+        except AttributeError:
+            about = ''
+        return about
+
 class Project(Item.Item):
     def __init__(self, name=None, parent=None, kind=None):
         if not parent:

Index: chandler/parcels/osaf/views/main/parcel.xml
diff -u chandler/parcels/osaf/views/main/parcel.xml:1.86 chandler/parcels/osaf/views/main/parcel.xml:1.87
--- chandler/parcels/osaf/views/main/parcel.xml:1.86	Sun Aug  8 19:13:01 2004
+++ chandler/parcels/osaf/views/main/parcel.xml	Wed Aug 11 06:33:15 2004
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<!-- $Revision: 1.86 $ -->
-<!-- $Date: 2004/08/09 02:13:01 $ -->
+<!-- $Revision: 1.87 $ -->
+<!-- $Date: 2004/08/11 13:33:15 $ -->
 <!-- Copyright (c) 2003 Open Source Applications Foundation -->
 <!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
 
@@ -15,6 +15,7 @@
              xmlns:demo="http://osafoundation.org/parcels/osaf/views/demo"
              xmlns:content="http://osafoundation.org/parcels/osaf/views/content"
              xmlns:contentModel="http://osafoundation.org/parcels/osaf/contentmodel"
+             xmlns:mail="http://osafoundation.org/parcels/osaf/contentmodel/mail"
              xmlns:calendar="http://osafoundation.org/parcels/osaf/framework/blocks/calendar"
              xmlns:stockQuote="http://osafoundation.org/parcels/osaf/examples/stockquote/views">
 
@@ -60,11 +61,12 @@
     <dispatchToBlock itemref="doc:NavigationBar"/>
   </BlockEvent>
 
-  <BlockEvent itemName="New">
+  <KindParameterizedEvent itemName="NewMailMessage">
+    <kindParameter itemref="mail:MailMessage"/>
     <dispatchEnum>SendToBlock</dispatchEnum>
-    <methodName>navbarNew</methodName>
-    <dispatchToBlock itemref="doc:NavigationBar"/>
-  </BlockEvent>
+    <methodName>onNewEvent</methodName>
+    <dispatchToBlock itemref="doc:MainView"/>
+  </KindParameterizedEvent>
 
   <BlockEvent itemName="Reply">
     <dispatchEnum>SendToBlock</dispatchEnum>
@@ -345,7 +347,7 @@
     <blockName>NewMessageItem</blockName>
     <title>Message</title>
     <helpString>Create a new Message</helpString>
-    <event itemref="events:NULL"/>
+    <event itemref="doc:NewMailMessage"/>
   </MenuItem>
   
   <MenuItem itsName="NewTaskItem">
@@ -1132,7 +1134,6 @@
     <subscribeWhenVisibleEvents itemref="doc:GoBack"/>
     <subscribeWhenVisibleEvents itemref="doc:GoForward"/>
     <subscribeWhenVisibleEvents itemref="doc:Sync"/>
-    <subscribeWhenVisibleEvents itemref="doc:New"/>
     <subscribeWhenVisibleEvents itemref="doc:Reply"/>
     <subscribeWhenVisibleEvents itemref="doc:Discuss"/>
     <subscribeWhenVisibleEvents itemref="doc:Forward"/>
@@ -1202,7 +1203,7 @@
     <bitmap>application/images/new.png</bitmap>
     <toolbarItemKind>Button</toolbarItemKind>
     <helpString>Create a new Item</helpString>
-    <event itemref="doc:New"/>
+    <event itemref="doc:NewMailMessage"/>
   </ToolbarItem>
 
   <ToolbarItem itsName="ReplyButton">
@@ -1287,6 +1288,69 @@
   <StatusBar itsName="StatusBar">
   </StatusBar>
 
+  <!-- LayoutSelector -->
+  <Toolbar itemName="LayoutSelector">
+    <blockName>LayoutSelector</blockName>
+    <childrenBlocks itemref="doc:ListViewButton"/>
+    <childrenBlocks itemref="doc:MonthViewButton"/>
+    <childrenBlocks itemref="doc:WeekViewButton"/>
+    <childrenBlocks itemref="doc:DayViewButton"/>
+    <!-- Attributes -->
+    <toolSize>16,16</toolSize>
+    <separatorWidth>100</separatorWidth>
+    <stretchFactor>0.0</stretchFactor>
+    <subscribeWhenVisibleEvents itemref="doc:SelectionChanged"/>
+  </Toolbar>
+
+  <BlockEvent itemName="SelectionChanged">
+    <methodName>onSelectionChanged</methodName>
+    <dispatchEnum>BroadcastEverywhere</dispatchEnum>
+  </BlockEvent>
+
+  <!--
+    ToolbarItems
+  -->
+  <ToolbarItem itsName="ListViewButton">
+    <blockName>ListViewButton1</blockName>
+    <title>List View</title>
+    <bitmap>application/images/list.png</bitmap>
+    <selectedBitmap></selectedBitmap>
+    <toolbarItemKind>Radio</toolbarItemKind>
+    <helpString>Display the view in list mode</helpString>
+    <event itemref="doc:SelectionChanged"/>
+  </ToolbarItem>
+
+  <ToolbarItem itsName="MonthViewButton">
+    <blockName>MonthViewButton1</blockName>
+    <title>Month View</title>
+    <bitmap>application/images/month.png</bitmap>
+    <selectedBitmap></selectedBitmap>
+    <toolbarItemKind>Radio</toolbarItemKind>
+    <helpString>Display the view in month mode</helpString>
+    <event itemref="doc:SelectionChanged"/>
+  </ToolbarItem>
+
+  <ToolbarItem itsName="WeekViewButton">
+    <blockName>WeekViewButton1</blockName>
+    <title>Week View</title>
+    <bitmap>application/images/week.png</bitmap>
+    <selectedBitmap></selectedBitmap>
+    <toolbarItemKind>Radio</toolbarItemKind>
+    <helpString>Display the view in week mode</helpString>
+    <event itemref="doc:SelectionChanged"/>
+  </ToolbarItem>
+
+  <ToolbarItem itsName="DayViewButton">
+    <blockName>DayViewButton1</blockName>
+    <title>Day View</title>
+    <bitmap>application/images/day.png</bitmap>
+    <selectedBitmap></selectedBitmap>
+    <toolbarItemKind>Radio</toolbarItemKind>
+    <helpString>Display the view in day mode</helpString>
+    <event itemref="doc:SelectionChanged"/>
+  </ToolbarItem>
+
+
   <!--
     Layout blocks
   -->
@@ -1314,6 +1378,7 @@
   </BoxContainer>
 
   <contentModel:NamedCollection itsName="sidebarItemCollection">
+    <inclusions uuidOf="content:AllTableView"/>
     <inclusions uuidOf="content:InTableView"/>
     <inclusions uuidOf="content:OutTableView"/>
     <inclusions uuidOf="content:CalendarTableView"/>
@@ -1378,6 +1443,7 @@
     <subscribeWhenVisibleEvents itemref="doc:AddTaskTableView"/>
     <subscribeWhenVisibleEvents itemref="doc:AddMailTableView"/>
     <subscribeWhenVisibleEvents itemref="doc:AddKindViews"/>
+    <subscribeWhenVisibleEvents itemref="doc:NewMailMessage"/>
 
     <!-- Attributes -->
     <orientationEnum>Vertical</orientationEnum>

Index: chandler/parcels/osaf/framework/blocks/ControlBlocks.py
diff -u chandler/parcels/osaf/framework/blocks/ControlBlocks.py:1.97 chandler/parcels/osaf/framework/blocks/ControlBlocks.py:1.98
--- chandler/parcels/osaf/framework/blocks/ControlBlocks.py:1.97	Tue Aug 10 11:57:53 2004
+++ chandler/parcels/osaf/framework/blocks/ControlBlocks.py	Wed Aug 11 06:33:13 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.97 $"
-__date__ = "$Date: 2004/08/10 18:57:53 $"
+__version__ = "$Revision: 1.98 $"
+__date__ = "$Date: 2004/08/11 13:33:13 $"
 __copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
 __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
@@ -644,6 +644,38 @@
         self.selection = notification.data['item']
         self.widget.GoToItem (self.selection)
 
+    def onSelectionChangedSentToSidebarEvent (self, notification):
+        # Request the sidebar to change selection
+        # Item specified is usually by name
+        try:
+            item = notification.data['item']
+        except KeyError:
+            # find the item by name
+            itemName = notification.data['itemName']
+            for item in self.contents:
+                if item.itsName == itemName:
+                    notification.data['item'] = item
+                    break
+            else:
+                return
+
+        # Got the item. First tell ourself about it.
+        self.onSelectionChangedEvent (notification)
+
+        # Next broadcast inside our boundary to tell dependent
+        self.Post (Globals.repository.findPath \
+                   ('//parcels/osaf/framework/blocks/Events/SelectionChanged'),
+                   {'item':item})
+
+    def onSelectionChangedBroadcastEverywhereEvent (self, notification):
+        # request the Table part of the Active View to change selection
+        newSelection = notification.data['item']
+        if newSelection in self.contents:
+            self.onSelectionChangedEvent (notification)
+            self.Post (Globals.repository.findPath \
+                       ('//parcels/osaf/framework/blocks/Events/SelectionChanged'),
+                       {'item':newSelection})
+
 
 class RadioBox(RectangularChild):
     def instantiateWidget(self):
@@ -666,7 +698,6 @@
         if self.blockItem.isShown != self.IsShown():
             self.Show (self.blockItem.isShown)
 
-
 class StaticText(RectangularChild):
     def instantiateWidget (self):
         if self.textAlignmentEnum == "Left":

Index: chandler/parcels/osaf/contentmodel/Query.py
diff -u chandler/parcels/osaf/contentmodel/Query.py:1.2 chandler/parcels/osaf/contentmodel/Query.py:1.3
--- chandler/parcels/osaf/contentmodel/Query.py:1.2	Tue Jul 13 11:44:50 2004
+++ chandler/parcels/osaf/contentmodel/Query.py	Wed Aug 11 06:33:12 2004
@@ -49,7 +49,7 @@
     def __refresh(self):
         self.results = []
 
-        for item in RepositoryQuery.KindQuery().run(self.data):
+        for item in RepositoryQuery.KindQuery(recursive = not self.exactKind).run(self.data):
             self.results.append(item)
 
         self.__dirty()

Index: chandler/parcels/osaf/framework/blocks/NavigationBlocks.py
diff -u chandler/parcels/osaf/framework/blocks/NavigationBlocks.py:1.28 chandler/parcels/osaf/framework/blocks/NavigationBlocks.py:1.29
--- chandler/parcels/osaf/framework/blocks/NavigationBlocks.py:1.28	Mon Jul 26 10:31:05 2004
+++ chandler/parcels/osaf/framework/blocks/NavigationBlocks.py	Wed Aug 11 06:33:13 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.28 $"
-__date__ = "$Date: 2004/07/26 17:31:05 $"
+__version__ = "$Revision: 1.29 $"
+__date__ = "$Date: 2004/08/11 13:33:13 $"
 __copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
 __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
@@ -62,13 +62,6 @@
     def navbarSyncUpdateUI (self, notification):
         notification.data ['Enable'] = False
 
-    def navbarNew(self, notification):
-        # placeholder for a nav bar button
-        pass
-    
-    def navbarNewUpdateUI (self, notification):
-        notification.data ['Enable'] = False
-
     def navbarReply(self, notification):
         # placeholder for a nav bar button
         pass

Index: chandler/parcels/osaf/contentmodel/parcel.xml
diff -u chandler/parcels/osaf/contentmodel/parcel.xml:1.50 chandler/parcels/osaf/contentmodel/parcel.xml:1.51
--- chandler/parcels/osaf/contentmodel/parcel.xml:1.50	Tue Aug  3 02:34:25 2004
+++ chandler/parcels/osaf/contentmodel/parcel.xml	Wed Aug 11 06:33:12 2004
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
 <!-- Parcel manifest for Pim Schema -->
-<!-- $Revision: 1.50 $ -->
-<!-- $Date: 2004/08/03 09:34:25 $ -->
+<!-- $Revision: 1.51 $ -->
+<!-- $Date: 2004/08/11 13:33:12 $ -->
 <!-- Copyright (c) 2003 Open Source Applications Foundation -->
 <!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
 
@@ -333,6 +333,11 @@
     <copyPolicy value="cascade"/>
   </core:Attribute>
 
+  <core:Attribute itsName="exactKind">
+    <core:type itemref="core:Boolean"/>
+    <initialValue type="core:Boolean" value="False"/>
+  </core:Attribute>
+
   <core:Kind itsName="Query">
     <core:classes key="python">osaf.contentmodel.Query.Query</core:classes>
     <core:superKinds itemref="core:Item"/>
@@ -342,6 +347,7 @@
     <core:attributes itemref="queryEnum"/>
     <core:attributes itemref="data"/>
     <core:attributes itemref="results"/>
+    <core:attributes itemref="exactKind"/>
 
     <core:Cloud itsName="DefaultCloud">
         <core:Endpoint itsName="queryOwner">

Index: chandler/parcels/osaf/framework/blocks/ContainerBlocks.py
diff -u chandler/parcels/osaf/framework/blocks/ContainerBlocks.py:1.123 chandler/parcels/osaf/framework/blocks/ContainerBlocks.py:1.124
--- chandler/parcels/osaf/framework/blocks/ContainerBlocks.py:1.123	Tue Aug  3 17:40:35 2004
+++ chandler/parcels/osaf/framework/blocks/ContainerBlocks.py	Wed Aug 11 06:33:13 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.123 $"
-__date__ = "$Date: 2004/08/04 00:40:35 $"
+__version__ = "$Revision: 1.124 $"
+__date__ = "$Date: 2004/08/11 13:33:13 $"
 __copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
 __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
@@ -28,8 +28,7 @@
                                childBlock.stretchFactor, 
                                wxRectangularChild.CalculateWXFlag(childBlock), 
                                wxRectangularChild.CalculateWXBorder(childBlock))
-        self.Layout()
-
+            self.Layout()
 
 class BoxContainer (RectangularChild):
     def instantiateWidget (self):

Index: chandler/parcels/osaf/views/main/Main.py
diff -u chandler/parcels/osaf/views/main/Main.py:1.25 chandler/parcels/osaf/views/main/Main.py:1.26
--- chandler/parcels/osaf/views/main/Main.py:1.25	Sun Aug  8 19:13:01 2004
+++ chandler/parcels/osaf/views/main/Main.py	Wed Aug 11 06:33:15 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.25 $"
-__date__ = "$Date: 2004/08/09 02:13:01 $"
+__version__ = "$Revision: 1.26 $"
+__date__ = "$Date: 2004/08/11 13:33:15 $"
 __copyright__ = "Copyright (c) 2003 Open Source Applications Foundation"
 __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
@@ -8,7 +8,9 @@
 from osaf.framework.notifications.Notification import Notification
 import wx
 import os
+from mx import DateTime
 import application.Application
+import osaf.contentmodel.mail.Mail as Mail
 from application.SplashScreen import SplashScreen
 from application.Parcel import Manager as ParcelManager
 from osaf.mail.imap import IMAPDownloader
@@ -109,6 +111,43 @@
         account = accountList[0]
         IMAPDownloader (account).getMail()
 
+    def NewItemName (cls):
+        """
+        Return a unique name of a new item
+        """
+        itemNumber = MainView.AnonymousItemNumber
+        MainView.AnonymousItemNumber += 1
+        return "Anonymous" + str (itemNumber)
+    NewItemName = classmethod (NewItemName)
+    AnonymousItemNumber = 1
+
+    def onNewEvent (self, notification):
+        # create a new mail message
+        event = notification.event
+        newMessage = event.kindParameter.newItem (self.NewItemName(), self)
+        newMessage.date = DateTime.now()
+        Globals.repository.commit()
+
+        # lookup our selectionChangedEvents
+        rootPath = '//parcels/osaf/framework/blocks/Events/'
+        sidebarSelectionChanged = Globals.repository.findPath \
+                                (rootPath + 'SelectionChangedSentToSidebar')
+        activeViewSelectionChanged = Globals.repository.findPath \
+                                   (rootPath + 'SelectionChangedBroadcastEverywhere')
+
+        # Tell the sidebar we want to go to the 'All' box
+        args = {}
+        args['itemName'] = 'AllTableView'
+        self.Post(sidebarSelectionChanged, args)
+
+        # Tell the ActiveView to select our new item
+        args = {}
+        args['item'] = newMessage
+        self.Post(activeViewSelectionChanged, args)
+
+    def onNewEventUpdateUI (self, notification):
+        notification.data ['Enable'] = True
+
     # Test Methods
 
     def onGenerateContentItemsEvent(self, notification):

Index: chandler/parcels/osaf/framework/blocks/Events/parcel.xml
diff -u chandler/parcels/osaf/framework/blocks/Events/parcel.xml:1.45 chandler/parcels/osaf/framework/blocks/Events/parcel.xml:1.46
--- chandler/parcels/osaf/framework/blocks/Events/parcel.xml:1.45	Sun Aug  8 19:13:01 2004
+++ chandler/parcels/osaf/framework/blocks/Events/parcel.xml	Wed Aug 11 06:33:14 2004
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<!-- $Revision: 1.45 $ -->
-<!-- $Date: 2004/08/09 02:13:01 $ -->
+<!-- $Revision: 1.46 $ -->
+<!-- $Date: 2004/08/11 13:33:14 $ -->
 <!-- Copyright (c) 2003 Open Source Applications Foundation -->
 <!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
 
@@ -33,6 +33,8 @@
     <subscribeAlwaysEvents itemref="events:EditMailAccount"/>
     <subscribeAlwaysEvents itemref="events:GetNewMail"/>
     <subscribeAlwaysEvents itemref="events:SelectionChanged"/>
+    <subscribeAlwaysEvents itemref="events:SelectionChangedSentToSidebar"/>
+    <subscribeAlwaysEvents itemref="events:SelectionChangedBroadcastEverywhere"/>
     <subscribeAlwaysEvents itemref="events:EnterPressed"/>
     <subscribeAlwaysEvents itemref="events:GenerateContentItems"/>
     <subscribeAlwaysEvents itemref="events:GenerateContacts"/>
@@ -114,6 +116,15 @@
     <dispatchEnum>BroadcastInsideMyEventBoundary</dispatchEnum>
   </BlockEvent>
 
+  <BlockEvent itsName="SelectionChangedSentToSidebar">
+    <dispatchEnum>SendToBlock</dispatchEnum>
+    <dispatchToBlock itemref="doc:Sidebar"/>
+  </BlockEvent>
+
+  <BlockEvent itsName="SelectionChangedBroadcastEverywhere">
+    <dispatchEnum>BroadcastEverywhere</dispatchEnum>
+  </BlockEvent>
+
   <BlockEvent itsName="EnterPressed">
     <dispatchEnum>BroadcastInsideMyEventBoundary</dispatchEnum>
   </BlockEvent>

Index: chandler/parcels/osaf/framework/blocks/parcel.xml
diff -u chandler/parcels/osaf/framework/blocks/parcel.xml:1.105 chandler/parcels/osaf/framework/blocks/parcel.xml:1.106
--- chandler/parcels/osaf/framework/blocks/parcel.xml:1.105	Fri Aug  6 17:08:11 2004
+++ chandler/parcels/osaf/framework/blocks/parcel.xml	Wed Aug 11 06:33:13 2004
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<!-- $Revision: 1.105 $ -->
-<!-- $Date: 2004/08/07 00:08:11 $ -->
+<!-- $Revision: 1.106 $ -->
+<!-- $Date: 2004/08/11 13:33:13 $ -->
 <!-- Copyright (c) 2003 Open Source Applications Foundation -->
 <!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
 
@@ -226,6 +226,18 @@
     <attributes itemref="docSchema:ChoiceEvent/choice"/>
   </Kind>
 
+  <Kind itsName="KindParameterizedEvent">
+    <classes key="python">osaf.framework.blocks.Block.BlockEvent</classes>
+    <superKinds itemref="docSchema:BlockEvent"/>
+
+    <Attribute itsName="kindParameter">
+      <type itemref="Kind"/>
+      <required>True</required>
+    </Attribute>
+
+    <attributes itemref="docSchema:KindParameterizedEvent/kindParameter"/>
+  </Kind>
+
   <Kind itsName="ModifyContentsEvent">
     <classes key="python">osaf.framework.blocks.Block.BlockEvent</classes>
     <superKinds itemref="docSchema:BlockEvent"/>

Index: chandler/parcels/osaf/framework/blocks/detail/Detail.py
diff -u chandler/parcels/osaf/framework/blocks/detail/Detail.py:1.20 chandler/parcels/osaf/framework/blocks/detail/Detail.py:1.21
--- chandler/parcels/osaf/framework/blocks/detail/Detail.py:1.20	Sun Aug  8 19:12:13 2004
+++ chandler/parcels/osaf/framework/blocks/detail/Detail.py	Wed Aug 11 06:33:13 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.20 $"
-__date__ = "$Date: 2004/08/09 02:12:13 $"
+__version__ = "$Revision: 1.21 $"
+__date__ = "$Date: 2004/08/11 13:33:13 $"
 __copyright__ = "Copyright (c) 2004 Open Source Applications Foundation"
 __license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
 
@@ -8,13 +8,11 @@
 import osaf.framework.blocks.Block as Block
 import osaf.framework.blocks.DynamicContainerBlocks as DynamicContainerBlocks
 import osaf.framework.blocks.ControlBlocks as ControlBlocks
-import repository.persistence.XMLRepositoryView as XMLRepositoryView
 import osaf.contentmodel.mail.Mail as Mail
 import osaf.contentmodel.ContentModel as ContentModel
 import osaf.contentmodel.tasks.Task as Task
 import osaf.contentmodel.calendar.Calendar as Calendar
-import osaf.contentmodel.Notes as Notes
-import osaf.contentmodel.contacts.Contacts as Contacts
+import repository.item.Query as Query
 import wx
 
 """
@@ -61,6 +59,7 @@
         def reNotifyInside(block, item):
             notifyParent = False
             try:
+                # process from the children up
                 for child in block.childrenBlocks:
                     notify = reNotifyInside (child, item)
                     notifyParent = notifyParent or notify
@@ -84,6 +83,24 @@
         self.synchronizeDetailView(item)
         super(DetailRoot, self).synchronizeWidget ()
         
+    def onDestroyWidget (self):
+        # Hack - DLDTBD - remove
+        # set ourself to be shown, to work around Windows DetailView garbage problem.
+        def showReentrant (block):
+            block.isShown = True
+            for child in block.childrenBlocks:
+                showReentrant (child)
+        super(DetailRoot, self).onDestroyWidget ()
+        showReentrant (self)
+
+    def onSendMailMessageEvent (self, notification):
+        item = self.selectedItem()
+        # DLDTBD - Brian, paste a call to the mail service here
+        # item is the MailMessage
+        print "Email Subject is %s" % item.ItemAboutString ()
+        print "Email To field is %s" % item.ItemWhoString ()
+        print "Email Body is %s" % item.ItemBodyString ()
+
 class DetailSynchronizer(object):
     """
       Mixin class that handles synchronizeWidget and
@@ -107,23 +124,24 @@
         shouldShow = item is not None
         return self.show(shouldShow)
         
-    def show(self, shouldShow):
+    def show (self, shouldShow):
         # if the show status has changed, tell our widget, and return True
-        if shouldShow != self.isShown:
-            try:
-                widget = self.widget
-            except AttributeError:
-                return False
+        try:
+            widget = self.widget
+        except AttributeError:
+            return False
+        if shouldShow != widget.IsShown():
             # we have a widget
-            if shouldShow:
-                widget.Show(True)
-                self.isShown = True
-            else:
-                widget.Show(False)
-                self.isShown = False
+            # make sure widget shown state is what we want
+            widget.Show (shouldShow)
+            self.isShown = shouldShow
             return True
         return False
 
+    def whichAttribute(self):
+        # define the attribute to be used
+        return self.parentBlock.selectedItemsAttribute
+
 class StaticTextLabel (DetailSynchronizer, ControlBlocks.StaticText):
     def staticTextLabelValue (self, item):
         """ Override to provide the value of the static text label """
@@ -164,12 +182,7 @@
         """
         return item.itsKind.displayName
         
-class Headline (StaticTextLabel):
-    """Headline, or Title field of the Content Item, as static text"""
-    def staticTextLabelValue (self, item):
-        return item.about
-        
-class StaticTextAttribute(StaticTextLabel):
+class StaticRedirectAttribute (StaticTextLabel):
     """
       Static Text that displays the name of the selected item's Attribute
     """
@@ -181,11 +194,7 @@
             redirectAttr = ' ' + redirectAttr + ': '
         return redirectAttr
 
-    def whichAttribute(self):
-        # define the attribute to be used
-        return self.parentBlock.selectedItemsAttribute
-
-class LabeledTextAttributeBlock(ControlBlocks.ContentItemDetail):
+class LabeledTextAttributeBlock (ControlBlocks.ContentItemDetail):
     def synchronizeItemDetail(self, item):
         whichAttr = self.selectedItemsAttribute
         try:
@@ -195,6 +204,18 @@
             self.isShown = item.hasAttributeAspect(whichAttr, 'redirectTo')
         self.synchronizeWidget()
 
+class MailMessageBlock (DetailSynchronizer, ControlBlocks.ContentItemDetail):
+    """
+    A block whose contents are shown only when the item is a Mail Message.
+    """
+    def synchronizeItemDetail(self, item):
+        mailKind = Mail.MailParcel.getMailMessageKind ()
+        try:
+            shouldShow = item.itsKind.isKindOf (mailKind)
+        except AttributeError:
+            shouldShow = False
+        return self.show(shouldShow)
+
 class MarkupBar (DetailSynchronizer, DynamicContainerBlocks.Toolbar):
     """   
       Markup Toolbar, for quick control over Items.
@@ -301,9 +322,7 @@
     def instantiateWidget (self):
         widget = super (EditTextAttribute, self).instantiateWidget()
         # We need to save off the changed widget's data into the block periodically
-        # Currently looks like OnLoseFocus is not getting called every time we lose focus,
-        #   only when focus moves to another EditText block.
-        widget.Bind(wx.EVT_KEY_UP, self.onKeyUp)
+        # Hopefully OnLoseFocus is getting called every time we lose focus.
         widget.Bind(wx.EVT_KILL_FOCUS, self.onLoseFocus)
         return widget
 
@@ -358,10 +377,7 @@
     def loadAttributeIntoWidget (self, item, widget):  
         if item.hasAttributeValue("body"):
             # get the character string out of the Text LOB
-            noteBody = item.body
-            if isinstance(noteBody, XMLRepositoryView.XMLText):
-                # Read the unicode stream from the XML
-                noteBody = noteBody.getInputStream().read()
+            noteBody = item.ItemBodyString ()
             widget.SetValue(noteBody)
         else:
             widget.Clear()
@@ -372,29 +388,36 @@
     """
     def saveAttributeFromWidget(self, item, widget):  
         toFieldString = widget.GetValue()
-        # DLDTBD - need to parse the string and lookup the contacts
-        #  because it's really the contacts that are stored in the "who" attribute!
-       
+
+        # get the user's addresses into a list
+        addresses = toFieldString.split(',')
+
+        # get all known addresses
+        addressKind = Mail.MailParcel.getEmailAddressKind()
+        knownAddresses = Query.KindQuery().run([addressKind])
+
+        # for each address, strip white space, and match with existing
+        addressList = []
+        for address in addresses:
+            address.strip()
+            if '.' in address and '@' in address:
+                for candidate in knownAddresses:
+                    if candidate.emailAddress == address:
+                        # found an existing address!
+                        addressList.append(candidate)
+                        break
+                else:
+                    # make a new EmailAddress
+                    newAddress = Mail.EmailAddress()
+                    newAddress.emailAddress = address
+                    addressList.append(newAddress)
+
+        # reassign the list to the attribute
+        item.who = addressList
+
     def loadAttributeIntoWidget (self, item, widget):
-        try:
-            whoContacts = item.who # get redirected who list
-        except AttributeError:
-            widget.SetValue('')
-            return
-        try:
-            numContacts = len(whoContacts)
-        except TypeError:
-            numContacts = 0            
-        if numContacts > 0:
-            whoNames = []
-            for whom in whoContacts.values():
-                whoNames.append(whom.getItemDisplayName())
-            whoString = ', '.join(whoNames)
-        else:
-            whoString = ''
-            if isinstance(whoContacts, Contacts.ContactName):
-                whoString = whoContacts.firstName + ' ' + whoContacts.lastName
-        widget.SetValue(whoString)
+        whoString = item.ItemWhoString ()
+        widget.SetValue (whoString)
 
 class FromEditField (EditTextAttribute):
     """Edit field containing the sender's contact"""
@@ -403,3 +426,19 @@
     def loadAttributeIntoWidget(self, item, widget):
         pass
 
+class EditRedirectAttribute (EditTextAttribute):
+    """
+    An attribute-based edit field
+    Our parent block knows which attribute we edit.
+    """
+    def saveAttributeFromWidget(self, item, widget):
+        item.setAttributeValue(self.whichAttribute(), widget.GetValue())
+
+    def loadAttributeIntoWidget(self, item, widget):
+        try:
+            value = item.getAttributeValue(self.whichAttribute())
+        except AttributeError:
+            value = ''
+        widget.SetValue(value)
+
+

Index: chandler/parcels/osaf/framework/blocks/detail/parcel.xml
diff -u chandler/parcels/osaf/framework/blocks/detail/parcel.xml:1.17 chandler/parcels/osaf/framework/blocks/detail/parcel.xml:1.18
--- chandler/parcels/osaf/framework/blocks/detail/parcel.xml:1.17	Mon Aug  9 17:52:25 2004
+++ chandler/parcels/osaf/framework/blocks/detail/parcel.xml	Wed Aug 11 06:33:13 2004
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<!-- $Revision: 1.17 $ -->
-<!-- $Date: 2004/08/10 00:52:25 $ -->
+<!-- $Revision: 1.18 $ -->
+<!-- $Date: 2004/08/11 13:33:13 $ -->
 <!-- Copyright (c) 2003 Open Source Applications Foundation -->
 <!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
 
@@ -57,6 +57,12 @@
     <dispatchToBlock itemref="doc:MarkupBar1"/>
   </BlockEvent>
 
+  <BlockEvent itemName="SendMailMessage">
+    <dispatchEnum>SendToBlock</dispatchEnum>
+    <methodName>onSendMailMessageEvent</methodName>
+    <dispatchToBlock itemref="doc:DetailRoot"/>
+  </BlockEvent>
+
   <!--
     Layout blocks
   -->
@@ -65,6 +71,7 @@
   <SelectionContainer itemName="DetailRoot"
                      itemClass="osaf.framework.blocks.detail.Detail.DetailRoot">
     <childrenBlocks itemref="doc:DetailTrunk"/>
+    <subscribeWhenVisibleEvents itemref="doc:SendMailMessage"/>
   </SelectionContainer>
 
   <ContentItemDetail itemName="DetailTrunk">
@@ -73,12 +80,12 @@
     <childrenBlocks itemref="doc:FromAndToArea"/>
     <childrenBlocks itemref="doc:CoreIndent"/>
     <childrenBlocks itemref="doc:NotesArea"/>
+    <childrenBlocks itemref="doc:SendBar"/>
     <!-- Attributes -->
     <orientationEnum>Vertical</orientationEnum>
     <size>80,20</size>
     <minimumSize>80,40</minimumSize>
     <eventBoundary>True</eventBoundary>
-    <isShown>False</isShown>
   </ContentItemDetail>
 
   <!-- MarkupBar -->
@@ -108,7 +115,6 @@
     <separatorWidth>50</separatorWidth>
     <subscribeWhenVisibleEvents itemref="doc:DummyEvent"/>
     <subscribeWhenVisibleEvents itemref="doc:ButtonPressed"/>
-    <isShown>False</isShown>
   </Toolbar>
 
   <!--
@@ -303,7 +309,6 @@
     <childrenBlocks itemref="doc:ToArea"/>
     <!-- Attributes -->
     <orientationEnum>Vertical</orientationEnum>
-    <isShown>False</isShown>
   </ContentItemDetail>
  
   <ContentItemDetail itsName="FromArea"
@@ -313,17 +318,15 @@
     <!-- Attributes -->
     <orientationEnum>Horizontal</orientationEnum>
     <selectedItemsAttribute>whoFrom</selectedItemsAttribute>
-    <isShown>False</isShown>
   </ContentItemDetail>
 
   <StaticText itsName="FromString"
-              itemClass="osaf.framework.blocks.detail.Detail.StaticTextAttribute">
+              itemClass="osaf.framework.blocks.detail.Detail.StaticRedirectAttribute">
     <title>From: </title>
     <characterStyle itemref="doc:LabelStyle"/>
     <textAlignmentEnum>Left</textAlignmentEnum>    
     <stretchFactor>0.0</stretchFactor>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </StaticText>
   
   <EditText itsName="FromEditField1"
@@ -334,7 +337,6 @@
     <readOnly>True</readOnly>
     <textAlignmentEnum>Left</textAlignmentEnum>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </EditText>
 
   <ContentItemDetail itsName="ToArea"
@@ -344,17 +346,15 @@
     <!-- Attributes -->
     <orientationEnum>Horizontal</orientationEnum>
     <selectedItemsAttribute>who</selectedItemsAttribute>
-    <isShown>False</isShown>
   </ContentItemDetail>
  
   <StaticText itsName="ToString"
-              itemClass="osaf.framework.blocks.detail.Detail.StaticTextAttribute">
+              itemClass="osaf.framework.blocks.detail.Detail.StaticRedirectAttribute">
     <title>To: </title>
     <characterStyle itemref="doc:LabelStyle"/>
     <textAlignmentEnum>Left</textAlignmentEnum>    
     <stretchFactor>0.0</stretchFactor>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </StaticText>
   
   <EditText itsName="ToEditField1"
@@ -362,10 +362,9 @@
     <characterStyle itemref="doc:TextStyle"/>
     <lineStyleEnum>MultiLine</lineStyleEnum>
     <textStyleEnum>PlainText</textStyleEnum>
-    <readOnly>True</readOnly>
+    <readOnly>False</readOnly>
     <textAlignmentEnum>Left</textAlignmentEnum>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </EditText>
 
   <!-- CoreIndent -->
@@ -375,32 +374,28 @@
     <childrenBlocks itemref="doc:Indent2"/>
     <!-- Attributes -->
     <stretchFactor>2</stretchFactor>
-    <isShown>False</isShown>
   </ContentItemDetail>
  
   <ContentItemDetail itsName="Indent">
     <!-- Attributes -->
     <size>80,80</size>
     <stretchFactor>0</stretchFactor>
-    <isShown>False</isShown>
   </ContentItemDetail>
  
   <ContentItemDetail itsName="Indent2">
     <!-- Attributes -->
     <size>80,80</size>
     <stretchFactor>0</stretchFactor>
-    <isShown>False</isShown>
   </ContentItemDetail>
  
   <!-- CoreArea -->
   <ContentItemDetail itsName="CoreArea">
     <childrenBlocks itemref="doc:KindLabel"/>
-    <childrenBlocks itemref="doc:Headline"/>
+    <childrenBlocks itemref="doc:HeadlineArea"/>
     <childrenBlocks itemref="doc:DateTime"/>
     <!-- Attributes -->
     <orientationEnum>Vertical</orientationEnum>
     <stretchFactor>2</stretchFactor>
-    <isShown>False</isShown>
   </ContentItemDetail>
  
   <StaticText itsName="KindLabel"
@@ -410,19 +405,39 @@
     <textAlignmentEnum>Center</textAlignmentEnum>    
     <stretchFactor>0.0</stretchFactor>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </StaticText>
   
-  <StaticText itsName="Headline"
-              itemClass="osaf.framework.blocks.detail.Detail.Headline">
-    <title>Core</title>
+  <ContentItemDetail itsName="HeadlineArea"
+                     itemClass="osaf.framework.blocks.detail.Detail.LabeledTextAttributeBlock">
+    <childrenBlocks itemref="doc:StaticHeadline"/>
+    <childrenBlocks itemref="doc:EditHeadline"/>
+    <!-- Attributes -->
+    <orientationEnum>Horizontal</orientationEnum>
+    <selectedItemsAttribute>about</selectedItemsAttribute>
+    <minimumSize>380, 24</minimumSize>
+    <stretchFactor>0.0</stretchFactor>
+  </ContentItemDetail>
+ 
+  <StaticText itsName="StaticHeadline"
+              itemClass="osaf.framework.blocks.detail.Detail.StaticRedirectAttribute">
+    <title>Subject</title>
     <characterStyle itemref="doc:LabelStyle"/>
     <textAlignmentEnum>Center</textAlignmentEnum>    
     <stretchFactor>0.0</stretchFactor>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </StaticText>
   
+  <EditText itsName="EditHeadline"
+            itemClass="osaf.framework.blocks.detail.Detail.EditRedirectAttribute">
+    <characterStyle itemref="doc:TextStyle"/>
+    <lineStyleEnum>SingleLine</lineStyleEnum>
+    <textStyleEnum>PlainText</textStyleEnum>
+    <readOnly>False</readOnly>
+    <textAlignmentEnum>Left</textAlignmentEnum>
+    <stretchFactor>0.0</stretchFactor>
+    <minimumSize>280, 24</minimumSize>
+  </EditText>
+
   <StaticText itsName="DateTime"
               itemClass="osaf.framework.blocks.detail.Detail.DateTimeBlock">
     <title>Date/Time</title>
@@ -430,7 +445,6 @@
     <textAlignmentEnum>Center</textAlignmentEnum>    
     <stretchFactor>0.0</stretchFactor>
     <minimumSize>80, 24</minimumSize>
-    <isShown>False</isShown>
   </StaticText>
   
   <!-- NotesArea -->
@@ -441,9 +455,46 @@
     <textStyleEnum>RichText</textStyleEnum>
     <readOnly>False</readOnly>
     <textAlignmentEnum>Left</textAlignmentEnum>
-    <stretchFactor>1</stretchFactor>
+    <stretchFactor>3</stretchFactor>
     <minimumSize>380, 120</minimumSize>
-    <isShown>False</isShown>
   </EditText>
 
+  <!-- Send Bar -->
+  <ContentItemDetail itsName="SendBar"
+                     itemClass="osaf.framework.blocks.detail.Detail.MailMessageBlock">
+    <childrenBlocks itemref="doc:NotifyRadioBox"/>
+    <childrenBlocks itemref="doc:SendButton"/>
+    <!-- Attributes -->
+    <minimumSize>300,40</minimumSize>
+    <stretchFactor>1</stretchFactor>
+    <orientationEnum>Horizontal</orientationEnum>
+  </ContentItemDetail>
+ 
+  <RadioBox itsName="NotifyRadioBox">
+    <!-- Attributes -->
+    <title>Notify</title>
+    <choices>All</choices>
+    <choices>New</choices>
+    <radioAlignEnum>Across</radioAlignEnum>
+    <itemsPerLine>2</itemsPerLine>
+
+    <size>200,24</size>
+    <minimumSize>200,30</minimumSize>
+    <border>2.0, 2.0, 2.0, 2.0</border>
+    <stretchFactor>0.0</stretchFactor>
+  </RadioBox>
+  
+  <Button itsName="SendButton">
+    <!-- Attributes -->
+    <title>Send</title>
+    <buttonKind>Text</buttonKind>
+
+    <size>60,30</size>
+    <minimumSize>60,30</minimumSize>
+    <border>2.0, 2.0, 2.0, 2.0</border>
+    <event itemref="doc:SendMailMessage"/>
+    <alignmentEnum>alignCenter</alignmentEnum>
+    <stretchFactor>0.0</stretchFactor>
+  </Button>
+
 </core:Parcel>

Index: chandler/parcels/osaf/views/content/parcel.xml
diff -u chandler/parcels/osaf/views/content/parcel.xml:1.57 chandler/parcels/osaf/views/content/parcel.xml:1.58
--- chandler/parcels/osaf/views/content/parcel.xml:1.57	Fri Aug  6 17:08:12 2004
+++ chandler/parcels/osaf/views/content/parcel.xml	Wed Aug 11 06:33:14 2004
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<!-- $Revision: 1.57 $ -->
-<!-- $Date: 2004/08/07 00:08:12 $ -->
+<!-- $Revision: 1.58 $ -->
+<!-- $Date: 2004/08/11 13:33:14 $ -->
 <!-- Copyright (c) 2004 Open Source Applications Foundation -->
 <!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
 
@@ -17,6 +17,7 @@
              xmlns:contactsModel="http://osafoundation.org/parcels/osaf/contentmodel/contacts"
              xmlns:detail="http://osafoundation.org/parcels/osaf/framework/blocks/detail"
              xmlns:view="http://osafoundation.org/parcels/osaf/views/content"
+             xmlns:main="http://osafoundation.org/parcels/osaf/views/main"
 	     xmlns:events="http://osafoundation.org/parcels/osaf/framework/blocks/Events">
 
   <core:version>0.3</core:version>
@@ -33,6 +34,7 @@
 
   <contentModel:Query itsName="notesQuery">
     <data itemref="contentModel:Note"/>
+    <exactKind>True</exactKind>
   </contentModel:Query>
 
   <contentModel:NamedCollection itsName="notesItemCollection">
@@ -86,6 +88,11 @@
     <rule itemref="view:untitledQuery"/>
   </contentModel:NamedCollection>
 
+  <contentModel:NamedCollection itsName="allItemCollection">
+    <displayName>All</displayName>
+    <rule itemref="view:mixedQuery"/>
+  </contentModel:NamedCollection>
+
   <contentModel:Query itsName="inQuery">
     <data itemref="mailModel:MailMessage"/>
   </contentModel:Query>
@@ -96,6 +103,7 @@
   </contentModel:NamedCollection>
 
   <contentModel:Query itsName="outQuery">
+    <data itemref="mailModel:MailMessage"/>
   </contentModel:Query>
 
   <contentModel:NamedCollection itsName="outItemCollection">
@@ -175,8 +183,32 @@
     <columnWidths>170</columnWidths>
   </List>
 
+  <!-- All Summary View -->
+  <BoxContainer itsName="AllSummary">
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
+    <childrenBlocks itemref="view:AllTable"/>
+    <orientationEnum>Vertical</orientationEnum>
+  </BoxContainer>
+
+  <!-- All Table -->
+  <Table itsName="AllTable">
+    <contents itemref="view:allItemCollection"/>
+
+    <columnHeadings>who</columnHeadings>
+    <columnHeadings>about</columnHeadings>
+    <columnHeadings>date</columnHeadings>
+
+    <columnAttributeNames>who</columnAttributeNames>
+    <columnAttributeNames>about</columnAttributeNames>
+    <columnAttributeNames>date</columnAttributeNames>
+
+    <columnWidths>270</columnWidths>
+    <columnWidths>150</columnWidths>
+    <columnWidths>170</columnWidths>
+  </Table>
+
   <BoxContainer itsName="InSummary">
-    <childrenBlocks itemref="view:LayoutSelector3"/>
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
     <childrenBlocks itemref="view:InTable"/>
     <orientationEnum>Vertical</orientationEnum>
   </BoxContainer>
@@ -199,7 +231,7 @@
   </Table>
 
   <BoxContainer itsName="OutSummary">
-    <childrenBlocks itemref="view:LayoutSelector2"/>
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
     <childrenBlocks itemref="view:OutTable"/>
     <orientationEnum>Vertical</orientationEnum>
   </BoxContainer>
@@ -222,7 +254,7 @@
   </Table>
   
   <ChoiceContainer itsName="CalendarSummary">
-    <childrenBlocks itemref="view:LayoutSelector1"/>
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
     <choices itemref="view:CalendarTable"/>
     <choices itemref="view:SummaryMonth"/>
     <choices itemref="view:SummaryWeek"/>
@@ -316,7 +348,7 @@
   </Table>
 
   <BoxContainer itsName="JunkSummary">
-    <childrenBlocks itemref="view:LayoutSelector5"/>
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
     <childrenBlocks itemref="view:JunkTable"/>
     <orientationEnum>Vertical</orientationEnum>
   </BoxContainer>
@@ -339,7 +371,7 @@
   </Table>
 
   <BoxContainer itsName="TrashSummary">
-    <childrenBlocks itemref="view:LayoutSelector6"/>
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
     <childrenBlocks itemref="view:TrashTable"/>
     <orientationEnum>Vertical</orientationEnum>
   </BoxContainer>
@@ -363,7 +395,7 @@
 
   <!-- Untitled Summary -->
   <BoxContainer itsName="UntitledSummary">
-    <childrenBlocks itemref="view:LayoutSelector7"/>
+    <childrenBlocks itemref="main:LayoutSelector" copy="LayoutSelector"/>
     <childrenBlocks itemref="view:UntitledTable"/>
     <orientationEnum>Vertical</orientationEnum>
   </BoxContainer>
@@ -413,393 +445,6 @@
               itemClass="osaf.views.content.Content.ContentItemDetail">
   </ItemDetail>
 
-  <!-- LayoutSelector1 -->
-  <Toolbar itemName="LayoutSelector1">
-    <blockName>LayoutSelector1</blockName>
-    <childrenBlocks itemref="view:ListViewButton1"/>
-    <childrenBlocks itemref="view:MonthViewButton1"/>
-    <childrenBlocks itemref="view:WeekViewButton1"/>
-    <childrenBlocks itemref="view:DayViewButton1"/>
-    <!-- Attributes -->
-    <colorStyle itemref="detail:GrayBackground3"/>
-    <toolSize>16,16</toolSize>
-    <separatorWidth>100</separatorWidth>
-    <stretchFactor>0.0</stretchFactor>
-    <subscribeWhenVisibleEvents itemref="view:SelectionChanged"/>
-  </Toolbar>
-
-  <!-- LayoutSelector2 -->
-  <Toolbar itemName="LayoutSelector2">
-    <blockName>LayoutSelector2</blockName>
-    <childrenBlocks itemref="view:ListViewButton2"/>
-    <childrenBlocks itemref="view:MonthViewButton2"/>
-    <childrenBlocks itemref="view:WeekViewButton2"/>
-    <childrenBlocks itemref="view:DayViewButton2"/>
-    <!-- Attributes -->
-    <colorStyle itemref="detail:GrayBackground3"/>
-    <toolSize>16,16</toolSize>
-    <separatorWidth>100</separatorWidth>
-    <stretchFactor>0.0</stretchFactor>
-    <subscribeWhenVisibleEvents itemref="view:SelectionChanged"/>
-  </Toolbar>
-
-  <!-- LayoutSelector3 -->
-  <Toolbar itemName="LayoutSelector3">
-    <blockName>LayoutSelector3</blockName>
-    <childrenBlocks itemref="view:ListViewButton3"/>
-    <childrenBlocks itemref="view:MonthViewButton3"/>
-    <childrenBlocks itemref="view:WeekViewButton3"/>
-    <childrenBlocks itemref="view:DayViewButton3"/>
-    <!-- Attributes -->
-    <colorStyle itemref="detail:GrayBackground3"/>
-    <toolSize>16,16</toolSize>
-    <separatorWidth>100</separatorWidth>
-    <stretchFactor>0.0</stretchFactor>
-    <subscribeWhenVisibleEvents itemref="view:SelectionChanged"/>
-  </Toolbar>
-
-  <!-- LayoutSelector5 -->
-  <Toolbar itemName="LayoutSelector5">
-    <blockName>LayoutSelector5</blockName>
-    <childrenBlocks itemref="view:ListViewButton5"/>
-    <childrenBlocks itemref="view:MonthViewButton5"/>
-    <childrenBlocks itemref="view:WeekViewButton5"/>
-    <childrenBlocks itemref="view:DayViewButton5"/>
-    <!-- Attributes -->
-    <colorStyle itemref="detail:GrayBackground3"/>
-    <toolSize>16,16</toolSize>
-    <separatorWidth>100</separatorWidth>
-    <stretchFactor>0.0</stretchFactor>
-    <subscribeWhenVisibleEvents itemref="view:SelectionChanged"/>
-  </Toolbar>
-
-  <!-- LayoutSelector6 -->
-  <Toolbar itemName="LayoutSelector6">
-    <blockName>LayoutSelector6</blockName>
-    <childrenBlocks itemref="view:ListViewButton6"/>
-    <childrenBlocks itemref="view:MonthViewButton6"/>
-    <childrenBlocks itemref="view:WeekViewButton6"/>
-    <childrenBlocks itemref="view:DayViewButton6"/>
-    <!-- Attributes -->
-    <colorStyle itemref="detail:GrayBackground3"/>
-    <toolSize>16,16</toolSize>
-    <separatorWidth>100</separatorWidth>
-    <stretchFactor>0.0</stretchFactor>
-    <subscribeWhenVisibleEvents itemref="view:SelectionChanged"/>
-  </Toolbar>
-
-  <!-- LayoutSelector7 -->
-  <Toolbar itemName="LayoutSelector7">
-    <blockName>LayoutSelector7</blockName>
-    <childrenBlocks itemref="view:ListViewButton7"/>
-    <childrenBlocks itemref="view:MonthViewButton7"/>
-    <childrenBlocks itemref="view:WeekViewButton7"/>
-    <childrenBlocks itemref="view:DayViewButton7"/>
-    <!-- Attributes -->
-    <colorStyle itemref="detail:GrayBackground3"/>
-    <toolSize>16,16</toolSize>
-    <separatorWidth>100</separatorWidth>
-    <stretchFactor>0.0</stretchFactor>
-    <subscribeWhenVisibleEvents itemref="view:SelectionChanged"/>
-  </Toolbar>
-
-  <BlockEvent itemName="SelectionChanged">
-    <dispatchEnum>SendToBlock</dispatchEnum>
-    <methodName>onSelectionChanged</methodName>
-    <dispatchToBlock itemref="view:CalendarSummary"/>
-  </BlockEvent>
-
-  <!--
-    ToolbarItems
-  -->
-  <ToolbarItem itsName="ListViewButton1">
-    <blockName>ListViewButton1</blockName>
-    <location>LayoutSelector1</location>
-    <dynamicParent itemref="view:LayoutSelector1"/>
-    <title>List View</title>
-    <bitmap>application/images/list.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in list mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="MonthViewButton1">
-    <blockName>MonthViewButton1</blockName>
-    <location>LayoutSelector1</location>
-    <dynamicParent itemref="view:LayoutSelector1"/>
-    <title>Month View</title>
-    <bitmap>application/images/month.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in month mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="WeekViewButton1">
-    <blockName>WeekViewButton1</blockName>
-    <location>LayoutSelector1</location>
-    <dynamicParent itemref="view:LayoutSelector1"/>
-    <title>Week View</title>
-    <bitmap>application/images/week.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in week mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="DayViewButton1">
-    <blockName>DayViewButton1</blockName>
-    <location>LayoutSelector1</location>
-    <dynamicParent itemref="view:LayoutSelector1"/>
-    <title>Day View</title>
-    <bitmap>application/images/day.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in day mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="ListViewButton2">
-    <blockName>ListViewButton2</blockName>
-    <location>LayoutSelector2</location>
-    <dynamicParent itemref="view:LayoutSelector2"/>
-    <title>List View</title>
-    <bitmap>application/images/list.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in list mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="MonthViewButton2">
-    <blockName>MonthViewButton2</blockName>
-    <location>LayoutSelector2</location>
-    <dynamicParent itemref="view:LayoutSelector2"/>
-    <title>Month View</title>
-    <bitmap>application/images/month.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in month mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="WeekViewButton2">
-    <blockName>WeekViewButton2</blockName>
-    <location>LayoutSelector2</location>
-    <dynamicParent itemref="view:LayoutSelector2"/>
-    <title>Week View</title>
-    <bitmap>application/images/week.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in week mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="DayViewButton2">
-    <blockName>DayViewButton2</blockName>
-    <location>LayoutSelector2</location>
-    <dynamicParent itemref="view:LayoutSelector2"/>
-    <title>Day View</title>
-    <bitmap>application/images/day.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in day mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="ListViewButton3">
-    <blockName>ListViewButton3</blockName>
-    <location>LayoutSelector3</location>
-    <dynamicParent itemref="view:LayoutSelector3"/>
-    <title>List View</title>
-    <bitmap>application/images/list.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in list mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="MonthViewButton3">
-    <blockName>MonthViewButton3</blockName>
-    <location>LayoutSelector3</location>
-    <dynamicParent itemref="view:LayoutSelector3"/>
-    <title>Month View</title>
-    <bitmap>application/images/month.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in month mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="WeekViewButton3">
-    <blockName>WeekViewButton3</blockName>
-    <location>LayoutSelector3</location>
-    <dynamicParent itemref="view:LayoutSelector3"/>
-    <title>Week View</title>
-    <bitmap>application/images/week.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in week mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="DayViewButton3">
-    <blockName>DayViewButton3</blockName>
-    <location>LayoutSelector3</location>
-    <dynamicParent itemref="view:LayoutSelector3"/>
-    <title>Day View</title>
-    <bitmap>application/images/day.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in day mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="ListViewButton5">
-    <blockName>ListViewButton5</blockName>
-    <location>LayoutSelector5</location>
-    <dynamicParent itemref="view:LayoutSelector5"/>
-    <title>List View</title>
-    <bitmap>application/images/list.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in list mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="MonthViewButton5">
-    <blockName>MonthViewButton5</blockName>
-    <location>LayoutSelector5</location>
-    <dynamicParent itemref="view:LayoutSelector5"/>
-    <title>Month View</title>
-    <bitmap>application/images/month.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in month mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="WeekViewButton5">
-    <blockName>WeekViewButton5</blockName>
-    <location>LayoutSelector5</location>
-    <dynamicParent itemref="view:LayoutSelector5"/>
-    <title>Week View</title>
-    <bitmap>application/images/week.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in week mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="DayViewButton5">
-    <blockName>DayViewButton5</blockName>
-    <location>LayoutSelector5</location>
-    <dynamicParent itemref="view:LayoutSelector5"/>
-    <title>Day View</title>
-    <bitmap>application/images/day.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in day mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="ListViewButton6">
-    <blockName>ListViewButton6</blockName>
-    <location>LayoutSelector6</location>
-    <dynamicParent itemref="view:LayoutSelector6"/>
-    <title>List View</title>
-    <bitmap>application/images/list.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in list mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="MonthViewButton6">
-    <blockName>MonthViewButton6</blockName>
-    <location>LayoutSelector6</location>
-    <dynamicParent itemref="view:LayoutSelector6"/>
-    <title>Month View</title>
-    <bitmap>application/images/month.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in month mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="WeekViewButton6">
-    <blockName>WeekViewButton6</blockName>
-    <location>LayoutSelector6</location>
-    <dynamicParent itemref="view:LayoutSelector6"/>
-    <title>Week View</title>
-    <bitmap>application/images/week.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in week mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="DayViewButton6">
-    <blockName>DayViewButton6</blockName>
-    <location>LayoutSelector6</location>
-    <dynamicParent itemref="view:LayoutSelector6"/>
-    <title>Day View</title>
-    <bitmap>application/images/day.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in day mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="ListViewButton7">
-    <blockName>ListViewButton7</blockName>
-    <location>LayoutSelector7</location>
-    <dynamicParent itemref="view:LayoutSelector7"/>
-    <title>List View</title>
-    <bitmap>application/images/list.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in list mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="MonthViewButton7">
-    <blockName>MonthViewButton7</blockName>
-    <location>LayoutSelector7</location>
-    <dynamicParent itemref="view:LayoutSelector7"/>
-    <title>Month View</title>
-    <bitmap>application/images/month.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in month mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="WeekViewButton7">
-    <blockName>WeekViewButton7</blockName>
-    <location>LayoutSelector7</location>
-    <dynamicParent itemref="view:LayoutSelector7"/>
-    <title>Week View</title>
-    <bitmap>application/images/week.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in week mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
-  <ToolbarItem itsName="DayViewButton7">
-    <blockName>DayViewButton7</blockName>
-    <location>LayoutSelector7</location>
-    <dynamicParent itemref="view:LayoutSelector7"/>
-    <title>Day View</title>
-    <bitmap>application/images/day.png</bitmap>
-    <selectedBitmap></selectedBitmap>
-    <toolbarItemKind>Radio</toolbarItemKind>
-    <helpString>Display the view in day mode</helpString>
-    <event itemref="view:SelectionChanged"/>
-  </ToolbarItem>
-
   <!-- Note View -->
   <SplitterWindow itsName="NoteTableView">
     <contents itemref="view:notesItemCollection"/>
@@ -847,6 +492,18 @@
     <border>1.0, 1.0, 1.0, 1.0</border>
   </SplitterWindow>
 
+  <!-- All View -->
+  <SplitterWindow itsName="AllTableView">
+    <contents itemref="view:allItemCollection"/>
+
+    <childrenBlocks itemref="view:AllSummary"/>
+    <childrenBlocks itemref="detail:DetailRoot" copy="DetailRoot"/>
+
+    <eventBoundary>True</eventBoundary>
+    <border>1.0, 1.0, 1.0, 1.0</border>
+    <splitPercentage>0.4</splitPercentage>
+  </SplitterWindow>
+
   <!-- In View -->
   <SplitterWindow itsName="InTableView">
     <contents itemref="view:inItemCollection"/>



More information about the Commits mailing list