Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 06 May 2014 08:23:16 +0100
changeset 337 5f39eba6a1e3
parent 336 f7648e626e07
child 338 0a04e7f6e747
Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Make.proto
Make.spec
SmallSense__AbstractDIalog.st
SmallSense__AbstractSearchDialog.st
SmallSense__ClassSearchDialog.st
SmallSense__MethodPO.st
SmallSense__MethodSearchDialog.st
SmallSense__PO.st
SmallSense__PackagePO.st
SmallSense__PackageSearchDialog.st
abbrev.stc
bc.mak
jv_smallsense.st
libInit.cc
smallsense.rc
--- a/Make.proto	Mon May 05 09:23:22 2014 +0100
+++ b/Make.proto	Tue May 06 08:23:16 2014 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
 
 
 # if you need any additional defines for embedded C code,
@@ -137,7 +137,6 @@
 	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/refactoryBrowser/browser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/refactoryBrowser/lint && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -205,6 +204,7 @@
 $(OUTDIR)SmallSense__JavaImportPO.$(O) SmallSense__JavaImportPO.$(H): SmallSense__JavaImportPO.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__Info.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__PackagePO.$(O) SmallSense__PackagePO.$(H): SmallSense__PackagePO.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -217,6 +217,8 @@
 $(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__MethodPO.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__PackageSearchDialog.$(O) SmallSense__PackageSearchDialog.$(H): SmallSense__PackageSearchDialog.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/BlockNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimitiveNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ReturnNode.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libtool/SystemBrowser.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg/Workspace.$(H) $(INCLUDE_TOP)/stx/libwidg2/DoWhatIMeanSupport.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec	Mon May 05 09:23:22 2014 +0100
+++ b/Make.spec	Tue May 06 08:23:16 2014 +0100
@@ -93,6 +93,7 @@
 	SmallSense::JavaImportPO \
 	SmallSense::MethodInfo \
 	SmallSense::MethodPO \
+	SmallSense::PackagePO \
 	SmallSense::SmalltalkCompletionEngine \
 	SmallSense::SmalltalkEditSupport \
 	SmallSense::SmalltalkInferencer \
@@ -105,6 +106,8 @@
 	SmallSense::GroovyCompletionEngineSimple \
 	SmallSense::GroovyEditSupport \
 	SmallSense::MethodKeywordRestPO \
+	SmallSense::MethodSearchDialog \
+	SmallSense::PackageSearchDialog \
 
 
 
@@ -153,6 +156,7 @@
     $(OUTDIR_SLASH)SmallSense__JavaImportPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__MethodInfo.$(O) \
     $(OUTDIR_SLASH)SmallSense__MethodPO.$(O) \
+    $(OUTDIR_SLASH)SmallSense__PackagePO.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkCompletionEngine.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkEditSupport.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkInferencer.$(O) \
@@ -165,6 +169,8 @@
     $(OUTDIR_SLASH)SmallSense__GroovyCompletionEngineSimple.$(O) \
     $(OUTDIR_SLASH)SmallSense__GroovyEditSupport.$(O) \
     $(OUTDIR_SLASH)SmallSense__MethodKeywordRestPO.$(O) \
+    $(OUTDIR_SLASH)SmallSense__MethodSearchDialog.$(O) \
+    $(OUTDIR_SLASH)SmallSense__PackageSearchDialog.$(O) \
     $(OUTDIR_SLASH)extensions.$(O) \
 
 
--- a/SmallSense__AbstractDIalog.st	Mon May 05 09:23:22 2014 +0100
+++ b/SmallSense__AbstractDIalog.st	Tue May 06 08:23:16 2014 +0100
@@ -3,8 +3,8 @@
 "{ NameSpace: SmallSense }"
 
 SimpleDialog subclass:#AbstractDIalog
-	instanceVariableNames:'buttons buttonsPanelView acceptEnabledHolder
-		optionsVisibleLabelHolder optionsVisibleHolder'
+	instanceVariableNames:'titleHolder buttons buttonsPanelView acceptEnabledHolder
+		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
@@ -83,9 +78,9 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:SmallSense::AbstractSearchDialog andSelector:#windowSpec
-     SmallSense::AbstractSearchDialog new openInterface:#windowSpec
-     SmallSense::AbstractSearchDialog open
+     UIPainter new openOnClass:SmallSense::AbstractDIalog andSelector:#windowSpec
+     SmallSense::AbstractDIalog new openInterface:#windowSpec
+     SmallSense::AbstractDIalog open
     "
 
     <resource: #canvas>
@@ -97,6 +92,7 @@
       (WindowSpec
          label: 'Search...'
          name: 'Search...'
+         labelChannel: titleHolder
          min: (Point 10 10)
          bounds: (Rectangle 0 0 708 404)
          menu: mainMenuSpec
@@ -150,14 +146,9 @@
        component: 
       (SpecCollection
          collection: (
-          (UISubSpecification
-             name: 'ButtonOptionsShowOrHide'
-             layout: (LayoutFrame 0 0 0 0 100 0 0 1)
-             minorKey: optionsShowHideLeftAlignedPaneSpec
-           )
           (HorizontalPanelViewSpec
              name: 'Buttons'
-             layout: (LayoutFrame 100 0 0 0 0 1 0 1)
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
              horizontalLayout: right
              verticalLayout: center
              horizontalSpace: 3
@@ -291,6 +282,50 @@
         
        )
      )
+!
+
+optionsShowHideRightAlignedPaneSpec
+    "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::AbstractDIalog andSelector:#optionsShowHideLeftAlignedPaneSpec
+     SmallSense::AbstractDIalog new openInterface:#optionsShowHideLeftAlignedPaneSpec
+    "
+
+    <resource: #canvas>
+
+    ^ 
+    #(FullSpec
+       name: optionsShowHideLeftAlignedPaneSpec
+       window: 
+      (WindowSpec
+         label: 'Show / Hide options'
+         name: 'Show / Hide options'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 452 20)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (LinkButtonSpec
+             label: 'Options'
+             name: 'ShowHideOptions'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             translateLabel: true
+             labelChannel: optionsVisibleLabelHolder
+             adjust: right
+             model: doOptionsShowOrHide
+           )
+          )
+        
+       )
+     )
+
+    "Created: / 03-05-2014 / 00:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractDIalog class methodsFor:'testing'!
@@ -299,12 +334,72 @@
     ^ self == SmallSense::AbstractDIalog
 ! !
 
