SVN__WorkingCopyBrowser.st
changeset 984 b2a56a7b9539
parent 975 252400afabd6
child 1017 a1cb2fc93f11
--- a/SVN__WorkingCopyBrowser.st	Wed Feb 08 01:52:29 2012 +0100
+++ b/SVN__WorkingCopyBrowser.st	Wed Feb 08 01:52:38 2012 +0100
@@ -28,7 +28,7 @@
 "{ NameSpace: SVN }"
 
 Browser subclass:#WorkingCopyBrowser
-	instanceVariableNames:''
+	instanceVariableNames:'workingCopyEntriesHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'SVN-UI-Browsers'
@@ -109,12 +109,13 @@
               menu: entryMenu
               hasHorizontalScrollBar: true
               hasVerticalScrollBar: true
-              dataList: workingCopyEntriesAspect
+              dataList: workingCopyEntriesHolder
               useIndex: false
               columnHolder: wcEntryTableColumns
+              showLabels: false
             )
            (CheckBoxSpec
-              label: 'Show only changed etries'
+              label: 'Show only modified entries'
               name: 'ShowOnlyChanged'
               layout: (LayoutFrame 0 0 -30 1 -170 1 0 1)
               model: showOnlyChanged
@@ -210,7 +211,7 @@
      the DataSetBuilder may not be able to read the specification."
 
     "
-     DataSetBuilder new openOnClass:SVN::WorkingCopyStatusUI andSelector:#wcEntryTableColumns
+     DataSetBuilder new openOnClass:SVN::WorkingCopyBrowser andSelector:#wcEntryTableColumns
     "
 
     <resource: #tableColumns>
@@ -219,7 +220,26 @@
       (DataSetColumnSpec
          label: ''
          activeHelpKey: ''
+         activeHelpKeyForLabel: ''
+         labelButtonType: None
+         width: 22
+         minWidth: 22
+         editorType: CheckToggle
+         rendererType: CheckToggle
+         model: include
+         menuFromApplication: false
+         printSelector: include
+         showRowSeparator: false
+         showColSeparator: false
+       )
+      (DataSetColumnSpec
+         label: ''
+         activeHelpKey: ''
+         activeHelpKeyForLabel: ''
          labelButtonType: Button
+         width: 22
+         minWidth: 22
+         menuFromApplication: false
          printSelector: statusIcon
          canSelect: false
          showRowSeparator: false
@@ -227,8 +247,11 @@
        )
       (DataSetColumnSpec
          label: 'Container'
+         labelAlignment: left
          activeHelpKey: ''
+         activeHelpKeyForLabel: ''
          labelButtonType: Button
+         menuFromApplication: false
          printSelector: pathText
          canSelect: false
          showRowSeparator: false
@@ -237,7 +260,10 @@
       (DataSetColumnSpec
          label: 'Rev'
          activeHelpKey: ''
+         activeHelpKeyForLabel: ''
          labelButtonType: Button
+         usePreferredWidth: true
+         menuFromApplication: false
          printSelector: revision
          canSelect: false
          showRowSeparator: false
@@ -245,8 +271,12 @@
        )
       (DataSetColumnSpec
          label: 'Author'
+         labelAlignment: left
          activeHelpKey: ''
+         activeHelpKeyForLabel: ''
          labelButtonType: Button
+         usePreferredWidth: true
+         menuFromApplication: false
          printSelector: author
          canSelect: false
          showRowSeparator: false
@@ -255,15 +285,17 @@
       (DataSetColumnSpec
          label: 'Date'
          activeHelpKey: ''
+         activeHelpKeyForLabel: ''
          labelButtonType: Button
+         usePreferredWidth: true
+         menuFromApplication: false
          printSelector: date
          canSelect: false
          showRowSeparator: false
          showColSeparator: false
        )
       )
-
-    "Modified: / 18-08-2009 / 14:31:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    
 ! !
 
 !WorkingCopyBrowser methodsFor:'accessing'!
@@ -312,41 +344,57 @@
 
     (holder := builder bindingAt:#showOnlyChanged) isNil ifTrue:[
         holder := true asValue.
-        holder onChangeEvaluate:
-            [self model changed].
+        holder onChangeSend: #updateWorkingCopyEntries to: self.
         builder aspectAt:#showOnlyChanged put:holder.
     ].
     ^ holder.
 
     "Created: / 21-10-2008 / 18:53:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-02-2012 / 00:43:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+workingCopyEntriesHolder
+    "return/create the 'workingCopyEntriesHolder' value holder (automatically generated)"
+
+    workingCopyEntriesHolder isNil ifTrue:[
+        workingCopyEntriesHolder := ValueHolder new.
+    ].
+    ^ workingCopyEntriesHolder
+
+    "Modified: / 08-02-2012 / 00:46:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-workingCopyEntriesAspect
+workingCopyEntriesHolder:something
+    "set the 'workingCopyEntriesHolder' value holder (automatically generated)"
 
+    workingCopyEntriesHolder := something.
+! !
 
-    |holder|
+!WorkingCopyBrowser methodsFor:'change & update'!
 
-    (holder := builder bindingAt:#workingCopyEntriesAspect) isNil ifTrue:[
-        holder := (PluggableAdaptor on: self modelHolder)
-                    getBlock:[:model|self workingCopyEntries]
-                    putBlock:[:model :value|self error:'Should never be sent']
-                    updateBlock:[:model :aspect :value|true].
-        builder aspectAt:#workingCopyEntriesAspect put:holder.
+updateWorkingCopyEntries
+    | entries |
+
+    entries := self model status.
+    self showOnlyChanged value  ifTrue: [  
+        entries := entries reject: [:entry | entry status isNormal ] 
     ].
-    ^ holder.
 
-    "Created: / 11-04-2008 / 10:24:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 21-10-2008 / 18:55:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self workingCopyEntriesHolder value: entries
+
+    "Created: / 08-02-2012 / 00:43:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !WorkingCopyBrowser methodsFor:'hooks'!
 
 commonPostBuild
 
-    ^self model changed
+    self updateWorkingCopyEntries.
+    self modelHolder onChangeSend: #updateWorkingCopyEntries to: self.
 
     "Created: / 11-04-2008 / 10:33:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 12-04-2008 / 21:05:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-02-2012 / 00:47:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !WorkingCopyBrowser methodsFor:'menu actions'!