class: AbstractFileBrowser
authorClaus Gittinger <cg@exept.de>
Thu, 21 Mar 2013 12:50:39 +0100
changeset 12497 216e10b026ab
parent 12496 0c1a828b524e
child 12498 46c5ecbd14f1
class: AbstractFileBrowser added: #fileFileInPackage #hasPackageDirectorySelected changed: #fileMenu added load package menu item - I was tired of typing...
AbstractFileBrowser.st
--- a/AbstractFileBrowser.st	Thu Mar 21 10:40:25 2013 +0100
+++ b/AbstractFileBrowser.st	Thu Mar 21 12:50:39 2013 +0100
@@ -1667,6 +1667,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:AbstractFileBrowser andSelector:#fileMenu
      (Menu new fromLiteralArrayEncoding:(AbstractFileBrowser fileMenu)) startUp
@@ -1680,7 +1681,6 @@
          (MenuItem
             label: 'Open'
             itemValue: doShowFileContents
-            translateLabel: true
           )
          (MenuItem
             label: '-'
@@ -1689,20 +1689,22 @@
             enabled: hasFileSelection
             label: 'FileIn'
             itemValue: fileFileIn
-            translateLabel: true
           )
          (MenuItem
             enabled: hasFileSelection
             label: 'FileIn to Namespace...'
             itemValue: fileFileInToNameSpace
-            translateLabel: true
+          )
+         (MenuItem
+            enabled: hasPackageDirectorySelected
+            label: 'Load Package from Here'
+            itemValue: fileFileInPackage
           )
          (MenuItem
             label: '-'
           )
          (MenuItem
             label: 'New'
-            translateLabel: true
             submenuChannel: newMenu
             keepLinkedMenu: true
           )
@@ -1713,31 +1715,26 @@
             enabled: hasSelection
             label: 'Cut'
             itemValue: cutFiles
-            translateLabel: true
           )
          (MenuItem
             enabled: hasSelection
             label: 'Copy'
             itemValue: copyFiles
-            translateLabel: true
           )
          (MenuItem
             enabled: canPaste
             label: 'Paste'
             itemValue: pasteFiles
-            translateLabel: true
           )
          (MenuItem
             enabled: hasSelection
             label: 'Delete'
             itemValue: deleteFiles
-            translateLabel: true
           )
          (MenuItem
             enabled: hasSelection
             label: 'Erase'
             itemValue: eraseFiles
-            translateLabel: true
           )
          (MenuItem
             label: '-'
@@ -1746,26 +1743,22 @@
             enabled: hasSelection
             label: 'Rename...'
             itemValue: renameSelection
-            translateLabel: true
             shortcutKey: Rename
           )
          (MenuItem
             enabled: hasSelection
             label: 'Move To...'
             itemValue: moveSelectionTo
-            translateLabel: true
           )
          (MenuItem
             enabled: hasSelection
             label: 'Copy To...'
             itemValue: copySelectionTo
-            translateLabel: true
           )
          (MenuItem
             enabled: hasSelection
             label: 'Properties...'
             itemValue: doShowProperties
-            translateLabel: true
           )
          (MenuItem
             label: '-'
@@ -1774,25 +1767,21 @@
          (MenuItem
             enabled: canAddToClassPath
             label: 'Add to Java Class Path'
-            translateLabel: true
             isVisible: javaSupportLoaded
           )
          (MenuItem
             enabled: canRemoveFromClassPath
             label: 'Remove from Java Class Path'
-            translateLabel: true
             isVisible: javaSupportLoaded
           )
          (MenuItem
             enabled: canAddToSourcePath
             label: 'Add to Java Source Path'
-            translateLabel: true
             isVisible: javaSupportLoaded
           )
          (MenuItem
             enabled: canRemoveFromSourcePath
             label: 'Remove from Java Source Path'
-            translateLabel: true
             isVisible: javaSupportLoaded
           )
          (MenuItem
@@ -1801,15 +1790,12 @@
          (MenuItem
             enabled: enableFileHistory
             label: 'File History'
-            translateLabel: true
             submenuChannel: menuFileHistory
           )
          )
         nil
         nil
       )
-
-    "Modified: / 07-02-2007 / 18:44:54 / cg"
 !
 
 fileOpMenu
@@ -6409,6 +6395,29 @@
     "Modified: / 20-09-2006 / 14:29:24 / cg"
 !
 
+fileFileInPackage
+    "assuming the current directory is a package directory, load it"
+
+    |packageDir dir path top packageID|
+
+    "/ find a reasonable package-id (walk up until we find stx)
+    path := ''.
+    dir := packageDir := self currentDirectory.
+
+    top := (Smalltalk projectDirectoryForPackage:'stx') asFilename.
+    [ (dir / 'stx') = top ] whileFalse:[
+        path := dir baseName , '/' , path.
+        dir := dir directory.
+        dir isNil ifTrue:[
+            Dialog warning:'Could not find a path from "stx" to the current directory.'.
+            "/ should ask the user for a packageID and proceed...
+            ^  self.
+        ].
+    ].
+    packageID := path copyWithoutLast:1.
+    Smalltalk loadPackage:packageID fromDirectory:packageDir asAutoloaded:true
+!
+
 fileFileInToNameSpace
     "fileIn the selected file(s)<into a nameSpace"
 
@@ -8606,6 +8615,15 @@
     ^ nil
 !
 
+hasPackageDirectorySelected
+    |dir|
+
+    dir := self currentDirectory.
+    ^  dir notNil
+    and:[ dir exists
+    and:[ (dir / 'abbrev.stc') exists ]]
+!
+
 parentDirectoriesOfCurrentFiles
     ^ self currentSelectedObjects 
         collect:[:file | file directory] as:Set
@@ -9158,10 +9176,10 @@
 !AbstractFileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.515 2013-03-20 19:56:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.516 2013-03-21 11:50:39 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.515 2013-03-20 19:56:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.516 2013-03-21 11:50:39 cg Exp $'
 ! !