AbstractFileBrowser.st
changeset 18246 1217eb5963fc
parent 18175 403729a65fe5
child 18248 0e0b4a81b2a4
--- a/AbstractFileBrowser.st	Fri Jun 29 11:42:31 2018 +0200
+++ b/AbstractFileBrowser.st	Sat Jun 30 18:44:21 2018 +0200
@@ -3795,6 +3795,12 @@
     ^ self aspectFor:#canMake ifAbsent:[ ValueHolder with:false ].
 !
 
+canOpenChangeBrowser
+    ^ self aspectFor:#canOpenChangeBrowser ifAbsent:[ false asValue ].
+
+    "Created: / 30-06-2018 / 18:29:53 / Claus Gittinger"
+!
+
 currentDirectories
     " returns a holder on a Collection of all currently selected directories  
       if only a file is selected, currentDirectories holds the directory of the file
@@ -4756,6 +4762,7 @@
     selectionNotEmpty := selection notEmptyOrNil.
     self hasSelection value:selectionNotEmpty.
     self hasFileSelection value:(selectionNotEmpty and:[self firstSelectedFile notNil]).
+    self canOpenChangeBrowser value:(selectionNotEmpty).
 
     newDirectories := self directoriesForFiles:selection.
     oldDirectories := self currentSelectedDirectories.
@@ -4788,6 +4795,7 @@
 
     "Modified: / 29-12-2010 / 11:01:52 / cg"
     "Modified: / 17-12-2013 / 08:23:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-06-2018 / 18:30:44 / Claus Gittinger"
 !
 
 filterModelChanged
@@ -8087,7 +8095,21 @@
 openChangesBrowser
     "open a change browser on the selected file(s)"
 
+    self currentSelectedDirectories notEmptyOrNil ifTrue:[
+        self currentSelectedDirectories do:[:fn |
+            (fn suffix = 'package') ifTrue:[
+                ChangeSetBrowser openOn:(GitHubSmalltalkPackageReader readPackageFrom:fn).
+            ].    
+            (fn suffix = 'class') ifTrue:[
+                ChangeSetBrowser openOn:(GitHubSmalltalkClassReader readPackageFrom:fn).
+            ].    
+        ].
+        ^ self.
+    ].
+    
     self openTool:(UserPreferences current changesBrowserClass)
+
+    "Modified: / 30-06-2018 / 18:35:51 / Claus Gittinger"
 !
 
 openDiffView