+!AbstractDIalog methodsFor:'accessing-defaults'!
+
+defaultTitle
+    ^ self subclassResponsibility
+
+    "Created: / 05-05-2014 / 23:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !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'!
@@ -421,6 +516,37 @@
     ^ optionsVisibleLabelHolder.
 
     "Modified: / 02-05-2014 / 00:25:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+titleHolder
+    "return/create the 'titleHolder' value holder (automatically generated)"
+
+    titleHolder isNil ifTrue:[
+        titleHolder := self defaultTitle asValue.
+        titleHolder addDependent:self.
+    ].
+    ^ titleHolder
+
+    "Modified: / 05-05-2014 / 23:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+titleHolder:something
+    "set the 'titleHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    titleHolder notNil ifTrue:[
+        oldValue := titleHolder value.
+        titleHolder removeDependent:self.
+    ].
+    titleHolder := something.
+    titleHolder notNil ifTrue:[
+        titleHolder addDependent:self.
+    ].
+    newValue := titleHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:titleHolder.
+    ].
 ! !
 
 !AbstractDIalog methodsFor:'change & update'!
@@ -442,9 +568,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 +583,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 +612,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	Mon May 05 09:23:22 2014 +0100
+++ b/SmallSense__AbstractSearchDialog.st	Tue May 06 08:23:16 2014 +0100
@@ -84,11 +84,26 @@
              component: 
             (SpecCollection
                collection: (
-                (LabelSpec
-                   label: 'Enter name prefix or pattern (*):'
-                   name: 'PatternLabel'
-                   translateLabel: true
-                   adjust: left
+                (ViewSpec
+                   name: 'Box1'
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (LabelSpec
+                         label: 'Enter name prefix or pattern (*):'
+                         name: 'PatternLabel'
+                         layout: (LayoutFrame 0 0 0 0 -100 1 0 1)
+                         translateLabel: true
+                         adjust: left
+                       )
+                      (UISubSpecification
+                         name: 'SubSpecification1'
+                         layout: (LayoutFrame -100 1 0 0 0 1 0 1)
+                         minorKey: optionsShowHideRightAlignedPaneSpec
+                       )
+                      )
+                    
+                   )
                    extent: (Point 708 30)
                  )
                 (InputFieldSpec
@@ -121,13 +136,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:
                  )
                 )
