Fixed show/hide options (to be folded)
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sat, 03 May 2014 00:52:55 +0100
changeset 334 43dba1c14293
parent 333 d0698eecaea4
child 335 ee7df84ebb4f
Fixed show/hide options (to be folded)
SmallSense__AbstractDIalog.st
SmallSense__AbstractSearchDialog.st
SmallSense__ClassSearchDialog.st
smallsense.rc
--- a/SmallSense__AbstractDIalog.st	Fri May 02 12:29:52 2014 +0100
+++ b/SmallSense__AbstractDIalog.st	Sat May 03 00:52:55 2014 +0100
@@ -4,7 +4,7 @@
 
 SimpleDialog subclass:#AbstractDIalog
 	instanceVariableNames:'buttons buttonsPanelView acceptEnabledHolder
-		optionsVisibleLabelHolder optionsVisibleHolder'
+		optionsVisibleLabelHolder optionsVisibleHolder optionsPanelView'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'SmallSense-Core-Interface-Search'
@@ -40,28 +40,23 @@
        component: 
       (SpecCollection
          collection: (
-          (VerticalPanelViewSpec
-             name: 'ContentAndOptionsPanel'
+          (ViewSpec
+             name: 'Layput'
              layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-             horizontalLayout: fit
-             verticalLayout: topSpaceFit
-             horizontalSpace: 3
-             verticalSpace: 3
-             elementsChangeSize: true
              component: 
             (SpecCollection
                collection: (
                 (UISubSpecification
                    name: 'Content'
+                   layout: (LayoutFrame 0 0 0 0 0 1 0 1)
                    minorKey: contentPaneSpec
-                   extent: (Point 708 350)
                  )
                 (UISubSpecification
                    name: 'Options'
-                   initiallyInvisible: true
+                   layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
                    visibilityChannel: optionsVisibleHolder
-                   minorKey: optionsSpec
-                   extent: (Point 708 40)
+                   minorKey: optionsPaneSpec
+                   postBuildCallback: postBuildOptionsPanelView:
                  )
                 )
               
@@ -72,7 +67,7 @@
        )
      )
 
-    "Modified: / 02-05-2014 / 00:40:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-05-2014 / 00:49:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 windowSpec
@@ -302,9 +297,61 @@
 !AbstractDIalog methodsFor:'actions'!
 
 doOptionsShowOrHide
-    self optionsVisibleHolder value: self optionsVisibleHolder value not.
+    | optionsView optionsViewHeight otherView otherViewIsBelow layout |
+
+    optionsView := optionsPanelView.
+    optionsView superView subViews last == optionsView ifTrue:[ 
+        otherView := optionsView superView subViews before: optionsView.
+        otherViewIsBelow := false.
+    ] ifFalse:[
+        otherView := optionsView superView subViews after: optionsView.
+        otherViewIsBelow := true.
+    ].
+    self optionsVisibleHolder value ifFalse:[ 
+        "/ Show
+        self optionsVisibleHolder value: true.
+        optionsViewHeight := ((self class optionsPaneSpec at: 5) at: 9) at: 5.
+        otherViewIsBelow ifFalse:[
+            layout := otherView layout copy.
+            layout bottomOffset: (layout bottomOffset - optionsViewHeight).  
+            otherView  layout: layout.
+
+            layout := optionsView layout copy.
+            layout topOffset: (layout topOffset - optionsViewHeight).  
+            optionsView  layout: layout.
+        ] ifTrue:[ 
+            layout := optionsView layout copy.
+            layout bottomOffset: (layout bottomOffset + optionsViewHeight).  
+            optionsView  layout: layout.
 
-    "Modified: / 02-05-2014 / 00:27:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+            layout := otherView layout copy.
+            layout topOffset: (layout topOffset + optionsViewHeight).  
+            otherView  layout: layout.
+        ].
+    ] ifTrue:[ 
+        "/ Hide
+        self optionsVisibleHolder value: false. 
+        optionsViewHeight := ((self class optionsPaneSpec at: 5) at: 9) at: 5.
+        otherViewIsBelow ifFalse:[
+            layout := otherView layout copy.
+            layout bottomOffset: (layout bottomOffset + optionsViewHeight).  
+            otherView  layout: layout.
+
+            layout := optionsView layout copy.
+            layout topOffset: (layout topOffset + optionsViewHeight).  
+            optionsView  layout: layout.
+        ] ifTrue:[ 
+            layout := optionsView layout copy.
+            layout bottomOffset: (layout bottomOffset - optionsViewHeight).  
+            optionsView  layout: layout.
+
+            layout := otherView layout copy.
+            layout topOffset: (layout topOffset - optionsViewHeight).  
+            otherView  layout: layout.
+        ].                                                                    
+    ].
+
+    "Modified: / 03-05-2014 / 00:27:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractDIalog methodsFor:'adding & removing components'!
@@ -442,9 +489,11 @@
         self optionsVisibleHolder value 
             ifTrue:[ resources string: 'Hide options']
             ifFalse:[ resources string: 'Options'].
+    label := label asText colorizeAllWith: Color blue.
     self optionsVisibleLabelHolder value: label.
 
     "Created: / 02-05-2014 / 00:29:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-05-2014 / 23:56:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractDIalog methodsFor:'hooks'!
@@ -455,9 +504,17 @@
     "Created: / 28-04-2014 / 22:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+postBuildOptionsPanelView:aView
+    optionsPanelView := aView
+
+    "Modified: / 03-05-2014 / 00:00:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 postBuildWith: anUIBuilder
     | w |
 
+    self updateOptionsVisibleLabel.
+
     buttons isEmpty ifTrue:[ 
         | savedButtonsPanelView |
 
@@ -476,6 +533,7 @@
     ].
 
     "Created: / 28-04-2014 / 22:53:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-05-2014 / 00:27:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractDIalog methodsFor:'initialization'!
--- a/SmallSense__AbstractSearchDialog.st	Fri May 02 12:29:52 2014 +0100
+++ b/SmallSense__AbstractSearchDialog.st	Sat May 03 00:52:55 2014 +0100
@@ -121,13 +121,13 @@
                    useIndex: false
                    highlightMode: line
                    doubleClickSelector: doAcceptByDoubleClick
-                   selectConditionSelector: canSelect:
+                   selectConditionSelector: canSelectIndex:
                    showLines: false
                    showIndicators: false
                    showLeftIndicators: false
                    useDefaultIcons: false
                    showRoot: false
-                   extent: (Point 708 302)
+                   extent: (Point 708 307)
                    postBuildCallback: postBuildMatchingObjectsView:
                  )
                 )
@@ -595,6 +595,15 @@
     "Modified (format): / 28-04-2014 / 00:11:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+canSelectIndex: selectionIndex
+    (selectionIndex between: 1 and: matchingObjectsTree size) ifTrue:[ 
+        ^ self canSelect: (matchingObjectsTree at: selectionIndex)
+    ].
+    ^ false
+
+    "Created: / 02-05-2014 / 23:52:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 hasFilterAndClassNamedIsNotYetImported: binaryname
     ^self hasFilter 
         and:[masterApplication isNil or:[masterApplication hasFilterAndClassNamedIsNotYetImported: binaryname]]
--- a/SmallSense__ClassSearchDialog.st	Fri May 02 12:29:52 2014 +0100
+++ b/SmallSense__ClassSearchDialog.st	Sat May 03 00:52:55 2014 +0100
@@ -11,6 +11,61 @@
 	category:'SmallSense-Core-Interface-Search'
 !
 
+!ClassSearchDialog class methodsFor:'interface specs-content'!
+
+optionsPaneSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:SmallSense::ClassSearchDialog andSelector:#optionsPaneSpec
+     SmallSense::ClassSearchDialog new openInterface:#optionsPaneSpec
+    "
+
+    <resource: #canvas>
+
+    ^ 
+    #(FullSpec
+       name: optionsPaneSpec
+       window: 
+      (WindowSpec
+         label: 'Search Options...'
+         name: 'Search Options...'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 634 25)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (VerticalPanelViewSpec
+             name: 'Options'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             horizontalLayout: fit
+             verticalLayout: fit
+             horizontalSpace: 3
+             verticalSpace: 3
+             component: 
+            (SpecCollection
+               collection: (
+                (CheckBoxSpec
+                   label: 'Match fully qualified class names'
+                   name: 'CheckBox1'
+                   model: matchFullyQualifiedClassNameHolder
+                   extent: (Point 634 25)
+                 )
+                )
+              
+             )
+           )
+          )
+        
+       )
+     )
+! !
+
 !ClassSearchDialog methodsFor:'aspects'!
 
 matchFullyQualifiedClassNameEnabledHolder
@@ -107,13 +162,10 @@
 !ClassSearchDialog methodsFor:'queries'!
 
 canSelect: selection
-    | po |
-
-    po := selection isInteger ifTrue:[ matchingObjectsTree at: selection ] ifFalse:[ selection ].
-    ^ po askFor: #isSmallSenseClassPO.
+    ^ selection askFor: #isSmallSenseClassPO.
 
     "Created: / 22-04-2014 / 13:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 28-04-2014 / 23:56:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-05-2014 / 23:52:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClassSearchDialog methodsFor:'searching'!
--- a/smallsense.rc	Fri May 02 12:29:52 2014 +0100
+++ b/smallsense.rc	Sat May 03 00:52:55 2014 +0100
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: jv_smallsense.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,32767,32767
+  FILEVERSION     6,2,6984,6984
   PRODUCTVERSION  6,2,3,0
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "eXept Software AG\0"
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
-      VALUE "FileVersion", "6.2.32767.32767\0"
+      VALUE "FileVersion", "6.2.6984.6984\0"
       VALUE "InternalName", "jv:smallsense\0"
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Fri, 02 May 2014 09:06:24 GMT\0"
+      VALUE "ProductDate", "Fri, 02 May 2014 23:52:30 GMT\0"
     END
 
   END