[Commits] (donn) Various changes to the Detail View
commits at osafoundation.org
commits at osafoundation.org
Thu Sep 16 12:23:15 PDT 2004
Commit by: donn
Modified files:
chandler/parcels/osaf/framework/blocks/detail/Detail.py 1.30 1.31
chandler/parcels/osaf/framework/blocks/detail/parcel.xml 1.26 1.27
Log message:
Various changes to the Detail View
----------------------------------
* Added event.Skip() to DV Lose Focus handler
- should fix bug 1864 - highlight remaining in edit field
* Now hiding some fields that showed garbage in Contacts DV
* Changed the "Notify" button in DV for Collections
- now says "Renotify" when already shared
* Added blockName attributes to DV blocks for debugging etc
* Added a DV dump debug method to see which blocks are shown
ViewCVS links:
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/detail/Detail.py.diff?r1=text&tr1=1.30&r2=text&tr2=1.31
http://cvs.osafoundation.org/index.cgi/chandler/parcels/osaf/framework/blocks/detail/parcel.xml.diff?r1=text&tr1=1.26&r2=text&tr2=1.27
Index: chandler/parcels/osaf/framework/blocks/detail/parcel.xml
diff -u chandler/parcels/osaf/framework/blocks/detail/parcel.xml:1.26 chandler/parcels/osaf/framework/blocks/detail/parcel.xml:1.27
--- chandler/parcels/osaf/framework/blocks/detail/parcel.xml:1.26 Wed Sep 15 11:19:12 2004
+++ chandler/parcels/osaf/framework/blocks/detail/parcel.xml Thu Sep 16 12:23:13 2004
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.26 $ -->
-<!-- $Date: 2004/09/15 18:19:12 $ -->
+<!-- $Revision: 1.27 $ -->
+<!-- $Date: 2004/09/16 19:23:13 $ -->
<!-- Copyright (c) 2003-2004 Open Source Applications Foundation -->
<!-- License: http://osafoundation.org/Chandler_0.1_license_terms.htm -->
@@ -79,6 +79,7 @@
<!-- Root -->
<SelectionContainer itemName="DetailRootTemplate"
itemClass="osaf.framework.blocks.detail.Detail.DetailRoot">
+ <blockName value="DetailRootTemplate"/>
<childrenBlocks itemref="doc:DetailTrunk"/>
<subscribeWhenVisibleEvents itemref="doc:SendShareItem"/>
<subscribeWhenVisibleEvents itemref="doc:NULL"/>
@@ -86,8 +87,10 @@
<ContentItemDetail itemName="DetailTrunk">
<!-- child blocks -->
+ <blockName value="DetailTrunk"/>
<childrenBlocks itemref="doc:MarkupBar"/>
<childrenBlocks itemref="doc:FromAndToArea"/>
+ <childrenBlocks itemref="doc:ContactFullNameArea"/>
<childrenBlocks itemref="doc:CoreIndent"/>
<childrenBlocks itemref="doc:NotesArea"/>
<childrenBlocks itemref="doc:SendShareButton"/>
@@ -261,8 +264,8 @@
<!-- FromAndToArea -->
<ContentItemDetail itsName="FromAndToArea">
+ <blockName value="FromAndToArea"/>
<childrenBlocks itemref="doc:FromArea"/>
- <childrenBlocks itemref="doc:ContactFullNameArea"/>
<childrenBlocks itemref="doc:ToArea"/>
<!-- Attributes -->
<orientationEnum>Vertical</orientationEnum>
@@ -270,6 +273,7 @@
<ContentItemDetail itsName="FromArea"
itemClass="osaf.framework.blocks.detail.Detail.LabeledTextAttributeBlock">
+ <blockName value="FromArea"/>
<childrenBlocks itemref="doc:FromString"/>
<childrenBlocks itemref="doc:FromEditField1"/>
<!-- Attributes -->
@@ -279,6 +283,7 @@
<StaticText itsName="FromString"
itemClass="osaf.framework.blocks.detail.Detail.StaticRedirectAttribute">
+ <blockName value="FromString"/>
<title>From: </title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Left</textAlignmentEnum>
@@ -288,6 +293,7 @@
<EditText itsName="FromEditField1"
itemClass="osaf.framework.blocks.detail.Detail.FromEditField">
+ <blockName value="FromEditField1"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>MultiLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -298,6 +304,7 @@
<ContentItemDetail itsName="ContactFullNameArea"
itemClass="osaf.framework.blocks.detail.Detail.ContactFullNameBlock">
+ <blockName value="ContactFullNameArea"/>
<childrenBlocks itemref="doc:ContactFullNameString"/>
<childrenBlocks itemref="doc:ContactFullNameEditField"/>
<!-- Attributes -->
@@ -306,6 +313,7 @@
</ContentItemDetail>
<StaticText itsName="ContactFullNameString">
+ <blockName value="ContactFullNameString"/>
<title>Full Name: </title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Left</textAlignmentEnum>
@@ -315,6 +323,7 @@
<EditText itsName="ContactFullNameEditField"
itemClass="osaf.framework.blocks.detail.Detail.ContactFullNameEditField">
+ <blockName value="ContactFullNameEditField"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>SingleLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -325,6 +334,7 @@
<ContentItemDetail itsName="ToArea"
itemClass="osaf.framework.blocks.detail.Detail.LabeledTextAttributeBlock">
+ <blockName value="ToArea"/>
<childrenBlocks itemref="doc:ToString"/>
<childrenBlocks itemref="doc:ToEditField1"/>
<!-- Attributes -->
@@ -334,6 +344,7 @@
<StaticText itsName="ToString"
itemClass="osaf.framework.blocks.detail.Detail.StaticRedirectAttribute">
+ <blockName value="ToString"/>
<title>To: </title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Left</textAlignmentEnum>
@@ -343,6 +354,7 @@
<EditText itsName="ToEditField1"
itemClass="osaf.framework.blocks.detail.Detail.ToEditField">
+ <blockName value="ToEditField1"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>MultiLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -353,6 +365,7 @@
<!-- CoreIndent -->
<ContentItemDetail itsName="CoreIndent">
+ <blockName value="DetailRootTemplate"/>
<childrenBlocks itemref="doc:Indent"/>
<childrenBlocks itemref="doc:CoreArea"/>
<childrenBlocks itemref="doc:Indent2"/>
@@ -362,18 +375,21 @@
<ContentItemDetail itsName="Indent">
<!-- Attributes -->
+ <blockName value="Indent"/>
<size>80,80</size>
<stretchFactor>0</stretchFactor>
</ContentItemDetail>
<ContentItemDetail itsName="Indent2">
<!-- Attributes -->
+ <blockName value="Indent2"/>
<size>80,80</size>
<stretchFactor>0</stretchFactor>
</ContentItemDetail>
<!-- CoreArea -->
<ContentItemDetail itsName="CoreArea">
+ <blockName value="CoreArea"/>
<childrenBlocks itemref="doc:KindLabel"/>
<childrenBlocks itemref="doc:HeadlineArea"/>
<childrenBlocks itemref="doc:EmailAddressArea"/>
@@ -387,6 +403,7 @@
<StaticText itsName="KindLabel"
itemClass="osaf.framework.blocks.detail.Detail.KindLabel">
+ <blockName value="KindLabel"/>
<title>Kind</title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Center</textAlignmentEnum>
@@ -396,6 +413,7 @@
<ContentItemDetail itsName="HeadlineArea"
itemClass="osaf.framework.blocks.detail.Detail.LabeledTextAttributeBlock">
+ <blockName value="HeadlineArea"/>
<childrenBlocks itemref="doc:StaticHeadline"/>
<childrenBlocks itemref="doc:EditHeadline"/>
<!-- Attributes -->
@@ -407,6 +425,7 @@
<StaticText itsName="StaticHeadline"
itemClass="osaf.framework.blocks.detail.Detail.StaticRedirectAttribute">
+ <blockName value="StaticHeadline"/>
<title>Subject</title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Center</textAlignmentEnum>
@@ -415,7 +434,8 @@
</StaticText>
<EditText itsName="EditHeadline"
- itemClass="osaf.framework.blocks.detail.Detail.EditRedirectAttribute">
+ itemClass="osaf.framework.blocks.detail.Detail.EditHeadlineRedirectAttribute">
+ <blockName value="EditHeadline"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>SingleLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -427,6 +447,7 @@
<ContentItemDetail itsName="EmailAddressArea"
itemClass="osaf.framework.blocks.detail.Detail.EmailAddressBlock">
+ <blockName value="EmailAddressArea"/>
<childrenBlocks itemref="doc:StaticEmailAddress"/>
<childrenBlocks itemref="doc:EditEmailAddress"/>
<!-- Attributes -->
@@ -438,6 +459,7 @@
<StaticText itsName="StaticEmailAddress"
itemClass="osaf.framework.blocks.detail.Detail.StaticEmailAddressAttribute">
+ <blockName value="StaticEmailAddress"/>
<title>home email address</title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Center</textAlignmentEnum>
@@ -447,6 +469,7 @@
<EditText itsName="EditEmailAddress"
itemClass="osaf.framework.blocks.detail.Detail.EditEmailAddressAttribute">
+ <blockName value="EditEmailAddress"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>SingleLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -458,6 +481,7 @@
<StaticText itsName="DateTime"
itemClass="osaf.framework.blocks.detail.Detail.DateTimeBlock">
+ <blockName value="DateTime"/>
<title>Date/Time</title>
<characterStyle itemref="doc:TextStyle"/>
<textAlignmentEnum>Center</textAlignmentEnum>
@@ -467,6 +491,7 @@
<ContentItemDetail itsName="CalendarStartTime"
itemClass="osaf.framework.blocks.detail.Detail.CalendarEventBlock">
+ <blockName value="CalendarStartTime"/>
<childrenBlocks itemref="doc:StaticCalendarStartTime"/>
<childrenBlocks itemref="doc:EditCalendarStartTime"/>
<!-- Attributes -->
@@ -478,6 +503,7 @@
<StaticText itsName="StaticCalendarStartTime"
itemClass="osaf.framework.blocks.detail.Detail.StaticTimeAttribute">
+ <blockName value="StaticCalendarStartTime"/>
<title>Start Time</title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Center</textAlignmentEnum>
@@ -487,6 +513,7 @@
<EditText itsName="EditCalendarStartTime"
itemClass="osaf.framework.blocks.detail.Detail.EditTimeAttribute">
+ <blockName value="EditCalendarStartTime"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>SingleLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -498,6 +525,7 @@
<ContentItemDetail itsName="CalendarDuration"
itemClass="osaf.framework.blocks.detail.Detail.CalendarEventBlock">
+ <blockName value="CalendarDuration"/>
<childrenBlocks itemref="doc:StaticCalendarDuration"/>
<childrenBlocks itemref="doc:EditCalendarDuration"/>
<!-- Attributes -->
@@ -508,6 +536,7 @@
<StaticText itsName="StaticCalendarDuration"
itemClass="osaf.framework.blocks.detail.Detail.StaticDurationAttribute">
+ <blockName value="StaticCalendarDuration"/>
<title>Duration</title>
<characterStyle itemref="doc:LabelStyle"/>
<textAlignmentEnum>Center</textAlignmentEnum>
@@ -517,6 +546,7 @@
<EditText itsName="EditCalendarDuration"
itemClass="osaf.framework.blocks.detail.Detail.EditDurationAttribute">
+ <blockName value="EditCalendarDuration"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>SingleLine</lineStyleEnum>
<textStyleEnum>PlainText</textStyleEnum>
@@ -529,6 +559,7 @@
<!-- NotesArea -->
<EditText itsName="NotesArea"
itemClass="osaf.framework.blocks.detail.Detail.NoteBody">
+ <blockName value="NotesArea"/>
<characterStyle itemref="doc:TextStyle"/>
<lineStyleEnum>MultiLine</lineStyleEnum>
<textStyleEnum>RichText</textStyleEnum>
@@ -543,6 +574,7 @@
itemClass="osaf.framework.blocks.detail.Detail.SendShareButton">
<!-- Attributes -->
+ <blockName value="SendShareButton"/>
<title>xxxxx</title>
<buttonKind>Text</buttonKind>
Index: chandler/parcels/osaf/framework/blocks/detail/Detail.py
diff -u chandler/parcels/osaf/framework/blocks/detail/Detail.py:1.30 chandler/parcels/osaf/framework/blocks/detail/Detail.py:1.31
--- chandler/parcels/osaf/framework/blocks/detail/Detail.py:1.30 Mon Sep 13 21:19:33 2004
+++ chandler/parcels/osaf/framework/blocks/detail/Detail.py Thu Sep 16 12:23:13 2004
@@ -1,5 +1,5 @@
-__version__ = "$Revision: 1.30 $"
-__date__ = "$Date: 2004/09/14 04:19:33 $"
+__version__ = "$Revision: 1.31 $"
+__date__ = "$Date: 2004/09/16 19:23:13 $"
__copyright__ = "Copyright (c) 2004 Open Source Applications Foundation"
__license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
@@ -46,6 +46,10 @@
item= self.selectedItem()
assert item is notification.data['item'], "can't track selection in DetailRoot.onSelectionChangedEvent"
self.synchronizeWidget()
+ if __debug__:
+ dumpSelectionChanged = False
+ if dumpSelectionChanged:
+ self.dumpShownHierarchy ('onSelectionChangedEvent')
def synchronizeDetailView(self, item):
"""
@@ -81,11 +85,46 @@
for child in children:
child.isShown = item is not None
reNotifyInside(child, item)
-
+
+ if __debug__:
+ def dumpShownHierarchy (self, methodName=''):
+ """ Like synchronizeDetailView, but just dumps info about which
+ blocks are currently shown.
+ """
+ def reNotifyInside(block, item, indent):
+ if not isinstance(block, DynamicContainerBlocks.ToolbarItem):
+ if block.isShown:
+ print indent + '+' + block.blockName
+ else:
+ print indent + '-' + block.blockName
+ try:
+ # process from the children up
+ for child in block.childrenBlocks:
+ reNotifyInside (child, item, indent + ' ')
+ except AttributeError:
+ pass
+ item= self.selectedItem()
+ try:
+ itemDescription = item.itsKind.itsName + ' '
+ except AttributeError:
+ itemDescription = ''
+ try:
+ itemDescription += str (item)
+ except:
+ itemDescription += str (item.itsName)
+ print methodName + " " + itemDescription
+ print "-------------------------------"
+ reNotifyInside(self, item, '')
+ print
+
def synchronizeWidget (self):
item= self.selectedItem()
self.synchronizeDetailView(item)
super(DetailRoot, self).synchronizeWidget ()
+ if __debug__:
+ dumpSynchronizeWidget = False
+ if dumpSynchronizeWidget:
+ self.dumpShownHierarchy ('synchronizeWidget')
def onDestroyWidget (self):
# Hack - DLDTBD - remove when wxWidgets issue is resolved.
@@ -428,9 +467,10 @@
widget = self.widget
self.loadAttributeIntoWidget(item, widget)
- def onLoseFocus (self, notification):
+ def onLoseFocus (self, event):
# called when we lose focus, to save away the text
self.saveTextValue()
+ event.Skip()
def OnDataChanged (self):
# Notification that an edit operation has taken place
@@ -518,6 +558,12 @@
class FromEditField (EditTextAttribute):
"""Edit field containing the sender's contact"""
+ def shouldShow (self, item):
+ # don't show if the item is a Contact
+ contactKind = Contacts.ContactsParcel.getContactKind ()
+ shouldShow = not item.isItemOf (contactKind)
+ return shouldShow
+
def saveAttributeFromWidget(self, item, widget):
pass
@@ -560,6 +606,17 @@
value = ''
widget.SetValue(value)
+class EditHeadlineRedirectAttribute (EditRedirectAttribute):
+ """
+ An attribute-based edit field
+ Doesn't show for contacts.
+ """
+ def shouldShow (self, item):
+ # don't show if the item is a Contact
+ contactKind = Contacts.ContactsParcel.getContactKind ()
+ shouldShow = not item.isItemOf (contactKind)
+ return shouldShow
+
class SendShareButton (DetailSynchronizer, ControlBlocks.Button):
def shouldShow (self, item):
# if the item is a MailMessageMixin, we should show ourself
@@ -574,20 +631,20 @@
if isinstance (item, ItemCollection.ItemCollection):
# collection: label should read "Notify"
label = "Notify"
- # disable this button if the collection is already shared
+ # change the button label if the collection is already shared
try:
- shouldEnable = not Sharing.isShared (item)
+ renotify = Sharing.isShared (item)
except AttributeError:
- shouldEnable = True
+ pass
else:
- if not shouldEnable:
- label = "Shared"
+ if renotify:
+ label = "Renotify"
# disable the button if no sharees
try:
sharees = item.sharees
except AttributeError:
sharees = []
- shouldEnable = shouldEnable and len (sharees) > 0
+ shouldEnable = len (sharees) > 0
else:
# not a collection, so it's probably Mail
label = "Send"
More information about the Commits
mailing list