SmallSense__CompletionView.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 25 Oct 2017 23:42:41 +0100
changeset 1058 6d4bf422a7dd
parent 888 73fac35edb5f
child 1062 3e56a34918b6
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:
888
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
     1
"{ Encoding: utf8 }"
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
     2
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     3
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     4
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
374
e65bd2bf892a Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 278
diff changeset
     5
Copyright (C) 2013-2015 Jan Vrany
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     6
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     7
This library is free software; you can redistribute it and/or
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     8
modify it under the terms of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     9
License as published by the Free Software Foundation; either
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    10
version 2.1 of the License. 
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    11
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    12
This library is distributed in the hope that it will be useful,
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    13
but WITHOUT ANY WARRANTY; without even the implied warranty of
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    15
Lesser General Public License for more details.
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    16
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    17
You should have received a copy of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    18
License along with this library; if not, write to the Free Software
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    19
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    20
"
249
8bc64027b189 Package renamed to stx:goodies/smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    21
"{ Package: 'stx:goodies/smallsense' }"
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"{ NameSpace: SmallSense }"
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
SimpleView subclass:#CompletionView
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    26
	instanceVariableNames:'completionController completionContext list listHolder listView
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    27
		selectionHolder helpHolder helpView'
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	classVariableNames:''
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	poolDictionaries:''
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	category:'SmallSense-Core-Interface'
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    33
!CompletionView class methodsFor:'documentation'!
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    34
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    35
copyright
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    36
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    37
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
374
e65bd2bf892a Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 278
diff changeset
    38
Copyright (C) 2013-2015 Jan Vrany
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    39
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    40
This library is free software; you can redistribute it and/or
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    41
modify it under the terms of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    42
License as published by the Free Software Foundation; either
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    43
version 2.1 of the License. 
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    44
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    45
This library is distributed in the hope that it will be useful,
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    46
but WITHOUT ANY WARRANTY; without even the implied warranty of
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    47
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    48
Lesser General Public License for more details.
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    49
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    50
You should have received a copy of the GNU Lesser General Public
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    51
License along with this library; if not, write to the Free Software
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    52
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    53
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    54
! !
194
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    55
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
!CompletionView methodsFor:'accessing'!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    58
completionContext
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    59
    ^ completionContext
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    60
!
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    61
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    62
completionContext:aCompletionContext
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    63
    | node |
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    64
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    65
    completionContext := aCompletionContext.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    66
    node := completionContext node.
278
696843cd1f9d Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
    67
    (node notNil and:[node askFor:#isMessage]) ifTrue:[ 
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    68
        helpHolder value: 'Receiver type: ', node receiver inferedType displayString
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    69
    ] ifFalse:[ 
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    70
        helpHolder value: 'Up/Down to select, Enter to paste' asText.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    71
    ].
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    72
278
696843cd1f9d Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 252
diff changeset
    73
    "Modified: / 12-08-2014 / 10:54:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    74
!
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    75
178
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    76
completionController
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    77
    ^ completionController
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    78
!
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    79
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    80
completionController:aCompletionController
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    81
    completionController := aCompletionController.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    82
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    83
    "Modified: / 04-04-2014 / 14:53:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
178
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    84
!
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    85
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
font: aFont
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    super font: aFont.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    listView font: aFont.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    "Created: / 27-09-2013 / 14:03:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
list
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    ^ list
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
list: aCollection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    list :=  aCollection.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    listHolder value: aCollection.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   100
    self completionContext: (aCollection notEmptyOrNil ifTrue:[aCollection anElement context] ifFalse:[ nil ]).
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    "Created: / 27-09-2013 / 14:02:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   103
    "Modified: / 04-04-2014 / 14:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
selection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ^ (listView value at: selectionHolder value).
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    "Created: / 27-09-2013 / 15:41:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
selection: po
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    selectionHolder value: (listHolder value identityIndexOf: po)
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    "Created: / 27-09-2013 / 16:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
178
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   118
!CompletionView methodsFor:'actions'!
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   119
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   120
complete: index
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   121
    self assert: selectionHolder value == index.
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   122
    completionController complete.
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   123
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   124
    "Created: / 27-02-2014 / 10:09:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   125
! !
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   126
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
!CompletionView methodsFor:'event handling'!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
keyPress:key x:x y:y
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    ^ listView keyPress:key x:x y:y
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    "Created: / 27-09-2013 / 14:05:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   133
    "Modified: / 31-03-2014 / 22:53:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
!CompletionView methodsFor:'initialization & release'!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
initialize
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   139
    | listViewScroller listViewScrollerLayout helpViewLayout |
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    super initialize.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    listHolder := ValueHolder new.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
    selectionHolder := ValueHolder new.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   144
    helpHolder := ValueHolder new.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   145
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   146
    listViewScrollerLayout := LayoutFrame origin: 0.0 @ 0.0  corner: 1.0 @ 1.0.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   147
    listViewScrollerLayout bottomOffset: -20.
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    listViewScroller := ScrollableView for: SelectionInListModelView.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   149
    listViewScroller layout: listViewScrollerLayout.
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    self addSubView: listViewScroller.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   151
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    listView := listViewScroller scrolledView.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    listView listHolder: listHolder.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    listView model: selectionHolder.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    listView highlightMode: #line.
178
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
   156
    listView doubleClickAction:[:index | self complete: index ].
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   157
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   158
    helpViewLayout := LayoutFrame origin: 0.0 @ 1.0  corner: 1.0 @ 1.0.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   159
    helpViewLayout topOffset: -20.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   160
    helpView := Label new.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   161
    helpView adjust: #left.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   162
    helpView labelChannel: helpHolder.  
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   163
    helpView layout: helpViewLayout.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   164
    self addSubView: helpView.  
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   165
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    self extent: 400 @ 250
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    "Created: / 27-09-2013 / 13:56:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   169
    "Modified: / 04-04-2014 / 15:03:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
!CompletionView methodsFor:'queries'!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
hasSelection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    ^listView hasSelection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
    "Created: / 27-09-2013 / 14:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
isPopUpView
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    ^ true
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
    "Created: / 27-09-2013 / 13:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   186
!CompletionView methodsFor:'redrawing'!
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   187
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   188
flash
888
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   189
    "delegate"
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   190
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   191
    listView flash.
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   192
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   193
    "Created: / 31-03-2014 / 22:56:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
888
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   194
!
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   195
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   196
flash:message withColor:flashColor
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   197
    "delegate"
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   198
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   199
    listView flash:message withColor:flashColor.
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   200
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   201
    "Created: / 31-03-2014 / 22:56:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   202
! !
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   203
194
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   204
!CompletionView class methodsFor:'documentation'!
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   205
888
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   206
version
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   207
    ^ '$Header$'
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   208
!
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   209
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   210
version_CVS
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   211
    ^ '$Path: stx/goodies/smallsense/SmallSense__CompletionView.st, Version: 1.0, User: cg, Time: 2015-09-01T18:58:15.172+02$'
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   212
!
73fac35edb5f initial checkin
Claus Gittinger <cg@exept.de>
parents: 374
diff changeset
   213
194
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   214
version_HG
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   215
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   216
    ^ '$Changeset: <not expanded> $'
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   217
! !
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   218