AbstractSearchDialog splitted into AbstractListDialog and AbstractSearchDialog.
* AbstractListDialog has no history and may allow to create a new object (package, category...)
* AbstractSearchDIalog maintains a list of recent searches and does not allow creation of
a new object.
--- a/Make.proto Sat Dec 06 22:27:37 2014 +0000
+++ b/Make.proto Mon Dec 08 02:42:33 2014 +0000
@@ -194,7 +194,7 @@
$(OUTDIR)SmallSense__TypeHolder.$(O) SmallSense__TypeHolder.$(H): SmallSense__TypeHolder.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)stx_goodies_smallsense.$(O) stx_goodies_smallsense.$(H): stx_goodies_smallsense.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
$(OUTDIR)SmallSense__AbstractJavaCompletionEngine.$(O) SmallSense__AbstractJavaCompletionEngine.$(H): SmallSense__AbstractJavaCompletionEngine.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__AbstractSearchDialog.$(O) SmallSense__AbstractSearchDialog.$(H): SmallSense__AbstractSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(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__AbstractListDialog.$(O) SmallSense__AbstractListDialog.$(H): SmallSense__AbstractListDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(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__ClassInfo.$(O) SmallSense__ClassInfo.$(H): SmallSense__ClassInfo.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Info.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__ClassPO.$(O) SmallSense__ClassPO.$(H): SmallSense__ClassPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__ClassType.$(O) SmallSense__ClassType.$(H): SmallSense__ClassType.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Type.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -216,16 +216,17 @@
$(OUTDIR)SmallSense__VariableBindingPO.$(O) SmallSense__VariableBindingPO.$(H): SmallSense__VariableBindingPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__AbstractJavaCompletionEngineSimple.$(O) SmallSense__AbstractJavaCompletionEngineSimple.$(H): SmallSense__AbstractJavaCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/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__AbstractSearchDialog.$(O) SmallSense__AbstractSearchDialog.$(H): SmallSense__AbstractSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(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__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__JavaCompletionEngine.$(O) SmallSense__JavaCompletionEngine.$(H): SmallSense__JavaCompletionEngine.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__JavaConstructorPO.$(O) SmallSense__JavaConstructorPO.$(H): SmallSense__JavaConstructorPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__MethodPO.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__MethodPO.$(H) $(INCLUDE_TOP)/stx/goodies/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)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/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)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/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)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(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__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/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__JavaCompletionEngineSimple.$(O) SmallSense__JavaCompletionEngineSimple.$(H): SmallSense__JavaCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/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__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBBasicLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBBlockLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBBlockNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBMethodNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBStatementNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBValueNode.$(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/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimitiveNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ReturnNode.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(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__LintService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(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/EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBBasicLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBBlockLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBBlockNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBMethodNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBStatementNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBValueNode.$(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/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimitiveNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ReturnNode.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(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__LintService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/ModalBox.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/StandardSystemView.$(H) $(INCLUDE_TOP)/stx/libview/TopView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libwidg/DialogBox.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec Sat Dec 06 22:27:37 2014 +0000
+++ b/Make.spec Mon Dec 08 02:42:33 2014 +0000
@@ -87,7 +87,7 @@
SmallSense::TypeHolder \
stx_goodies_smallsense \
SmallSense::AbstractJavaCompletionEngine \
- SmallSense::AbstractSearchDialog \
+ SmallSense::AbstractListDialog \
SmallSense::ClassInfo \
SmallSense::ClassPO \
SmallSense::ClassType \
@@ -109,14 +109,15 @@
SmallSense::VariableBindingPO \
SmallSense::VariablePO \
SmallSense::AbstractJavaCompletionEngineSimple \
- SmallSense::ClassSearchDialog \
+ SmallSense::AbstractSearchDialog \
SmallSense::GroovyEditSupport \
SmallSense::JavaCompletionEngine \
SmallSense::JavaConstructorPO \
SmallSense::MethodKeywordRestPO \
+ SmallSense::PackageSearchDialog \
+ SmallSense::ClassSearchDialog \
+ SmallSense::JavaCompletionEngineSimple \
SmallSense::MethodSearchDialog \
- SmallSense::PackageSearchDialog \
- SmallSense::JavaCompletionEngineSimple \
SmallSense::GroovyCompletionEngineSimple \
@@ -159,7 +160,7 @@
$(OUTDIR_SLASH)SmallSense__TypeHolder.$(O) \
$(OUTDIR_SLASH)stx_goodies_smallsense.$(O) \
$(OUTDIR_SLASH)SmallSense__AbstractJavaCompletionEngine.$(O) \
- $(OUTDIR_SLASH)SmallSense__AbstractSearchDialog.$(O) \
+ $(OUTDIR_SLASH)SmallSense__AbstractListDialog.$(O) \
$(OUTDIR_SLASH)SmallSense__ClassInfo.$(O) \
$(OUTDIR_SLASH)SmallSense__ClassPO.$(O) \
$(OUTDIR_SLASH)SmallSense__ClassType.$(O) \
@@ -181,14 +182,15 @@
$(OUTDIR_SLASH)SmallSense__VariableBindingPO.$(O) \
$(OUTDIR_SLASH)SmallSense__VariablePO.$(O) \
$(OUTDIR_SLASH)SmallSense__AbstractJavaCompletionEngineSimple.$(O) \
- $(OUTDIR_SLASH)SmallSense__ClassSearchDialog.$(O) \
+ $(OUTDIR_SLASH)SmallSense__AbstractSearchDialog.$(O) \
$(OUTDIR_SLASH)SmallSense__GroovyEditSupport.$(O) \
$(OUTDIR_SLASH)SmallSense__JavaCompletionEngine.$(O) \
$(OUTDIR_SLASH)SmallSense__JavaConstructorPO.$(O) \
$(OUTDIR_SLASH)SmallSense__MethodKeywordRestPO.$(O) \
+ $(OUTDIR_SLASH)SmallSense__PackageSearchDialog.$(O) \
+ $(OUTDIR_SLASH)SmallSense__ClassSearchDialog.$(O) \
+ $(OUTDIR_SLASH)SmallSense__JavaCompletionEngineSimple.$(O) \
$(OUTDIR_SLASH)SmallSense__MethodSearchDialog.$(O) \
- $(OUTDIR_SLASH)SmallSense__PackageSearchDialog.$(O) \
- $(OUTDIR_SLASH)SmallSense__JavaCompletionEngineSimple.$(O) \
$(OUTDIR_SLASH)SmallSense__GroovyCompletionEngineSimple.$(O) \
$(OUTDIR_SLASH)extensions.$(O) \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__AbstractListDialog.st Mon Dec 08 02:42:33 2014 +0000
@@ -0,0 +1,851 @@
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"
+"{ Package: 'stx:goodies/smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+AbstractDIalog subclass:#AbstractListDialog
+ instanceVariableNames:'matchingObjects matchingObjectsView matchingObjectsMultiselect
+ matchingObjectsTree matchingObjectsSelectionHolder
+ matchingObjectsLabelHolder matchingObjectsUpdateJob
+ matchPatternHolder matchPatternView environmentHolder
+ filterHolder filter'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'SmallSense-Core-Interface-Search'
+!
+
+!AbstractListDialog class methodsFor:'documentation'!
+
+copyright
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"
+! !
+
+!AbstractListDialog class methodsFor:'interface specs-content'!
+
+contentPaneSpec
+ "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::AbstractSearchDialog andSelector:#contentPaneSpec
+ SmallSense::AbstractSearchDialog new openInterface:#contentPaneSpec
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(FullSpec
+ name: contentPaneSpec
+ window:
+ (WindowSpec
+ label: 'Search...'
+ name: 'Search...'
+ min: (Point 10 10)
+ bounds: (Rectangle 0 0 708 404)
+ menu: mainMenuSpec
+ )
+ component:
+ (SpecCollection
+ collection: (
+ (VerticalPanelViewSpec
+ name: 'Content'
+ layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+ horizontalLayout: fit
+ verticalLayout: topSpaceFit
+ component:
+ (SpecCollection
+ collection: (
+ (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)
+ visibilityChannel: hasOptions
+ minorKey: optionsShowHideRightAlignedPaneSpec
+ )
+ )
+
+ )
+ extent: (Point 708 30)
+ )
+ (InputFieldSpec
+ name: 'Pattern'
+ model: matchPatternHolder
+ immediateAccept: true
+ acceptOnReturn: true
+ acceptOnTab: true
+ acceptOnPointerLeave: true
+ entryCompletionBlock: matchPatternCompletionBlock
+ extent: (Point 706 25)
+ postBuildCallback: postBuildMatchPatternView:
+ usePreferredHeight: true
+ )
+ (LabelSpec
+ label: 'Matching items:'
+ name: 'MatchingLabel'
+ translateLabel: true
+ labelChannel: matchingObjectsLabelHolder
+ adjust: left
+ extent: (Point 708 25)
+ )
+ (HierarchicalListViewSpec
+ name: 'HierarchicalListView1'
+ model: matchingObjectsSelectionHolder
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ listModel: matchingObjectsTree
+ multipleSelectOk: true
+ useIndex: false
+ highlightMode: line
+ doubleClickSelector: doAcceptByDoubleClick
+ selectConditionSelector: canSelectIndex:
+ showLines: false
+ showIndicators: false
+ showLeftIndicators: false
+ useDefaultIcons: false
+ showRoot: false
+ extent: (Point 708 302)
+ postBuildCallback: postBuildMatchingObjectsView:
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+! !
+
+!AbstractListDialog class methodsFor:'queries'!
+
+isAbstract
+ "Return if this class is an abstract class.
+ True is returned here for myself only; false for subclasses.
+ Abstract subclasses must redefine again."
+
+ ^ self == SmallSense::AbstractListDialog.
+! !
+
+!AbstractListDialog methodsFor:'accessing'!
+
+environment
+ ^ self environmentHolder value
+
+ "Created: / 22-04-2014 / 10:45:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+environment: aJavaClassEnvironment
+ ^self environmentHolder value: aJavaClassEnvironment
+
+ "Created: / 22-04-2014 / 10:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+filter
+ ^self filterHolder value.
+
+ "Created: / 11-03-2013 / 17:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+filter: aBlock
+ self filterHolder value: aBlock
+
+ "Created: / 10-05-2014 / 00:41:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsSelection
+ ^ self matchingObjectsSelectionHolder value
+
+ "Created: / 10-05-2014 / 00:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsSelection: selection
+ self matchingObjectsSelectionHolder value: selection withoutNotifying:self.
+ self updateAcceptEnabled.
+
+ "Created: / 02-05-2014 / 12:26:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 25-11-2014 / 13:59:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+multiselect
+ ^ matchingObjectsMultiselect
+
+ "Created: / 10-05-2014 / 11:22:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+multiselect: aBoolean
+ matchingObjectsMultiselect := aBoolean.
+ matchingObjectsView notNil ifTrue:[
+ matchingObjectsView multipleSelectOk: aBoolean
+ ].
+
+ "Created: / 10-05-2014 / 11:22:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+pattern
+ ^self matchPatternHolder value.
+
+ "Created: / 11-03-2013 / 14:39:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+pattern: aString
+ ^self matchPatternHolder value: aString
+
+ "Created: / 11-03-2013 / 15:21:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selection: selection
+ | matchingObjectsSelection |
+
+ matchingObjectsMultiselect ifTrue:[
+ matchingObjectsSelection := selection collect:[ :each | matchingObjectsTree root recursiveDetect: [ :po | po subject = each ] ].
+ matchingObjectsSelection := matchingObjectsSelection reject:[:each | each isNil ].
+ ] ifFalse:[
+ matchingObjectsSelection := matchingObjectsTree root recursiveDetect: [ :po | po subject = selection ]
+ ].
+ self matchingObjectsSelection: matchingObjectsSelection.
+
+ "Created: / 10-05-2014 / 00:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-05-2014 / 11:42:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+title
+ ^ self titleHolder value.
+
+ "Created: / 05-05-2014 / 23:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+title: aString
+ | title |
+
+
+ title := aString.
+ (title includes: Character cr) ifTrue:[
+ title := title upTo:Character cr.
+ ].
+ self titleHolder value: title
+
+ "Created: / 05-05-2014 / 23:36:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-05-2014 / 01:22:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'accessing - private'!
+
+matchingObjectForString: aString
+ "Creates a new object from given string. Called only when
+ #canCreateMatchingObjectFromString: returns true"
+
+ (self canCreateMatchingObjectFromString:aString) ifFalse:[
+ self shouldNeverBeSent
+ ] ifTrue:[
+ self subclassResponsibility
+ ]
+
+ "Created: / 23-06-2014 / 15:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'accessing-defaults'!
+
+defaultTitle
+ ^ (resources string: 'Search...')
+
+ "Created: / 05-05-2014 / 23:39:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'aspects'!
+
+environmentHolder
+ "return/create the 'registryHolder' value holder (automatically generated)"
+
+ environmentHolder isNil ifTrue:[
+ environmentHolder := Smalltalk asValue.
+ environmentHolder addDependent:self.
+ ].
+ ^ environmentHolder
+
+ "Created: / 22-04-2014 / 10:45:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-04-2014 / 00:04:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+environmentHolder:something
+ "set the 'registryHolder' value holder (automatically generated)"
+
+ |oldValue newValue|
+
+ environmentHolder notNil ifTrue:[
+ oldValue := environmentHolder value.
+ environmentHolder removeDependent:self.
+ ].
+ environmentHolder := something.
+ environmentHolder notNil ifTrue:[
+ environmentHolder addDependent:self.
+ ].
+ newValue := environmentHolder value.
+ oldValue ~~ newValue ifTrue:[
+ self update:#value with:newValue from:environmentHolder.
+ ].
+
+ "Created: / 22-04-2014 / 10:45:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+filterHolder
+ "return/create the 'filterHolder' value holder (automatically generated)"
+
+ filterHolder isNil ifTrue:[
+ filterHolder := ValueHolder new.
+ filterHolder addDependent:self.
+ ].
+ ^ filterHolder
+!
+
+filterHolder:something
+ "set the 'filterHolder' value holder (automatically generated)"
+
+ |oldValue newValue|
+
+ filterHolder notNil ifTrue:[
+ oldValue := filterHolder value.
+ filterHolder removeDependent:self.
+ ].
+ filterHolder := something.
+ filterHolder notNil ifTrue:[
+ filterHolder addDependent:self.
+ ].
+ newValue := filterHolder value.
+ oldValue ~~ newValue ifTrue:[
+ self update:#value with:newValue from:filterHolder.
+ ].
+!
+
+matchPatternCompletionBlock
+ ^ [ :contents :field |
+ | completion |
+ (contents notEmptyOrNil and:[ matchingObjectsUpdateJob running not]) ifTrue:[
+ field topView withCursor:(Cursor questionMark) do:[
+ completion := self matchPatternCompletionFor: contents
+ ].
+ ].
+ completion notNil ifTrue:[
+ field contents: completion first.
+ completion second size == 1 ifTrue:[
+ matchingObjectsMultiselect ifTrue:[
+ self matchingObjectsSelection: completion second asArray
+ ] ifFalse:[
+ self matchingObjectsSelection: completion second anElement.
+ ].
+ ].
+ ] ifFalse:[
+ matchingObjectsView flash.
+ ]
+ ]
+
+ "Created: / 28-04-2014 / 22:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 14:12:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchPatternHolder
+ <resource: #uiAspect>
+
+ matchPatternHolder isNil ifTrue:[
+ matchPatternHolder := ValueHolder new.
+ ].
+ ^ matchPatternHolder.
+
+ "Modified: / 25-11-2014 / 13:52:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsLabelHolder
+ <resource: #uiAspect>
+
+ "automatically generated by UIPainter ..."
+
+ "*** the code below creates a default model when invoked."
+ "*** (which may not be the one you wanted)"
+ "*** Please change as required and accept it in the browser."
+ "*** (and replace this comment by something more useful ;-)"
+
+ matchingObjectsLabelHolder isNil ifTrue:[
+ matchingObjectsLabelHolder := ValueHolder with:(resources string:'Matching items:').
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/ matchingLabelHolder addDependent:self.
+"/ matchingLabelHolder onChangeSend:#matchingLabelHolderChanged to:self.
+ ].
+ ^ matchingObjectsLabelHolder.
+
+ "Created: / 28-04-2014 / 22:29:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsSelectionHolder
+ "return/create the 'matchingClassesSelectionHolder' value holder (automatically generated)"
+
+ matchingObjectsSelectionHolder isNil ifTrue:[
+ matchingObjectsSelectionHolder := ValueHolder new.
+ matchingObjectsSelectionHolder addDependent:self.
+ ].
+ ^ matchingObjectsSelectionHolder
+
+ "Modified: / 08-03-2013 / 14:05:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsSelectionHolder:something
+ "set the 'matchingClassesSelectionHolder' value holder (automatically generated)"
+
+ matchingObjectsSelectionHolder := something.
+!
+
+matchingObjectsTree
+ <resource: #uiAspect>
+ matchingObjectsTree isNil ifTrue:[
+ matchingObjectsTree := HierarchicalList new.
+ matchingObjectsTree showRoot:false.
+ matchingObjectsTree root:(HierarchicalItem new).
+ matchingObjectsTree application:self.
+ self updateNoResults:matchingObjectsTree root.
+ ].
+ ^ matchingObjectsTree.
+
+ "Created: / 08-03-2013 / 15:40:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 27-04-2014 / 23:41:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'aspects-queries'!
+
+hasFilter
+ ^self filterHolder value notNil
+
+ "Created: / 08-03-2013 / 15:43:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 11-03-2013 / 17:34:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'change & update'!
+
+delayedUpdateMatchingObjects: matchineObjectsArg POs: matchingPOsArg
+ | rootPO matchPatternString |
+
+ matchingObjects := matchineObjectsArg.
+ rootPO := self matchingObjectsTree root.
+ rootPO
+ children:matchingPOsArg;
+ expand.
+ matchPatternString := self matchPatternHolder value.
+ matchPatternString isEmptyOrNil ifTrue:[
+ ^ self.
+ ].
+ matchingPOsArg size == 1 ifTrue:[
+ matchingObjectsMultiselect ifTrue:[
+ self matchingObjectsSelection: matchingPOsArg
+ ] ifFalse:[
+ self matchingObjectsSelection: matchingPOsArg anElement
+ ]
+ ].
+
+ "Created: / 08-12-2014 / 02:31:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+ changedObject == matchPatternHolder ifTrue:[
+ matchingObjectsUpdateJob restart.
+ ^ self.
+ ].
+ changedObject == matchingObjectsSelectionHolder ifTrue:[
+ self updateMatchPatternHolderFromSelection.
+ self updateAcceptEnabled.
+ ^ self.
+ ].
+ changedObject == accept ifTrue:[
+ accept value ifTrue:[
+ self updateAcceptedValue.
+ ].
+ ^ self.
+ ].
+ changedObject == filterHolder ifTrue:[
+ (filter notNil and:[filter isBlock not and:[(filter isKindOf: MessageSend) not]]) ifTrue:[filter removeDependent: self].
+ filter := filterHolder value.
+ (filter notNil and:[filter isBlock not and:[(filter isKindOf: MessageSend) not]]) ifTrue:[filter addDependent: self].
+ "/ Only do this after window is opened....
+ (self builder notNil and:[ self builder window notNil ]) ifTrue:[
+ matchingObjectsUpdateJob restart.
+ ].
+ ^ self.
+ ] .
+ changedObject == filter ifTrue:[
+ matchingObjectsUpdateJob restart.
+ ].
+ super update:something with:aParameter from:changedObject
+
+ "Modified: / 08-12-2014 / 02:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateAcceptEnabled
+ self acceptEnabledHolder value:
+ (matchingObjectsSelectionHolder value notEmptyOrNil
+ or:[ self canCreateMatchingObjectFromString:matchPatternView contents ])
+
+ "Created: / 08-03-2013 / 14:06:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 23-06-2014 / 15:16:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateAcceptedValue
+ "Dialog has been accepted (OK pressed). Update accepted value"
+
+ | matchingObjectsSelection |
+
+ matchingObjectsSelection := matchingObjectsSelectionHolder value.
+ matchingObjectsSelection isEmptyOrNil ifTrue:[
+ (self canCreateMatchingObjectFromString:matchPatternView contents) ifTrue:[
+ acceptedValue := self matchingObjectForString: matchPatternView contents.
+ ].
+ ] ifFalse:[
+ acceptedValue := matchingObjectsMultiselect
+ ifTrue:[ matchingObjectsSelection collect:[:e|e subject] ]
+ ifFalse:[ matchingObjectsSelection subject ]
+ ].
+
+ "Created: / 19-06-2014 / 11:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 23-06-2014 / 15:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchPatternHolderFromSelection
+ | pattern selection |
+
+ "/ Do not update pattern if it contains match characters
+ pattern := matchPatternHolder value.
+ pattern notEmptyOrNil ifTrue:[
+ (pattern first isSeparator or:[pattern includesAny: '*?']) ifTrue:[
+ ^self
+ ]
+ ].
+ selection := matchingObjectsSelectionHolder value.
+ selection isSequenceable ifTrue:[
+ selection size == 1 ifTrue:[
+ selection := selection anElement.
+ ] ifFalse:[
+ selection := nil.
+ ]
+ ].
+ selection notNil ifTrue:[
+ matchPatternHolder value: selection label withoutNotifying: self.
+ matchPatternView notNil ifTrue:[
+ matchPatternView selectAll.
+ ]
+ ].
+
+ "Created: / 06-10-2014 / 23:59:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 25-11-2014 / 13:23:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingLabelToNormal
+ self matchingObjectsLabelHolder value: (resources string: 'Matching items:').
+
+ "Created: / 18-03-2013 / 14:02:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-04-2014 / 22:29:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingLabelToRecentSearches
+ self matchingObjectsLabelHolder value: (resources string: 'Recently searched:').
+
+ "Created: / 30-04-2014 / 11:47:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingLabelToSearching
+ self matchingObjectsLabelHolder value: (resources string: 'Searching...').
+
+ "Created: / 18-03-2013 / 14:01:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-04-2014 / 22:29:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingObjects
+ | environment pattern objects |
+
+ environment := self environment.
+ self matchPatternHolder value notEmptyOrNil ifTrue:[
+ pattern := StringPattern fromString: self matchPatternHolder value.
+ objects := self matchingObjectsForPattern: pattern inEnvironment: environment.
+ self updateMatchingObjects: objects.
+ ] ifFalse:[
+ self updateMatchingObjectsIgnorePattern
+ ].
+
+ "Created: / 06-05-2014 / 00:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-07-2014 / 10:16:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingObjects: objects
+ | objectPOs |
+
+ objectPOs := self matchingObjectPOsFor: objects.
+ self updateMatchingObjects: objects POs: objectPOs
+
+ "Modified: / 08-12-2014 / 02:32:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingObjects: matchineObjectsArg POs: matchingPOsArg
+ self enqueueMessage: #delayedUpdateMatchingObjects:POs: for: self arguments: (Array with: matchineObjectsArg with: matchingPOsArg)
+
+ "Created: / 08-12-2014 / 02:32:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingObjectsIgnorePattern
+ | environment objects |
+
+ environment := self environment.
+ objects := self matchingObjectsForPattern: nil inEnvironment: environment.
+ self updateMatchingObjects: objects.
+
+ "Created: / 10-05-2014 / 01:02:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-07-2014 / 10:16:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateNoResults: root
+ | items |
+
+ items := (Array with: ((HierarchicalItemWithLabel new parent: root; label:((resources string:'No search results...') asText colorizeAllWith: Color gray)))).
+ self updateMatchingObjects: nil POs: items.
+
+ "Created: / 11-03-2013 / 14:33:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 08-12-2014 / 02:27:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'event processing'!
+
+keyPressCursorDownInPatternView
+
+ matchingObjectsView hasSelection ifFalse:[
+ matchingObjectsView selectFirst.
+ ] ifTrue:[
+ matchingObjectsView selectNext.
+ ].
+ matchingObjectsView windowGroup focusView:matchingObjectsView byTab:true.
+
+ "Created: / 22-04-2014 / 11:59:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'events'!
+
+closeCancel
+ "cancel was pressed. close the dialog"
+
+ accept setValue: nil.
+ ^ super closeCancel.
+
+ "Created: / 28-04-2014 / 23:56:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'forced actions'!
+
+doAcceptByDoubleClick
+ self acceptEnabledHolder value ifTrue:[
+ self doAccept
+ ].
+
+ "Created: / 08-03-2013 / 14:20:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+doAcceptByReturnKey
+ self acceptEnabledHolder value ifTrue:[
+ super doAcceptByReturnKey
+ ].
+
+ "Created: / 08-03-2013 / 14:14:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'hooks'!
+
+commonPostBuild
+
+ matchPatternHolder addDependent:self.
+ matchPatternView selectAll.
+ matchingObjects isNil ifTrue:[
+ self updateMatchingObjectsIgnorePattern.
+ ].
+ self updateAcceptEnabled.
+ self updateMatchPatternHolderFromSelection.
+ super commonPostBuild
+
+ "Created: / 25-11-2014 / 13:23:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+postBuildMatchPatternView:aView
+ matchPatternView := aView scrolledView.
+"/ matchPatternView delegate: self.
+ matchPatternView onKey:#CursorDown leaveWith:[ self keyPressCursorDownInPatternView ]
+
+ "Created: / 28-04-2014 / 22:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+postBuildMatchingObjectsView:aView
+ matchingObjectsView := aView scrolledView.
+ matchingObjectsView delegate: self.
+ matchingObjectsView multipleSelectOk: matchingObjectsMultiselect
+
+ "Created: / 22-04-2014 / 13:21:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-05-2014 / 11:23:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'initialization'!
+
+initialize
+ "Invoked when a new instance is created."
+
+ super initialize.
+
+ "/ please change as required (and remove this comment)
+ "/ acceptEnabledHolder := nil.
+ "/ allClassesHolder := nil.
+ "/ matchingClassesList := nil.
+ "/ matchingClassesHolder := nil.
+ "/ matchPatternHolder := nil.
+ "/ matchingUpdateJob := nil.
+
+ self accept addDependent: self.
+ self matchingObjectsTree. "/force its initialization
+ matchingObjectsUpdateJob := BackgroundJob named: 'SmallSense search dialog updater' on:[self updateMatchingObjects].
+ matchingObjectsMultiselect := false.
+
+ "Modified: / 08-12-2014 / 01:51:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'queries'!
+
+canCreateMatchingObjectFromString:string
+ "Return true, a new object can be created with given string value"
+
+ ^ false
+
+ "Created: / 23-06-2014 / 15:14:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+canSelect: selection
+ "raise an error: must be redefined in concrete subclass(es)"
+
+ ^ self subclassResponsibility
+
+ "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>"
+!
+
+hasOptions
+ ^ false
+
+ "Created: / 09-05-2014 / 23:58:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractListDialog methodsFor:'searching'!
+
+matchPatternCompletionFor: contents
+ | pattern |
+
+ pattern := StringPattern fromString: contents.
+ (pattern isKindOf: StringPattern::StartsWith) ifFalse:[ ^ nil ].
+ ^ self matchPatternCompletionFor: contents pattern: pattern
+
+ "Created: / 02-05-2014 / 10:50:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchPatternCompletionFor: contents pattern: pattern
+ | completionPOs completionPOLabels completion matchingPOs |
+
+ completionPOs := self matchingObjectsTree root
+ recursiveSelect:[:item | (self canSelect: item) and:[ pattern match: item label relax: 1 ] ].
+ completionPOLabels := completionPOs collect:[ :each | each label ].
+ completion := completionPOLabels longestCommonPrefix.
+ completion isEmptyOrNil ifTrue:[ ^ nil ].
+ completion = contents ifTrue:[ ^ nil ].
+ matchingPOs := OrderedCollection new.
+ completionPOs with: completionPOLabels do:[:po :poLabel |
+ poLabel = completion ifTrue:[
+ matchingPOs add: po.
+ ].
+ ].
+ ^ Array with: completion with: matchingPOs.
+
+ "Created: / 02-05-2014 / 10:58:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 02-10-2014 / 10:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectPOsFor: objects
+
+ self subclassResponsibility.
+
+ "Created: / 30-04-2014 / 09:46:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern inEnvironment:environment
+ | objects |
+
+ objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 1.
+ objects notEmptyOrNil ifTrue:[ ^ objects ].
+
+ objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 2.
+ objects notEmptyOrNil ifTrue:[ ^ objects ].
+
+ objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 3.
+ ^ objects
+
+ "Created: / 28-04-2014 / 23:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern inEnvironment:environment relax: level
+ self subclassResponsibility
+
+ "Created: / 20-06-2014 / 21:16:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__AbstractSearchDialog.st Sat Dec 06 22:27:37 2014 +0000
+++ b/SmallSense__AbstractSearchDialog.st Mon Dec 08 02:42:33 2014 +0000
@@ -20,13 +20,8 @@
"{ NameSpace: SmallSense }"
-AbstractDIalog subclass:#AbstractSearchDialog
- instanceVariableNames:'matchingObjects matchingObjectsView matchingObjectsMultiselect
- matchingObjectsTree matchingObjectsSelectionHolder
- matchingObjectsLabelHolder matchingObjectsUpdateJob
- matchPatternHolder matchPatternView environmentHolder
- filterHolder filter recentlySearchedPatterns
- recentlySearchedObjects'
+AbstractListDialog subclass:#AbstractSearchDialog
+ instanceVariableNames:'recentlySearchedPatterns recentlySearchedObjects'
classVariableNames:''
poolDictionaries:''
category:'SmallSense-Core-Interface-Search'
@@ -37,6 +32,7 @@
"
The following class instance variables are inherited by this class:
+ SmallSense::AbstractListDialog -
SmallSense::AbstractDIalog -
SimpleDialog -
ApplicationModel - ClassResources
@@ -88,116 +84,6 @@
"Created: / 28-04-2014 / 23:13:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!AbstractSearchDialog class methodsFor:'interface specs-content'!
-
-contentPaneSpec
- "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::AbstractSearchDialog andSelector:#contentPaneSpec
- SmallSense::AbstractSearchDialog new openInterface:#contentPaneSpec
- "
-
- <resource: #canvas>
-
- ^
- #(FullSpec
- name: contentPaneSpec
- window:
- (WindowSpec
- label: 'Search...'
- name: 'Search...'
- min: (Point 10 10)
- bounds: (Rectangle 0 0 708 404)
- menu: mainMenuSpec
- )
- component:
- (SpecCollection
- collection: (
- (VerticalPanelViewSpec
- name: 'Content'
- layout: (LayoutFrame 0 0 0 0 0 1 0 1)
- horizontalLayout: fit
- verticalLayout: topSpaceFit
- component:
- (SpecCollection
- collection: (
- (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)
- visibilityChannel: hasOptions
- minorKey: optionsShowHideRightAlignedPaneSpec
- )
- )
-
- )
- extent: (Point 708 30)
- )
- (InputFieldSpec
- name: 'Pattern'
- model: matchPatternHolder
- immediateAccept: true
- acceptOnReturn: true
- acceptOnTab: true
- acceptOnPointerLeave: true
- entryCompletionBlock: matchPatternCompletionBlock
- extent: (Point 706 25)
- postBuildCallback: postBuildMatchPatternView:
- usePreferredHeight: true
- )
- (LabelSpec
- label: 'Matching items:'
- name: 'MatchingLabel'
- translateLabel: true
- labelChannel: matchingObjectsLabelHolder
- adjust: left
- extent: (Point 708 25)
- )
- (HierarchicalListViewSpec
- name: 'HierarchicalListView1'
- model: matchingObjectsSelectionHolder
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- listModel: matchingObjectsTree
- multipleSelectOk: true
- useIndex: false
- highlightMode: line
- doubleClickSelector: doAcceptByDoubleClick
- selectConditionSelector: canSelectIndex:
- showLines: false
- showIndicators: false
- showLeftIndicators: false
- useDefaultIcons: false
- showRoot: false
- extent: (Point 708 302)
- postBuildCallback: postBuildMatchingObjectsView:
- )
- )
-
- )
- )
- )
-
- )
- )
-! !
-
!AbstractSearchDialog class methodsFor:'queries'!
isAbstract
@@ -210,71 +96,6 @@
!AbstractSearchDialog methodsFor:'accessing'!
-environment
- ^ self environmentHolder value
-
- "Created: / 22-04-2014 / 10:45:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-environment: aJavaClassEnvironment
- ^self environmentHolder value: aJavaClassEnvironment
-
- "Created: / 22-04-2014 / 10:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-filter
- ^self filterHolder value.
-
- "Created: / 11-03-2013 / 17:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-filter: aBlock
- self filterHolder value: aBlock
-
- "Created: / 10-05-2014 / 00:41:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsSelection
- ^ self matchingObjectsSelectionHolder value
-
- "Created: / 10-05-2014 / 00:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsSelection: selection
- self matchingObjectsSelectionHolder value: selection withoutNotifying:self.
- self updateAcceptEnabled.
-
- "Created: / 02-05-2014 / 12:26:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 25-11-2014 / 13:59:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-multiselect
- ^ matchingObjectsMultiselect
-
- "Created: / 10-05-2014 / 11:22:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-multiselect: aBoolean
- matchingObjectsMultiselect := aBoolean.
- matchingObjectsView notNil ifTrue:[
- matchingObjectsView multipleSelectOk: aBoolean
- ].
-
- "Created: / 10-05-2014 / 11:22:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-pattern
- ^self matchPatternHolder value.
-
- "Created: / 11-03-2013 / 14:39:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-pattern: aString
- ^self matchPatternHolder value: aString
-
- "Created: / 11-03-2013 / 15:21:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
recentlySearchedObjects
^ recentlySearchedObjects
!
@@ -289,229 +110,6 @@
recentlySearchedPatterns:aCollection
recentlySearchedPatterns := aCollection.
-!
-
-selection: selection
- | matchingObjectsSelection |
-
- matchingObjectsMultiselect ifTrue:[
- matchingObjectsSelection := selection collect:[ :each | matchingObjectsTree root recursiveDetect: [ :po | po subject = each ] ].
- matchingObjectsSelection := matchingObjectsSelection reject:[:each | each isNil ].
- ] ifFalse:[
- matchingObjectsSelection := matchingObjectsTree root recursiveDetect: [ :po | po subject = selection ]
- ].
- self matchingObjectsSelection: matchingObjectsSelection.
-
- "Created: / 10-05-2014 / 00:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-05-2014 / 11:42:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-title
- ^ self titleHolder value.
-
- "Created: / 05-05-2014 / 23:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-title: aString
- | title |
-
-
- title := aString.
- (title includes: Character cr) ifTrue:[
- title := title upTo:Character cr.
- ].
- self titleHolder value: title
-
- "Created: / 05-05-2014 / 23:36:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-05-2014 / 01:22:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'accessing - private'!
-
-matchingObjectForString: aString
- "Creates a new object from given string. Called only when
- #canCreateMatchingObjectFromString: returns true"
-
- (self canCreateMatchingObjectFromString:aString) ifFalse:[
- self shouldNeverBeSent
- ] ifTrue:[
- self subclassResponsibility
- ]
-
- "Created: / 23-06-2014 / 15:20:45 / 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'!
-
-environmentHolder
- "return/create the 'registryHolder' value holder (automatically generated)"
-
- environmentHolder isNil ifTrue:[
- environmentHolder := Smalltalk asValue.
- environmentHolder addDependent:self.
- ].
- ^ environmentHolder
-
- "Created: / 22-04-2014 / 10:45:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 28-04-2014 / 00:04:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-environmentHolder:something
- "set the 'registryHolder' value holder (automatically generated)"
-
- |oldValue newValue|
-
- environmentHolder notNil ifTrue:[
- oldValue := environmentHolder value.
- environmentHolder removeDependent:self.
- ].
- environmentHolder := something.
- environmentHolder notNil ifTrue:[
- environmentHolder addDependent:self.
- ].
- newValue := environmentHolder value.
- oldValue ~~ newValue ifTrue:[
- self update:#value with:newValue from:environmentHolder.
- ].
-
- "Created: / 22-04-2014 / 10:45:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-filterHolder
- "return/create the 'filterHolder' value holder (automatically generated)"
-
- filterHolder isNil ifTrue:[
- filterHolder := ValueHolder new.
- filterHolder addDependent:self.
- ].
- ^ filterHolder
-!
-
-filterHolder:something
- "set the 'filterHolder' value holder (automatically generated)"
-
- |oldValue newValue|
-
- filterHolder notNil ifTrue:[
- oldValue := filterHolder value.
- filterHolder removeDependent:self.
- ].
- filterHolder := something.
- filterHolder notNil ifTrue:[
- filterHolder addDependent:self.
- ].
- newValue := filterHolder value.
- oldValue ~~ newValue ifTrue:[
- self update:#value with:newValue from:filterHolder.
- ].
-!
-
-matchPatternCompletionBlock
- ^ [ :contents :field |
- | completion |
- (contents notEmptyOrNil and:[ matchingObjectsUpdateJob running not]) ifTrue:[
- field topView withCursor:(Cursor questionMark) do:[
- completion := self matchPatternCompletionFor: contents
- ].
- ].
- completion notNil ifTrue:[
- field contents: completion first.
- completion second size == 1 ifTrue:[
- matchingObjectsMultiselect ifTrue:[
- self matchingObjectsSelection: completion second asArray
- ] ifFalse:[
- self matchingObjectsSelection: completion second anElement.
- ].
- ].
- ] ifFalse:[
- matchingObjectsView flash.
- ]
- ]
-
- "Created: / 28-04-2014 / 22:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 20-06-2014 / 14:12:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchPatternHolder
- <resource: #uiAspect>
-
- matchPatternHolder isNil ifTrue:[
- matchPatternHolder := ValueHolder new.
- ].
- ^ matchPatternHolder.
-
- "Modified: / 25-11-2014 / 13:52:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsLabelHolder
- <resource: #uiAspect>
-
- "automatically generated by UIPainter ..."
-
- "*** the code below creates a default model when invoked."
- "*** (which may not be the one you wanted)"
- "*** Please change as required and accept it in the browser."
- "*** (and replace this comment by something more useful ;-)"
-
- matchingObjectsLabelHolder isNil ifTrue:[
- matchingObjectsLabelHolder := ValueHolder with:(resources string:'Matching items:').
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
-"/ matchingLabelHolder addDependent:self.
-"/ matchingLabelHolder onChangeSend:#matchingLabelHolderChanged to:self.
- ].
- ^ matchingObjectsLabelHolder.
-
- "Created: / 28-04-2014 / 22:29:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsSelectionHolder
- "return/create the 'matchingClassesSelectionHolder' value holder (automatically generated)"
-
- matchingObjectsSelectionHolder isNil ifTrue:[
- matchingObjectsSelectionHolder := ValueHolder new.
- matchingObjectsSelectionHolder addDependent:self.
- ].
- ^ matchingObjectsSelectionHolder
-
- "Modified: / 08-03-2013 / 14:05:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsSelectionHolder:something
- "set the 'matchingClassesSelectionHolder' value holder (automatically generated)"
-
- matchingObjectsSelectionHolder := something.
-!
-
-matchingObjectsTree
- <resource: #uiAspect>
- matchingObjectsTree isNil ifTrue:[
- matchingObjectsTree := HierarchicalList new.
- matchingObjectsTree showRoot:false.
- matchingObjectsTree root:(HierarchicalItem new).
- matchingObjectsTree application:self.
- self updateNoResults:matchingObjectsTree root.
- ].
- ^ matchingObjectsTree.
-
- "Created: / 08-03-2013 / 15:40:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 27-04-2014 / 23:41:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'aspects-queries'!
-
-hasFilter
- ^self filterHolder value notNil
-
- "Created: / 08-03-2013 / 15:43:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 11-03-2013 / 17:34:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AbstractSearchDialog methodsFor:'change & update'!
@@ -519,15 +117,6 @@
update:something with:aParameter from:changedObject
"Invoked when an object that I depend upon sends a change notification."
- changedObject == matchPatternHolder ifTrue:[
- matchingObjectsUpdateJob restart.
- ^ self.
- ].
- changedObject == matchingObjectsSelectionHolder ifTrue:[
- self updateMatchPatternHolderFromSelection.
- self updateAcceptEnabled.
- ^ self.
- ].
changedObject == accept ifTrue:[
accept value ifTrue:[
self updateAcceptedValue.
@@ -539,360 +128,38 @@
].
].
^ self.
- ].
- changedObject == filterHolder ifTrue:[
- (filter notNil and:[filter isBlock not and:[(filter isKindOf: MessageSend) not]]) ifTrue:[filter removeDependent: self].
- filter := filterHolder value.
- (filter notNil and:[filter isBlock not and:[(filter isKindOf: MessageSend) not]]) ifTrue:[filter addDependent: self].
- "/ Only do this after window is opened....
- (self builder notNil and:[ self builder window notNil ]) ifTrue:[
- matchingObjectsUpdateJob restart.
- ].
- ^ self.
- ] .
- changedObject == filter ifTrue:[
- matchingObjectsUpdateJob restart.
- ].
+ ].
super update:something with:aParameter from:changedObject
- "Modified: / 06-10-2014 / 23:59:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateAcceptEnabled
- self acceptEnabledHolder value:
- (matchingObjectsSelectionHolder value notEmptyOrNil
- or:[ self canCreateMatchingObjectFromString:matchPatternView contents ])
-
- "Created: / 08-03-2013 / 14:06:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 23-06-2014 / 15:16:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateAcceptedValue
- "Dialog has been accepted (OK pressed). Update accepted value"
-
- | matchingObjectsSelection |
-
- matchingObjectsSelection := matchingObjectsSelectionHolder value.
- matchingObjectsSelection isEmptyOrNil ifTrue:[
- (self canCreateMatchingObjectFromString:matchPatternView contents) ifTrue:[
- acceptedValue := self matchingObjectForString: matchPatternView contents.
- ].
- ] ifFalse:[
- acceptedValue := matchingObjectsMultiselect
- ifTrue:[ matchingObjectsSelection collect:[:e|e subject] ]
- ifFalse:[ matchingObjectsSelection subject ]
- ].
-
- "Created: / 19-06-2014 / 11:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 23-06-2014 / 15:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchPatternHolderFromSelection
- | pattern selection |
-
- "/ Do not update pattern if it contains match characters
- pattern := matchPatternHolder value.
- pattern notEmptyOrNil ifTrue:[
- (pattern first isSeparator or:[pattern includesAny: '*?']) ifTrue:[
- ^self
- ]
- ].
- selection := matchingObjectsSelectionHolder value.
- selection isSequenceable ifTrue:[
- selection size == 1 ifTrue:[
- selection := selection anElement.
- ] ifFalse:[
- selection := nil.
- ]
- ].
- selection notNil ifTrue:[
- matchPatternHolder value: selection label withoutNotifying: self.
- matchPatternView notNil ifTrue:[
- matchPatternView selectAll.
- ]
- ].
-
- "Created: / 06-10-2014 / 23:59:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 25-11-2014 / 13:23:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingLabelToNormal
- self matchingObjectsLabelHolder value: (resources string: 'Matching items:').
-
- "Created: / 18-03-2013 / 14:02:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 28-04-2014 / 22:29:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingLabelToRecentSearches
- self matchingObjectsLabelHolder value: (resources string: 'Recently searched:').
-
- "Created: / 30-04-2014 / 11:47:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingLabelToSearching
- self matchingObjectsLabelHolder value: (resources string: 'Searching...').
-
- "Created: / 18-03-2013 / 14:01:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 28-04-2014 / 22:29:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingObjects
- | environment pattern objects |
-
- environment := self environment.
- self matchPatternHolder value notEmptyOrNil ifTrue:[
- pattern := StringPattern fromString: self matchPatternHolder value.
- objects := self matchingObjectsForPattern: pattern inEnvironment: environment.
- self updateMatchingObjects: objects.
- ] ifFalse:[
- self updateMatchingObjectsIgnorePattern
- ].
-
- "Created: / 06-05-2014 / 00:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 06-07-2014 / 10:16:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingObjects: objects
- | rootPO matchingPOs matchPatternString |
-
- matchingObjects := objects.
- matchingPOs := self matchingObjectPOsFor: objects.
- rootPO := self matchingObjectsTree root.
- rootPO
- children:matchingPOs;
- expand.
- matchPatternString := self matchPatternHolder value.
- matchPatternString isEmptyOrNil ifTrue:[
- ^ self.
- ].
- matchingPOs size == 1 ifTrue:[
- matchingObjectsMultiselect ifTrue:[
- self matchingObjectsSelection: matchingPOs
- ] ifFalse:[
- self matchingObjectsSelection: matchingPOs anElement
- ]
- ].
-
- "Created: / 30-04-2014 / 09:53:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 26-11-2014 / 07:24:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingObjectsIgnorePattern
- | environment objects |
-
- environment := self environment.
- objects := self matchingObjectsForPattern: nil inEnvironment: environment.
- self updateMatchingObjects: objects.
-
- "Created: / 10-05-2014 / 01:02:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 06-07-2014 / 10:16:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateNoResults: root
- root children:
- (Array with: ((HierarchicalItemWithLabel new parent: root; label:((resources string:'No search results...') asText colorizeAllWith: Color gray)))).
- root expand.
- ^self
-
- "Created: / 11-03-2013 / 14:33:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 27-04-2014 / 23:42:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'event processing'!
-
-keyPressCursorDownInPatternView
-
- matchingObjectsView hasSelection ifFalse:[
- matchingObjectsView selectFirst.
- ] ifTrue:[
- matchingObjectsView selectNext.
- ].
- matchingObjectsView windowGroup focusView:matchingObjectsView byTab:true.
-
- "Created: / 22-04-2014 / 11:59:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'events'!
-
-closeCancel
- "cancel was pressed. close the dialog"
-
- accept setValue: nil.
- ^ super closeCancel.
-
- "Created: / 28-04-2014 / 23:56:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'forced actions'!
-
-doAcceptByDoubleClick
- self acceptEnabledHolder value ifTrue:[
- self doAccept
- ].
-
- "Created: / 08-03-2013 / 14:20:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-doAcceptByReturnKey
- self acceptEnabledHolder value ifTrue:[
- super doAcceptByReturnKey
- ].
-
- "Created: / 08-03-2013 / 14:14:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 08-12-2014 / 02:36:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AbstractSearchDialog methodsFor:'hooks'!
commonPostBuild
-
- matchPatternHolder addDependent:self.
- matchPatternView selectAll.
- matchingObjects isNil ifTrue:[
- self updateMatchingObjectsIgnorePattern.
+"/ 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.
- self updateMatchPatternHolderFromSelection.
super commonPostBuild
- "Created: / 25-11-2014 / 13:23:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-postBuildMatchPatternView:aView
- matchPatternView := aView scrolledView.
-"/ matchPatternView delegate: self.
- matchPatternView onKey:#CursorDown leaveWith:[ self keyPressCursorDownInPatternView ]
-
- "Created: / 28-04-2014 / 22:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-postBuildMatchingObjectsView:aView
- matchingObjectsView := aView scrolledView.
- matchingObjectsView delegate: self.
- matchingObjectsView multipleSelectOk: matchingObjectsMultiselect
-
- "Created: / 22-04-2014 / 13:21:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-05-2014 / 11:23:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 25-11-2014 / 13:23:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AbstractSearchDialog methodsFor:'initialization'!
initialize
- "Invoked when a new instance is created."
-
super initialize.
- "/ please change as required (and remove this comment)
- "/ acceptEnabledHolder := nil.
- "/ allClassesHolder := nil.
- "/ matchingClassesList := nil.
- "/ matchingClassesHolder := nil.
- "/ matchPatternHolder := nil.
- "/ matchingUpdateJob := nil.
-
- self accept addDependent: self.
- self matchingObjectsTree. "/force its initialization
- matchingObjectsUpdateJob := BackgroundJob named: 'SmallSense search dialog updater' on:[self updateMatchingObjects].
- matchingObjectsMultiselect := false.
-
recentlySearchedPatterns := self class recentlySearchedPatterns.
recentlySearchedObjects := self class recentlySearchedObjects.
- "Modified: / 10-05-2014 / 11:40:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'queries'!
-
-canCreateMatchingObjectFromString:string
- "Return true, a new object can be created with given string value"
-
- ^ false
-
- "Created: / 23-06-2014 / 15:14:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-canSelect: selection
- "raise an error: must be redefined in concrete subclass(es)"
-
- ^ self subclassResponsibility
-
- "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>"
-!
-
-hasOptions
- ^ false
-
- "Created: / 09-05-2014 / 23:58:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!AbstractSearchDialog methodsFor:'searching'!
-
-matchPatternCompletionFor: contents
- | pattern |
-
- pattern := StringPattern fromString: contents.
- (pattern isKindOf: StringPattern::StartsWith) ifFalse:[ ^ nil ].
- ^ self matchPatternCompletionFor: contents pattern: pattern
-
- "Created: / 02-05-2014 / 10:50:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchPatternCompletionFor: contents pattern: pattern
- | completionPOs completionPOLabels completion matchingPOs |
-
- completionPOs := self matchingObjectsTree root
- recursiveSelect:[:item | (self canSelect: item) and:[ pattern match: item label relax: 1 ] ].
- completionPOLabels := completionPOs collect:[ :each | each label ].
- completion := completionPOLabels longestCommonPrefix.
- completion isEmptyOrNil ifTrue:[ ^ nil ].
- completion = contents ifTrue:[ ^ nil ].
- matchingPOs := OrderedCollection new.
- completionPOs with: completionPOLabels do:[:po :poLabel |
- poLabel = completion ifTrue:[
- matchingPOs add: po.
- ].
- ].
- ^ Array with: completion with: matchingPOs.
-
- "Created: / 02-05-2014 / 10:58:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 02-10-2014 / 10:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectPOsFor: objects
-
- self subclassResponsibility.
-
- "Created: / 30-04-2014 / 09:46:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsForPattern:pattern inEnvironment:environment
- | objects |
-
- objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 1.
- objects notEmptyOrNil ifTrue:[ ^ objects ].
-
- objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 2.
- objects notEmptyOrNil ifTrue:[ ^ objects ].
-
- objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 3.
- ^ objects
-
- "Created: / 28-04-2014 / 23:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 20-06-2014 / 21:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-matchingObjectsForPattern:pattern inEnvironment:environment relax: level
- self subclassResponsibility
-
- "Created: / 20-06-2014 / 21:16:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 08-12-2014 / 01:51:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AbstractSearchDialog class methodsFor:'documentation'!
--- a/SmallSense__ClassSearchDialog.st Sat Dec 06 22:27:37 2014 +0000
+++ b/SmallSense__ClassSearchDialog.st Mon Dec 08 02:42:33 2014 +0000
@@ -232,23 +232,6 @@
"Modified: / 20-06-2014 / 14:15:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!ClassSearchDialog methodsFor:'hooks'!
-
-commonPostBuild
-"/ self updateMatching.
-"/ recentlySearchedPatterns notEmptyOrNil ifTrue:[
-"/ matchPatternView contents: self recentlySearchedPatterns last.
-"/ matchPatternView selectAll.
-"/ ].
- self recentlySearchedObjects notEmptyOrNil ifTrue:[
- self updateMatchingObjects: self recentlySearchedObjects asArray reverse.
- self updateMatchingLabelToRecentSearches.
- ].
- super commonPostBuild
-
- "Created: / 25-11-2014 / 13:23:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!ClassSearchDialog methodsFor:'queries'!
canSelect: selection
--- a/SmallSense__MethodSearchDialog.st Sat Dec 06 22:27:37 2014 +0000
+++ b/SmallSense__MethodSearchDialog.st Mon Dec 08 02:42:33 2014 +0000
@@ -125,23 +125,6 @@
"Created: / 10-05-2014 / 11:50:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!MethodSearchDialog methodsFor:'hooks'!
-
-commonPostBuild
-"/ self updateMatching.
-"/ recentlySearchedPatterns notEmptyOrNil ifTrue:[
-"/ matchPatternView contents: self recentlySearchedPatterns last.
-"/ matchPatternView selectAll.
-"/ ].
- self recentlySearchedObjects notEmptyOrNil ifTrue:[
- self updateMatchingObjects: self recentlySearchedObjects asArray reverse.
- self updateMatchingLabelToRecentSearches.
- ].
- super commonPostBuild
-
- "Created: / 25-11-2014 / 13:23:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!MethodSearchDialog methodsFor:'queries'!
canSelect: selection
--- a/SmallSense__PackageSearchDialog.st Sat Dec 06 22:27:37 2014 +0000
+++ b/SmallSense__PackageSearchDialog.st Mon Dec 08 02:42:33 2014 +0000
@@ -20,7 +20,7 @@
"{ NameSpace: SmallSense }"
-AbstractSearchDialog subclass:#PackageSearchDialog
+AbstractListDialog subclass:#PackageSearchDialog
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -96,7 +96,7 @@
| pkg |
pkg := cls package.
- ((pkg notNil and:[ pkg ~~ PackageId noProjectID and:[ pkg ~= '__temporary__'] ])
+ ((pkg notNil and:[ pkg ~~ PackageId noProjectID and:[ (pkg startsWith: '__') not] ])
and:[(filter isNil or:[ filter value: pkg ])
and:[pattern isNil or:[pattern match: pkg relax: level]]]) ifTrue:[ packages add: pkg ].
].
@@ -104,12 +104,13 @@
| pkg |
pkg := mth package.
- ((pkg notNil and:[ pkg ~~ PackageId noProjectID ])
+ ((pkg notNil and:[ pkg ~~ PackageId noProjectID and:[ (pkg startsWith: '__') not] ])
and:[(filter isNil or:[ filter value: pkg ])
and:[pattern isNil or:[pattern match: pkg relax: level]]]) ifTrue:[ packages add: pkg ].
].
^ packages asArray.
"Created: / 20-06-2014 / 21:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 08-12-2014 / 02:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/abbrev.stc Sat Dec 06 22:27:37 2014 +0000
+++ b/abbrev.stc Mon Dec 08 02:42:33 2014 +0000
@@ -37,7 +37,7 @@
SmallSense::TypeHolder SmallSense__TypeHolder stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
stx_goodies_smallsense stx_goodies_smallsense stx:goodies/smallsense '* Projects & Packages *' 3
SmallSense::AbstractJavaCompletionEngine SmallSense__AbstractJavaCompletionEngine stx:goodies/smallsense 'SmallSense-Java' 0
-SmallSense::AbstractSearchDialog SmallSense__AbstractSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::AbstractListDialog SmallSense__AbstractListDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
SmallSense::ClassInfo SmallSense__ClassInfo stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
SmallSense::ClassPO SmallSense__ClassPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
SmallSense::ClassType SmallSense__ClassType stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
@@ -59,14 +59,15 @@
SmallSense::VariableBindingPO SmallSense__VariableBindingPO stx:goodies/smallsense 'SmallSense-Java-Interface-PO' 0
SmallSense::VariablePO SmallSense__VariablePO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
SmallSense::AbstractJavaCompletionEngineSimple SmallSense__AbstractJavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
-SmallSense::ClassSearchDialog SmallSense__ClassSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::AbstractSearchDialog SmallSense__AbstractSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
SmallSense::GroovyEditSupport SmallSense__GroovyEditSupport stx:goodies/smallsense 'SmallSense-Groovy' 0
SmallSense::JavaCompletionEngine SmallSense__JavaCompletionEngine stx:goodies/smallsense 'SmallSense-Java' 0
SmallSense::JavaConstructorPO SmallSense__JavaConstructorPO stx:goodies/smallsense 'SmallSense-Java-Interface-PO' 0
SmallSense::MethodKeywordRestPO SmallSense__MethodKeywordRestPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
+SmallSense::PackageSearchDialog SmallSense__PackageSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
+SmallSense::ClassSearchDialog SmallSense__ClassSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
SmallSense::MethodSearchDialog SmallSense__MethodSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
-SmallSense::PackageSearchDialog SmallSense__PackageSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
-SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
SmallSense::GroovyCompletionEngineSimple SmallSense__GroovyCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Groovy' 2
SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::AbstractTestCase SmallSense__AbstractTestCase stx:goodies/smallsense 'SmallSense-Tests' 1
--- a/bc.mak Sat Dec 06 22:27:37 2014 +0000
+++ b/bc.mak Mon Dec 08 02:42:33 2014 +0000
@@ -119,7 +119,7 @@
$(OUTDIR)SmallSense__TypeHolder.$(O) SmallSense__TypeHolder.$(H): SmallSense__TypeHolder.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)stx_goodies_smallsense.$(O) stx_goodies_smallsense.$(H): stx_goodies_smallsense.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
$(OUTDIR)SmallSense__AbstractJavaCompletionEngine.$(O) SmallSense__AbstractJavaCompletionEngine.$(H): SmallSense__AbstractJavaCompletionEngine.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__AbstractSearchDialog.$(O) SmallSense__AbstractSearchDialog.$(H): SmallSense__AbstractSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(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__AbstractListDialog.$(O) SmallSense__AbstractListDialog.$(H): SmallSense__AbstractListDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(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__ClassInfo.$(O) SmallSense__ClassInfo.$(H): SmallSense__ClassInfo.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__ClassPO.$(O) SmallSense__ClassPO.$(H): SmallSense__ClassPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__ClassType.$(O) SmallSense__ClassType.$(H): SmallSense__ClassType.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -141,16 +141,17 @@
$(OUTDIR)SmallSense__VariableBindingPO.$(O) SmallSense__VariableBindingPO.$(H): SmallSense__VariableBindingPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__AbstractJavaCompletionEngineSimple.$(O) SmallSense__AbstractJavaCompletionEngineSimple.$(H): SmallSense__AbstractJavaCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\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__AbstractSearchDialog.$(O) SmallSense__AbstractSearchDialog.$(H): SmallSense__AbstractSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(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__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__JavaCompletionEngine.$(O) SmallSense__JavaCompletionEngine.$(H): SmallSense__JavaCompletionEngine.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__JavaConstructorPO.$(O) SmallSense__JavaConstructorPO.$(H): SmallSense__JavaConstructorPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\stx\goodies\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)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\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)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\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)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(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__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\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__JavaCompletionEngineSimple.$(O) SmallSense__JavaCompletionEngineSimple.$(H): SmallSense__JavaCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\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__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBasicLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBlockLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBBlockNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBMethodNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBStatementNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBValueNode.$(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\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(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__LintService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(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\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBasicLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBlockLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBBlockNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBMethodNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBStatementNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBValueNode.$(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\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(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__LintService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\ModalBox.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libwidg\DialogBox.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/bmake.bat Sat Dec 06 22:27:37 2014 +0000
+++ b/bmake.bat Mon Dec 08 02:42:33 2014 +0000
@@ -9,4 +9,8 @@
@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
make.exe -N -f bc.mak %DEFINES% %*
+@IF "%1" EQU "exe" GOTO finish
+
+
+:finish
--- a/extensions.st Sat Dec 06 22:27:37 2014 +0000
+++ b/extensions.st Mon Dec 08 02:42:33 2014 +0000
@@ -71,17 +71,23 @@
].
dialog := SmallSense::PackageSearchDialog new.
dialog title: title.
- dialog recentlySearchedObjects: suggestions.
- dialog recentlySearchedPatterns: suggestions.
dialog filter: [ :pkg | listOfProjects includes: pkg ].
dialog updateMatchingObjects.
(initialTextOrNil notNil and:[initialTextOrNil ~~ PackageId noProjectID]) ifTrue:[
- dialog pattern: initialTextOrNil.
- dialog selection: initialTextOrNil.
+ initialTextOrNil isEmpty ifTrue:[
+ suggestions size == 1 ifTrue:[
+ dialog pattern: suggestions anElement.
+ dialog selection: suggestions anElement.
+ ].
+ ] ifFalse:[
+ dialog pattern: initialTextOrNil.
+ dialog selection: initialTextOrNil.
+ ]
].
^ dialog open.
"Created: / 25-11-2014 / 13:20:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 08-12-2014 / 02:17:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!EditTextView methodsFor:'accessing-behavior'!
--- a/libInit.cc Sat Dec 06 22:27:37 2014 +0000
+++ b/libInit.cc Mon Dec 08 02:42:33 2014 +0000
@@ -63,7 +63,7 @@
_SmallSense__TypeHolder_Init(pass,__pRT__,snd);
_stx_137goodies_137smallsense_Init(pass,__pRT__,snd);
_SmallSense__AbstractJavaCompletionEngine_Init(pass,__pRT__,snd);
-_SmallSense__AbstractSearchDialog_Init(pass,__pRT__,snd);
+_SmallSense__AbstractListDialog_Init(pass,__pRT__,snd);
_SmallSense__ClassInfo_Init(pass,__pRT__,snd);
_SmallSense__ClassPO_Init(pass,__pRT__,snd);
_SmallSense__ClassType_Init(pass,__pRT__,snd);
@@ -85,14 +85,15 @@
_SmallSense__VariableBindingPO_Init(pass,__pRT__,snd);
_SmallSense__VariablePO_Init(pass,__pRT__,snd);
_SmallSense__AbstractJavaCompletionEngineSimple_Init(pass,__pRT__,snd);
-_SmallSense__ClassSearchDialog_Init(pass,__pRT__,snd);
+_SmallSense__AbstractSearchDialog_Init(pass,__pRT__,snd);
_SmallSense__GroovyEditSupport_Init(pass,__pRT__,snd);
_SmallSense__JavaCompletionEngine_Init(pass,__pRT__,snd);
_SmallSense__JavaConstructorPO_Init(pass,__pRT__,snd);
_SmallSense__MethodKeywordRestPO_Init(pass,__pRT__,snd);
+_SmallSense__PackageSearchDialog_Init(pass,__pRT__,snd);
+_SmallSense__ClassSearchDialog_Init(pass,__pRT__,snd);
+_SmallSense__JavaCompletionEngineSimple_Init(pass,__pRT__,snd);
_SmallSense__MethodSearchDialog_Init(pass,__pRT__,snd);
-_SmallSense__PackageSearchDialog_Init(pass,__pRT__,snd);
-_SmallSense__JavaCompletionEngineSimple_Init(pass,__pRT__,snd);
_SmallSense__GroovyCompletionEngineSimple_Init(pass,__pRT__,snd);
_stx_137goodies_137smallsense_extensions_Init(pass,__pRT__,snd);
--- a/smallsense.rc Sat Dec 06 22:27:37 2014 +0000
+++ b/smallsense.rc Mon Dec 08 02:42:33 2014 +0000
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Jan Vrany 2013-2014\0"
VALUE "ProductName", "SmallSense\0"
VALUE "ProductVersion", "6.2.5.0\0"
- VALUE "ProductDate", "Wed, 03 Dec 2014 10:29:19 GMT\0"
+ VALUE "ProductDate", "Mon, 08 Dec 2014 02:37:43 GMT\0"
END
END
--- a/stx_goodies_smallsense.st Sat Dec 06 22:27:37 2014 +0000
+++ b/stx_goodies_smallsense.st Mon Dec 08 02:42:33 2014 +0000
@@ -107,7 +107,7 @@
by searching all classes (and their packages) which are referenced by my classes."
^ #(
- #'stx:libbasic2' "BackgroundJob - referenced by SmallSense::AbstractSearchDialog>>initialize"
+ #'stx:libbasic2' "BackgroundJob - referenced by SmallSense::AbstractListDialog>>initialize"
#'stx:libbasic3' "ChangeSet - referenced by RBContainsSmalltalkXEOLCommentRule>>fixes:"
#'stx:libjava' "Java - referenced by SmallSense::JavaCompletionEngine>>complete"
#'stx:libjava/tools' "GroovyScanner - referenced by SmallSense::GroovyCompletionEngineSimple>>scannerClass"
@@ -170,7 +170,7 @@
#'SmallSense::TypeHolder'
#'stx_goodies_smallsense'
#'SmallSense::AbstractJavaCompletionEngine'
- #'SmallSense::AbstractSearchDialog'
+ #'SmallSense::AbstractListDialog'
#'SmallSense::ClassInfo'
#'SmallSense::ClassPO'
#'SmallSense::ClassType'
@@ -192,14 +192,15 @@
#'SmallSense::VariableBindingPO'
#'SmallSense::VariablePO'
#'SmallSense::AbstractJavaCompletionEngineSimple'
- #'SmallSense::ClassSearchDialog'
+ #'SmallSense::AbstractSearchDialog'
#'SmallSense::GroovyEditSupport'
#'SmallSense::JavaCompletionEngine'
#'SmallSense::JavaConstructorPO'
#'SmallSense::MethodKeywordRestPO'
+ #'SmallSense::PackageSearchDialog'
+ #'SmallSense::ClassSearchDialog'
+ #'SmallSense::JavaCompletionEngineSimple'
#'SmallSense::MethodSearchDialog'
- #'SmallSense::PackageSearchDialog'
- #'SmallSense::JavaCompletionEngineSimple'
#'SmallSense::GroovyCompletionEngineSimple'
(#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
(#'SmallSense::AbstractTestCase' autoload)
@@ -355,7 +356,7 @@
"Swizzle all methods annotated as <swizzle:>"
- Swizzled ifTrue:[ ^ self ].
+ Swizzled == true ifTrue:[ ^ self ].
ParserFlags initialize.
self extensionMethods do:[:m |
[
@@ -376,7 +377,7 @@
"
"Created: / 19-08-2013 / 14:54:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified (comment): / 28-11-2014 / 15:31:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 07-12-2014 / 23:36:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
swizzle: method