Tools__StoreProjectBrowser.st
changeset 7028 c3c4741aaf0f
parent 7013 ababceb03a08
child 8727 58ac9f09962b
--- a/Tools__StoreProjectBrowser.st	Mon Aug 28 15:35:24 2006 +0200
+++ b/Tools__StoreProjectBrowser.st	Mon Aug 28 15:39:01 2006 +0200
@@ -134,6 +134,7 @@
                           name: 'PackageList'
                           layout: (LayoutFrame 0 0 60 0 0 1 0 1)
                           model: selectedPackageHolder
+                          menu: packageListMenu
                           hasHorizontalScrollBar: true
                           hasVerticalScrollBar: true
                           valueChangeSelector: packageSelectionChanged
@@ -165,11 +166,12 @@
                              (SequenceViewSpec
                                 name: 'VersionsList'
                                 model: selectedVersionHolder
+                                menu: versionsListMenu
                                 hasHorizontalScrollBar: true
                                 hasVerticalScrollBar: true
+                                valueChangeSelector: versionSelectionChanged
                                 useIndex: true
                                 sequenceList: versionsList
-                                valueChangeSelector: versionSelectionChanged
                               )
                              (ViewSpec
                                 name: 'Box2'
@@ -331,6 +333,70 @@
         nil
         nil
       )
+!
+
+packageListMenu
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:Tools::StoreProjectBrowser andSelector:#packageListMenu
+     (Menu new fromLiteralArrayEncoding:(Tools::StoreProjectBrowser packageListMenu)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+        (
+         (MenuItem
+            label: 'Update'
+            itemValue: menuUpdatePackageList
+            translateLabel: true
+          )
+         )
+        nil
+        nil
+      )
+!
+
+versionsListMenu
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:Tools::StoreProjectBrowser andSelector:#versionsListMenu
+     (Menu new fromLiteralArrayEncoding:(Tools::StoreProjectBrowser versionsListMenu)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+        (
+         (MenuItem
+            label: 'Load'
+            itemValue: versionsListMenuLoad
+            translateLabel: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: versionsListMenuUpdate
+            translateLabel: true
+          )
+         )
+        nil
+        nil
+      )
 ! !
 
 !StoreProjectBrowser class methodsFor:'startup'!
@@ -354,7 +420,7 @@
         selectedBundleOrPackage := packagesList value at:(selectedPackageHolder value).
         self updateVersionsListFor:selectedBundleOrPackage.
 
-        versionsList notEmptyOrNil ifTrue:[
+        versionsList value notEmptyOrNil ifTrue:[
             newest := versionsList value first.
             self updateCommentFor:newest
         ]
@@ -562,6 +628,10 @@
 getConnection
     |session|
 
+    dbInfo isNil ifTrue:[
+        self askForDatabaseInfo
+    ].
+
     session := SQL::ODBCSession new.
     session 
         connectWithUsername:(dbInfo userName) 
@@ -598,7 +668,7 @@
 getVersionsForBundleOrPackage:aBundle isBundle:isBundle
     |items cursor row table|
 
-    connection isNil ifTrue:[^ self ].
+    connection isNil ifTrue:[^ #() ].
 
     table := isBundle ifTrue:'tw_bundle' ifFalse:'tw_package'.
 
@@ -712,8 +782,7 @@
         ^ self.
     ].
     connection := session.
-    self window label:(aDBInfo dbName).
-    self infoLabelHolder value:('Connected to ',aDBInfo dbName).
+    self updateInfo.
     ^ self
 !
 
@@ -726,10 +795,30 @@
         connection disconnect.
         connection := nil.
     ]
+!
+
+updateInfo
+    self isConnected ifTrue:[
+        self window label:('Store Browser: ',dbInfo dbName).
+        self infoLabelHolder value:('Connected to ',dbInfo dbName).
+    ] ifFalse:[
+        self window label:'Store Browser'.
+        self infoLabelHolder value:nil.
+    ]
 ! !
 
 !StoreProjectBrowser methodsFor:'menu actions'!
 
+askForDatabaseInfo
+    |defaultInfo|
+
+    defaultInfo := StoreSourceCodeManager defaultDBInfo.
+    defaultInfo dbName isNil ifTrue:[
+        defaultInfo := StoreSourceCodeManager repositoryInfoPerModule first.
+    ].
+    dbInfo := defaultInfo
+!
+
 menuConnect
     |session|
 
@@ -739,6 +828,7 @@
             ^ self.
         ].
         connection := session.
+        self updateInfo.
     ]
 !
 
@@ -746,6 +836,7 @@
     connection notNil ifTrue:[
         connection disconnect.
         connection := nil.
+        self updateInfo.
     ]
 !
 
@@ -934,5 +1025,5 @@
 !StoreProjectBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__StoreProjectBrowser.st,v 1.7 2006-08-28 08:59:54 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__StoreProjectBrowser.st,v 1.8 2006-08-28 13:39:01 cg Exp $'
 ! !