@@ -138,6 +153,8 @@
         
        )
      )
+
+    "Modified: / 03-05-2014 / 00:56:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractSearchDialog class methodsFor:'queries'!
@@ -205,6 +222,26 @@
 
 recentlySearchedPatterns:aCollection
     recentlySearchedPatterns := aCollection.
+!
+
+title
+    ^ self titleHolder value.
+
+    "Created: / 05-05-2014 / 23:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+title: aString
+    self titleHolder value: aString
+
+    "Created: / 05-05-2014 / 23:36:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSearchDialog methodsFor:'accessing-defaults'!
+
+defaultTitle
+    ^ (resources string: 'Search...')
+
+    "Created: / 05-05-2014 / 23:39:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractSearchDialog methodsFor:'aspects'!
@@ -435,26 +472,22 @@
 !
 
 updateMatchingObjects
-    | environment |
+    | environment pattern |
 
     matchingObjects := nil.
     environment := self environment.
     self matchPatternHolder value notEmptyOrNil ifTrue:[ 
-        | pattern |
         pattern := StringPattern fromString: self matchPatternHolder value.
+    ].
 "/        [
 "/            self updateMatchingLabelToSearching.
-            matchingObjects := self matchingObjectsForPattern: pattern inEnvironment: environment.
+    matchingObjects := self matchingObjectsForPattern: pattern inEnvironment: environment.
 "/        ] ensure:[
 "/            self updateMatchingLabelToNormal.
 "/        ]
-    ] ifFalse:[
-            matchingObjects := self recentlySearchedObjects asArray reversed.
-    ].
     self updateMatchingObjects: matchingObjects.
 
-    "Created: / 27-04-2014 / 23:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 30-04-2014 / 11:45:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 06-05-2014 / 00:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 updateMatchingObjects: objects
@@ -530,19 +563,16 @@
 !AbstractSearchDialog methodsFor:'hooks'!
 
 commonPostOpen
-"/    self updateMatching.
+
 "/    recentlySearchedPatterns notEmptyOrNil ifTrue:[
 "/        matchPatternView contents: self recentlySearchedPatterns last.
 "/        matchPatternView selectAll.
 "/    ].
-    self recentlySearchedObjects notEmptyOrNil ifTrue:[
-        self updateMatchingObjects: self recentlySearchedObjects asArray reverse.
-        self updateMatchingLabelToRecentSearches.
-    ].
+
+    self updateMatchingObjects.
     self updateAcceptEnabled.
 
-    "Created: / 08-03-2013 / 13:15:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 30-04-2014 / 11:48:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 06-05-2014 / 00:13:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 postBuildMatchPatternView:aView
@@ -595,6 +625,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]]
@@ -639,7 +678,7 @@
     completionPOs := self matchingObjectsTree root recursiveSelect:[:item | self canSelect: item ].
     completionPOLabels := completionPOs collect:[ :each | each label ].
     completion := completionPOLabels longestCommonPrefix.
