SmallSense__Navigator.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 25 Oct 2017 23:42:41 +0100
changeset 1058 6d4bf422a7dd
parent 423 60c930c93819
permissions -rw-r--r--
Fix subscript out of bounds error in Smalltalk inderences ...caused by missing size-check when analysing typed prefix.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
370
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2013-2014 Jan Vrany
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This library is free software; you can redistribute it and/or
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
License as published by the Free Software Foundation; either
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
version 2.1 of the License.
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
This library is distributed in the hope that it will be useful,
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
Lesser General Public License for more details.
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
License along with this library; if not, write to the Free Software
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
"
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'stx:goodies/smallsense' }"
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ NameSpace: SmallSense }"
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
AbstractSearchDialog subclass:#Navigator
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    24
	instanceVariableNames:'steps'
370
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'SmallSense-Core-Interface-Search'
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!Navigator class methodsFor:'documentation'!
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
copyright
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
"
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
Copyright (C) 2013-2014 Jan Vrany
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
This library is free software; you can redistribute it and/or
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
License as published by the Free Software Foundation; either
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
version 2.1 of the License.
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
This library is distributed in the hope that it will be useful,
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
Lesser General Public License for more details.
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
License along with this library; if not, write to the Free Software
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
"
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
378
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    53
!Navigator class methodsFor:'opening'!
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    54
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    55
open
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    56
    | result |    
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    57
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    58
    result := self new open.
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    59
    result isBehavior ifTrue:[ 
393
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
    60
        UserPreferences current systemBrowserClass openInClass:result selector: nil.
378
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    61
        ^ self
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    62
    ].
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    63
    result isMethod ifTrue:[ 
393
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
    64
        UserPreferences current systemBrowserClass openInClass: result mclass selector: result selector.
378
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    65
        ^ self
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    66
    ].
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    67
    result isCollection ifTrue:[ 
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    68
        (result allSatisfy:[:e|e isMethod]) ifTrue:[ 
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    69
            UserPreferences current systemBrowserClass 
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    70
                browseMethods:result 
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    71
                title:(self classResources string: 'Implementors of %1' with: result anElement selector storeString) 
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    72
                sort:true.
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    73
        ].
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    74
        ^ self
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    75
    ].
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    76
    ^ self
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    77
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    78
    "Created: / 25-01-2015 / 12:46:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
393
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
    79
    "Modified: / 11-02-2015 / 11:13:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
378
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    80
! !
359fd8380abd Added shortcut to open navigator to debugger, inspector and workspace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 377
diff changeset
    81
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    82
!Navigator methodsFor:'change & update'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    83
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    84
update:something with:aParameter from:changedObject
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    85
    "Invoked when an object that I depend upon sends a change notification."
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    86
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    87
    changedObject == matchingObjectsSelectionHolder ifTrue:[
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    88
        self updateMextSearchStepVisibility.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    89
    ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    90
    ^ super update:something with:aParameter from:changedObject
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    91
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    92
    "Created: / 23-01-2015 / 22:21:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    93
!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    94
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    95
updateMextSearchStepVisibility
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    96
    "raise an error: this method should be implemented (TODO)"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    97
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    98
    | selection |
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
    99
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   100
    selection := self matchingObjectsSelection.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   101
    matchingObjectsMultiselect ifTrue:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   102
        selection := selection size == 1 ifTrue:[ selection anElement ] ifFalse:[ nil ]
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   103
    ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   104
    selection notNil ifTrue:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   105
        self nextSearchStepVisibleHolder value: (processor canDoNextStepFor: selection)
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   106
    ] ifFalse:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   107
        self nextSearchStepVisibleHolder value: false.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   108
    ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   109
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   110
    "Created: / 23-01-2015 / 22:21:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   111
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   112
423
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   113
!Navigator methodsFor:'change & update-background'!
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   114
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   115
updateMatchingIgnorePattern
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   116
    steps size == 1 ifTrue:[
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   117
        ^ super updateMatchingIgnorePattern 
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   118
    ].
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   119
    self enqueueDelayedUpdateMatchingObjectPOs: (self matchingObjectPOsForPattern: nil)
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   120
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   121
    "Created: / 24-01-2015 / 00:50:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   122
    "Modified: / 21-02-2015 / 08:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   123
! !
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   124
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   125
!Navigator methodsFor:'event processing'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   126
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   127
keyPressCursorRightInMatchingObjectsView
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   128
   self nextSearchStepVisibleHolder value ifTrue:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   129
       self step.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   130
       ^ true.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   131
   ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   132
   ^ super keyPressCursorRightInMatchingObjectsView
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   133
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   134
    "Created: / 23-01-2015 / 22:45:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   135
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   136
370
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
!Navigator methodsFor:'initialization'!
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
initialize
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    super initialize.
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   141
    steps := OrderedCollection new: 3.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   142
    self push: 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   143
        (NavigatorStep for: 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   144
            (CompositeProcessor 
370
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
                    with: ClassSearchProcessor new 
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   146
                    with: ImplementorSearchProcessor new))
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   147
        update: false.
370
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    "Created: / 10-01-2015 / 07:03:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   150
    "Modified: / 24-01-2015 / 00:25:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
370
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
! !
b02030d796d8 Initial work on Navigator, an unified search dialog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   153
!Navigator methodsFor:'private-steps'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   154
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   155
push: aNavigatorStep
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   156
    self push: aNavigatorStep update: true
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   157
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   158
    "Created: / 23-01-2015 / 21:01:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   159
    "Modified: / 24-01-2015 / 00:24:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   160
!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   161
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   162
push: aNavigatorStep update: update
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   163
    steps addLast: aNavigatorStep.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   164
    processor := aNavigatorStep processor.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   165
    update ifTrue:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   166
        self matchPatternHolder value: nil.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   167
    ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   168
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   169
    "Created: / 24-01-2015 / 00:24:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
423
60c930c93819 dialogs: performance cleanup - perform (expensive) list computation always in background.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 393
diff changeset
   170
    "Modified: / 21-02-2015 / 17:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   171
!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   172
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   173
step
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   174
    | selection step |
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   175
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   176
    selection := self matchingObjectsSelection.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   177
    matchingObjectsMultiselect ifTrue:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   178
        selection := selection size == 1 ifTrue:[ selection anElement ] ifFalse:[ nil ]
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   179
    ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   180
    step := NavigatorStep for: (processor processorForNextStepFor: selection).
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   181
    self push: step.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   182
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   183
    "Created: / 23-01-2015 / 22:48:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   184
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 370
diff changeset
   185
393
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   186
!Navigator class methodsFor:'documentation'!
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   187
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   188
version_HG
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   189
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   190
    ^ '$Changeset: <not expanded> $'
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   191
! !
405c5a5c1cec Navigator: open a full class browser when navigating ro class / method
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 378
diff changeset
   192