-    completion isEmpty ifTrue:[ ^ nil ].
+    completion isEmptyOrNil ifTrue:[ ^ nil ].
     completion = contents ifTrue:[ ^ nil ].
     matchingPOs := OrderedCollection new.
     completionPOs with: completionPOLabels do:[:po :poLabel |
@@ -650,7 +689,7 @@
     ^ Array with: completion with: matchingPOs.
 
     "Created: / 02-05-2014 / 10:58:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-05-2014 / 12:07:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-05-2014 / 00:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 matchingObjectPOsFor: objects
--- a/SmallSense__ClassSearchDialog.st	Mon May 05 09:23:22 2014 +0100
+++ b/SmallSense__ClassSearchDialog.st	Tue May 06 08:23:16 2014 +0100
@@ -11,6 +11,69 @@
 	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:'accessing-defaults'!
+
+defaultTitle
+    ^ (resources string: 'Search Class...')
+
+    "Created: / 05-05-2014 / 23:39:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ClassSearchDialog methodsFor:'aspects'!
 
 matchFullyQualifiedClassNameEnabledHolder
@@ -102,18 +165,56 @@
     ^ super update:something with:aParameter from:changedObject
 
     "Created: / 27-04-2014 / 23:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingObjects
+    | environment |
+
+    matchingObjects := nil.
+    environment := self environment.
+    self matchPatternHolder value notEmptyOrNil ifTrue:[ 
+        | pattern |
+        pattern := StringPattern fromString: self matchPatternHolder value.
+"/        [
+"/            self updateMatchingLabelToSearching.
+            matchingObjects := self matchingObjectsForPattern: pattern inEnvironment: environment.
+"/        ] ensure:[
+"/            self updateMatchingLabelToNormal.
+"/        ]
+    ] ifFalse:[
+            matchingObjects := self recentlySearchedObjects asArray reversed.
+    ].
+    self updateMatchingObjects: matchingObjects.
+
+    "Created: / 27-04-2014 / 23:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-04-2014 / 11:45:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ClassSearchDialog methodsFor:'hooks'!
+
+commonPostOpen
+"/    self updateMatching.
+"/    recentlySearchedPatterns notEmptyOrNil ifTrue:[
+"/        matchPatternView contents: self recentlySearchedPatterns last.
+"/        matchPatternView selectAll.
+"/    ].
+    self recentlySearchedObjects notEmptyOrNil ifTrue:[
+        self updateMatchingObjects: self recentlySearchedObjects asArray reverse.
+        self updateMatchingLabelToRecentSearches.
+    ].
+    self updateAcceptEnabled.
+
+    "Created: / 08-03-2013 / 13:15:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-04-2014 / 11:48:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !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'!
@@ -147,14 +248,14 @@
         matchFullyQualifiedClassName ifFalse:[
             environment 
                 allClassesDo:[:cls | 
-                    (pattern match:cls nameWithoutPrefix) ifTrue:[
+                    ((filter isNil or:[filter value: cls]) and:[(pattern match:cls nameWithoutPrefix)]) ifTrue:[
                         matching add:cls.
                     ].
                 ].
         ] ifTrue:[
             environment 
                 allClassesDo:[:cls | 
-                    (pattern match:cls displayString) ifTrue:[
+                    ((filter isNil or:[filter value: cls]) and:[(pattern match:cls displayString)]) ifTrue:[
                         matching add:cls
                     ]
                 ].
@@ -164,6 +265,6 @@
     ^ matching
 
     "Created: / 28-04-2014 / 23:20:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 30-04-2014 / 09:48:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 05-05-2014 / 23:47:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
--- a/SmallSense__MethodPO.st	Mon May 05 09:23:22 2014 +0100
+++ b/SmallSense__MethodPO.st	Tue May 06 08:23:16 2014 +0100
@@ -67,6 +67,12 @@
     "Modified: / 07-10-2013 / 12:30:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+klass
+    ^ class
+
+    "Created: / 06-05-2014 / 00:31:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 label
 
     label isNil ifTrue:[
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__MethodSearchDialog.st	Tue May 06 08:23:16 2014 +0100
@@ -0,0 +1,160 @@
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+AbstractSearchDialog subclass:#MethodSearchDialog
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Interface-Search'
+!
+
+!MethodSearchDialog 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)
+                 )
+                )
+              
+             )
+           )
+          )
+        
+       )
+     )
+! !
+
+!MethodSearchDialog methodsFor:'accessing-defaults'!
+
+defaultTitle
+    ^ (resources string: 'Search Method...')
+
+    "Created: / 05-05-2014 / 23:39:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MethodSearchDialog methodsFor:'change & update'!
+
+updateMatchingObjects
+    | environment |
+
+    matchingObjects := nil.
+    environment := self environment.
+    self matchPatternHolder value notEmptyOrNil ifTrue:[ 
+        | pattern |
+        pattern := StringPattern fromString: self matchPatternHolder value.
+"/        [
+"/            self updateMatchingLabelToSearching.
+            matchingObjects := self matchingObjectsForPattern: pattern inEnvironment: environment.
+"/        ] ensure:[
+"/            self updateMatchingLabelToNormal.
+"/        ]
+    ] ifFalse:[
+            matchingObjects := self recentlySearchedObjects asArray reversed.
+    ].
+    self updateMatchingObjects: matchingObjects.
+
+    "Created: / 27-04-2014 / 23:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-04-2014 / 11:45:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MethodSearchDialog methodsFor:'hooks'!
+
+commonPostOpen
+"/    self updateMatching.
+"/    recentlySearchedPatterns notEmptyOrNil ifTrue:[
+"/        matchPatternView contents: self recentlySearchedPatterns last.
+"/        matchPatternView selectAll.
+"/    ].
+    self recentlySearchedObjects notEmptyOrNil ifTrue:[
+        self updateMatchingObjects: self recentlySearchedObjects asArray reverse.
+        self updateMatchingLabelToRecentSearches.
+    ].
+    self updateAcceptEnabled.
+
+    "Created: / 08-03-2013 / 13:15:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-04-2014 / 11:48:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MethodSearchDialog methodsFor:'queries'!
+
+canSelect: selection
+    ^ selection askFor: #isSmallSenseMethodPO.
+
+    "Created: / 22-04-2014 / 13:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-05-2014 / 00:27:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MethodSearchDialog methodsFor:'searching'!
+
+matchingObjectPOsFor: objects
+    ^ (objects collect:[:each | MethodPO name:each selector class: each mclass ])
+        sort:[ :a :b | a name == b name ifTrue:[ a klass name < b klass name] ifFalse:[ a name < b name ] ];
+        yourself
+
+    "Created: / 30-04-2014 / 09:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-05-2014 / 00:31:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern inEnvironment:environment 
+    | matching |
+
+    matching := OrderedCollection new.
+    self matchPatternHolder value notEmptyOrNil ifTrue:[
+        environment 
+            allMethodsDo:[:mthd |
+                | name |
+
+                name := mthd selector.
+                mthd isJavaMethod ifTrue:[ name := name upTo: $( ].
+                ((filter isNil or:[filter value: mthd]) and:[(pattern match:name)]) ifTrue:[
+                    matching add:mthd.
+                ].
+            ].
+    ].
+
+    ^ matching
+
+    "Created: / 28-04-2014 / 23:20:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-05-2014 / 00:34:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__PO.st	Mon May 05 09:23:22 2014 +0100
+++ b/SmallSense__PO.st	Tue May 06 08:23:16 2014 +0100
@@ -242,6 +242,12 @@
     ^ false
 !
 
+isSmallSensePackagePO
+    ^ false
+
+    "Created: / 05-05-2014 / 23:50:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 isSmallSenseSnippetPO
     ^ false
 !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__PackagePO.st	Tue May 06 08:23:16 2014 +0100
@@ -0,0 +1,42 @@
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+PO subclass:#PackagePO
+	instanceVariableNames:'projectDefinition isJava'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Interface-PO'
+!
+
+!PackagePO methodsFor:'accessing'!
+
+icon
+    ^ ToolbarIconLibrary smallYellowPackageIcon
+
+    "Created: / 06-05-2014 / 00:09:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+name
+    ^ subject
+
+    "Created: / 06-05-2014 / 00:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectDefinition
+    projectDefinition isNil ifTrue:[ 
+        projectDefinition := ProjectDefinition definitionClassForPackage: subject.  
+    ].
+    ^ projectDefinition
+
+    "Created: / 06-05-2014 / 00:05:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PackagePO methodsFor:'testing'!
+
+isSmallSensePackagePO
+    ^ true
+
+    "Created: / 05-05-2014 / 23:50:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__PackageSearchDialog.st	Tue May 06 08:23:16 2014 +0100
@@ -0,0 +1,54 @@
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+AbstractSearchDialog subclass:#PackageSearchDialog
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Interface-Search'
+!
+
+!PackageSearchDialog methodsFor:'queries'!
+
+canSelect:selection
+    ^ selection askFor: #isSmallSensePackagePO
+
+    "Created: / 05-05-2014 / 23:50:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PackageSearchDialog methodsFor:'searching'!
+
+matchingObjectPOsFor:objects
+
+    objects sort: [ :a :b | a < b ].
+    ^ objects collect:[ :e | PackagePO new subject: e ].
+
+    "Created: / 05-05-2014 / 23:54:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern inEnvironment:environment
+    | packages |
+
+    packages := Set new.
+    environment allClassesDo: [ :cls |
+        | pkg |
+
+        pkg := cls package.
+        ((pkg notNil and:[ pkg ~~ PackageId noProjectID ])
+            and:[(filter isNil or:[ filter value: pkg ])
+            and:[pattern isNil or:[pattern match: pkg]]]) ifTrue:[ packages add: pkg ].
+    ].
+    environment allMethodsDo:[ :mth |
+        | pkg |
+
+        pkg := mth package.
+        ((pkg notNil and:[ pkg ~~ PackageId noProjectID ])
+            and:[(filter isNil or:[ filter value: pkg ])
+            and:[pattern isNil or:[pattern match: pkg]]]) ifTrue:[ packages add: pkg ].
+    ].
+    ^ packages asArray.
+
+    "Created: / 05-05-2014 / 23:53:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/abbrev.stc	Mon May 05 09:23:22 2014 +0100
+++ b/abbrev.stc	Tue May 06 08:23:16 2014 +0100
@@ -2,7 +2,6 @@
 # this file is needed for stc to be able to compile modules independently.
 # it provides information about a classes filename, category and especially namespace.
 SmallSense::AbstractDIalog SmallSense__AbstractDIalog jv:smallsense 'SmallSense-Core-Interface-Search' 1
-SmallSense::BaseTestClass SmallSense__BaseTestClass jv:smallsense 'SmallSense-Tests' 1
 SmallSense::CodeHighlightingService SmallSense__CodeHighlightingService jv:smallsense 'SmallSense-Core-Services' 0
 SmallSense::CodeNavigationService SmallSense__CodeNavigationService jv:smallsense 'SmallSense-Core-Services' 0
 SmallSense::CompletionContext SmallSense__CompletionContext jv:smallsense 'SmallSense-Core' 0
@@ -31,7 +30,6 @@
 SmallSense::SmalltalkQuickFixer SmallSense__SmalltalkQuickFixer jv:smallsense 'SmallSense-Smalltalk-Lint' 0
 SmallSense::SmalltalkSyntaxHighlighter SmallSense__SmalltalkSyntaxHighlighter jv:smallsense 'SmallSense-Smalltalk' 3
 SmallSense::SmalltalkUnacceptedMethodEnvironment SmallSense__SmalltalkUnacceptedMethodEnvironment jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::TestCase SmallSense__TestCase jv:smallsense 'SmallSense-Tests' 1
 SmallSense::Type SmallSense__Type jv:smallsense 'SmallSense-Smalltalk-Types' 0
 SmallSense::TypeHolder SmallSense__TypeHolder jv:smallsense 'SmallSense-Smalltalk-Types' 0
 jv_smallsense jv_smallsense jv:smallsense '* Projects & Packages *' 3
@@ -40,19 +38,17 @@
 SmallSense::ClassPO SmallSense__ClassPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::ClassType SmallSense__ClassType jv:smallsense 'SmallSense-Smalltalk-Types' 0
 SmallSense::ConstantPO SmallSense__ConstantPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::FinderTests SmallSense__FinderTests jv:smallsense 'SmallSense-Tests' 1
 SmallSense::GenericEditSupport SmallSense__GenericEditSupport jv:smallsense 'SmallSense-Core-Services' 0
 SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple jv:smallsense 'SmallSense-Java' 0
 SmallSense::JavaEditSupport SmallSense__JavaEditSupport jv:smallsense 'SmallSense-Java' 0
 SmallSense::JavaImportPO SmallSense__JavaImportPO jv:smallsense 'SmallSense-Java-Interface-PO' 0
 SmallSense::MethodInfo SmallSense__MethodInfo jv:smallsense 'SmallSense-Smalltalk-Types-Info' 0
 SmallSense::MethodPO SmallSense__MethodPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::RecognizerTests SmallSense__RecognizerTests jv:smallsense 'SmallSense-Tests' 1
+SmallSense::PackagePO SmallSense__PackagePO jv:smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::SmalltalkCompletionEngine SmallSense__SmalltalkCompletionEngine jv:smallsense 'SmallSense-Smalltalk' 0
 SmallSense::SmalltalkEditSupport SmallSense__SmalltalkEditSupport jv:smallsense 'SmallSense-Smalltalk' 0
 SmallSense::SmalltalkInferencer SmallSense__SmalltalkInferencer jv:smallsense 'SmallSense-Smalltalk-Types-Inference' 0
 SmallSense::SmalltalkParseNodeFinder SmallSense__SmalltalkParseNodeFinder jv:smallsense 'SmallSense-Smalltalk' 0
-SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests jv:smallsense 'SmallSense-Tests' 1
 SmallSense::SnippetPO SmallSense__SnippetPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::UnionType SmallSense__UnionType jv:smallsense 'SmallSense-Smalltalk-Types' 0
 SmallSense::UnknownType SmallSense__UnknownType jv:smallsense 'SmallSense-Smalltalk-Types' 1
@@ -61,3 +57,10 @@
 SmallSense::GroovyCompletionEngineSimple SmallSense__GroovyCompletionEngineSimple jv:smallsense 'SmallSense-Groovy' 0
 SmallSense::GroovyEditSupport SmallSense__GroovyEditSupport jv:smallsense 'SmallSense-Groovy' 0
 SmallSense::MethodKeywordRestPO SmallSense__MethodKeywordRestPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
+SmallSense::MethodSearchDialog SmallSense__MethodSearchDialog jv:smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::PackageSearchDialog SmallSense__PackageSearchDialog jv:smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::BaseTestClass SmallSense__BaseTestClass jv:smallsense 'SmallSense-Tests' 1
+SmallSense::FinderTests SmallSense__FinderTests jv:smallsense 'SmallSense-Tests' 1
+SmallSense::RecognizerTests SmallSense__RecognizerTests jv:smallsense 'SmallSense-Tests' 1
+SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests jv:smallsense 'SmallSense-Tests' 1
+SmallSense::TestCase SmallSense__TestCase jv:smallsense 'SmallSense-Tests' 1
--- a/bc.mak	Mon May 05 09:23:22 2014 +0100
+++ b/bc.mak	Tue May 06 08:23:16 2014 +0100
@@ -34,7 +34,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -60,7 +60,6 @@
 	pushd ..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\goodies\refactoryBrowser\browser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\goodies\refactoryBrowser\lint & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -129,6 +128,7 @@
 $(OUTDIR)SmallSense__JavaImportPO.$(O) SmallSense__JavaImportPO.$(H): SmallSense__JavaImportPO.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__PackagePO.$(O) SmallSense__PackagePO.$(H): SmallSense__PackagePO.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -141,6 +141,8 @@
 $(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__PackageSearchDialog.$(O) SmallSense__PackageSearchDialog.$(H): SmallSense__PackageSearchDialog.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg\Workspace.$(H) $(INCLUDE_TOP)\stx\libwidg2\DoWhatIMeanSupport.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/jv_smallsense.st	Mon May 05 09:23:22 2014 +0100
+++ b/jv_smallsense.st	Tue May 06 08:23:16 2014 +0100
@@ -46,8 +46,7 @@
     ^ #(
         #'stx:goodies/refactoryBrowser/helpers'    "BrowserEnvironment - superclass of SmallSense::SmalltalkUnacceptedMethodEnvironment "
         #'stx:goodies/refactoryBrowser/lint'    "RBLintRule - extended "
-        #'stx:goodies/sunit'    "TestAsserter - superclass of SmallSense::BaseTestClass "
-        #'stx:libbasic'    "Collection - extended "
+        #'stx:libbasic'    "Autoload - superclass of SmallSense::BaseTestClass "
         #'stx:libcomp'    "AbstractSyntaxHighlighter - superclass of SmallSense::SmalltalkParser "
         #'stx:libhtml'    "HTMLDocumentFrame - extended "
         #'stx:libtool'    "AbstractSettingsApplication - superclass of SmallSense::SettingsAppl "
@@ -162,7 +161,6 @@
     ^ #(
         "<className> or (<className> attributes...) in load order"
         #'SmallSense::AbstractDIalog'
-        (#'SmallSense::BaseTestClass' autoload)
         #'SmallSense::CodeHighlightingService'
         #'SmallSense::CodeNavigationService'
         #'SmallSense::CompletionContext'
@@ -191,7 +189,6 @@
         #'SmallSense::SmalltalkQuickFixer'
         #'SmallSense::SmalltalkSyntaxHighlighter'
         #'SmallSense::SmalltalkUnacceptedMethodEnvironment'
-        (#'SmallSense::TestCase' autoload)
         #'SmallSense::Type'
         #'SmallSense::TypeHolder'
         #'jv_smallsense'
@@ -200,19 +197,17 @@
         #'SmallSense::ClassPO'
         #'SmallSense::ClassType'
         #'SmallSense::ConstantPO'
-        (#'SmallSense::FinderTests' autoload)
         #'SmallSense::GenericEditSupport'
         #'SmallSense::JavaCompletionEngineSimple'
         #'SmallSense::JavaEditSupport'
         #'SmallSense::JavaImportPO'
         #'SmallSense::MethodInfo'
         #'SmallSense::MethodPO'
-        (#'SmallSense::RecognizerTests' autoload)
+        #'SmallSense::PackagePO'
         #'SmallSense::SmalltalkCompletionEngine'
         #'SmallSense::SmalltalkEditSupport'
         #'SmallSense::SmalltalkInferencer'
         #'SmallSense::SmalltalkParseNodeFinder'
-        (#'SmallSense::SmalltalkParserTests' autoload)
         #'SmallSense::SnippetPO'
         #'SmallSense::UnionType'
         #'SmallSense::UnknownType'
@@ -221,6 +216,13 @@
         #'SmallSense::GroovyCompletionEngineSimple'
         #'SmallSense::GroovyEditSupport'
         #'SmallSense::MethodKeywordRestPO'
+        #'SmallSense::MethodSearchDialog'
+        #'SmallSense::PackageSearchDialog'
+        (#'SmallSense::BaseTestClass' autoload)
+        (#'SmallSense::FinderTests' autoload)
+        (#'SmallSense::RecognizerTests' autoload)
+        (#'SmallSense::SmalltalkParserTests' autoload)
+        (#'SmallSense::TestCase' autoload)
     )
 !
 
--- a/libInit.cc	Mon May 05 09:23:22 2014 +0100
+++ b/libInit.cc	Tue May 06 08:23:16 2014 +0100
@@ -70,6 +70,7 @@
 _SmallSense__JavaImportPO_Init(pass,__pRT__,snd);
 _SmallSense__MethodInfo_Init(pass,__pRT__,snd);
 _SmallSense__MethodPO_Init(pass,__pRT__,snd);
+_SmallSense__PackagePO_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkCompletionEngine_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkEditSupport_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkInferencer_Init(pass,__pRT__,snd);
@@ -82,6 +83,8 @@
 _SmallSense__GroovyCompletionEngineSimple_Init(pass,__pRT__,snd);
 _SmallSense__GroovyEditSupport_Init(pass,__pRT__,snd);
 _SmallSense__MethodKeywordRestPO_Init(pass,__pRT__,snd);
+_SmallSense__MethodSearchDialog_Init(pass,__pRT__,snd);
+_SmallSense__PackageSearchDialog_Init(pass,__pRT__,snd);
 
 _jv_137smallsense_extensions_Init(pass,__pRT__,snd);
 __END_PACKAGE__();
--- a/smallsense.rc	Mon May 05 09:23:22 2014 +0100
+++ b/smallsense.rc	Tue May 06 08:23:16 2014 +0100
@@ -25,7 +25,7 @@
       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", "Tue, 06 May 2014 07:21:54 GMT\0"
     END
 
   END