SmallSense__CompletionView.st
author Claus Gittinger <cg@exept.de>
Fri, 18 Nov 2016 11:56:15 +0100
branchcvs_MAIN
changeset 996 f5c13fa1943d
parent 907 d00ccb8ff51f
child 1052 14b7450629a5
permissions -rw-r--r--
#OTHER by cg documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     1
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     2
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     3
Copyright (C) 2013-2014 Jan Vrany
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     4
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
     5
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
     6
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
     7
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
     8
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
     9
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    10
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
    11
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
    12
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
    13
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
    14
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    15
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
    16
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
    17
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
    18
"
249
8bc64027b189 Package renamed to stx:goodies/smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    19
"{ Package: 'stx:goodies/smallsense' }"
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ NameSpace: SmallSense }"
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
SimpleView subclass:#CompletionView
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    24
	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
    25
		selectionHolder helpHolder helpView'
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	classVariableNames:''
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	poolDictionaries:''
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	category:'SmallSense-Core-Interface'
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
252
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    31
!CompletionView class methodsFor:'documentation'!
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    32
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    33
copyright
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
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    36
Copyright (C) 2013-2014 Jan Vrany
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    37
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    38
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
    39
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
    40
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
    41
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
    42
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    43
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
    44
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
    45
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
    46
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
    47
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    48
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
    49
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
    50
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
    51
"
feba6ee5c814 Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 249
diff changeset
    52
! !
194
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    53
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
!CompletionView methodsFor:'accessing'!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    56
completionContext
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    57
    ^ completionContext
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    58
!
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    59
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    60
completionContext:aCompletionContext
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    61
    | node |
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    62
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    63
    completionContext := aCompletionContext.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    64
    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
    65
    (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
    66
        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
    67
    ] ifFalse:[ 
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    68
        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
    69
    ].
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    70
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
    71
    "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
    72
!
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    73
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
    74
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
    75
    ^ 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
    76
!
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
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
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
    79
    completionController := aCompletionController.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    80
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    81
    "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
    82
!
f98d96568600 Fix for issue #8: allow for selecting completion using mouse and doubleclick.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    83
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
font: aFont
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    super font: aFont.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    listView font: aFont.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    "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
    89
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
list
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    ^ list
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
list: aCollection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    list :=  aCollection.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    listHolder value: aCollection.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    98
    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
    99
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    "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
   101
    "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
   102
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
selection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    ^ (listView value at: selectionHolder value).
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    "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
   108
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
selection: po
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
    selectionHolder value: (listHolder value identityIndexOf: po)
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    "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
   114
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
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
   116
!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
   117
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
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
   119
    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
   120
    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
   121
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
    "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
   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
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
!CompletionView methodsFor:'event handling'!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
keyPress:key x:x y:y
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    ^ listView keyPress:key x:x y:y
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    "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
   131
    "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
   132
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
!CompletionView methodsFor:'initialization & release'!
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
initialize
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   137
    | listViewScroller listViewScrollerLayout helpViewLayout |
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    super initialize.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    listHolder := ValueHolder new.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    selectionHolder := ValueHolder new.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   142
    helpHolder := ValueHolder new.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   143
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   144
    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
   145
    listViewScrollerLayout bottomOffset: -20.
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    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
   147
    listViewScroller layout: listViewScrollerLayout.
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    self addSubView: listViewScroller.
190
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   149
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    listView := listViewScroller scrolledView.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    listView listHolder: listHolder.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    listView model: selectionHolder.
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    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
   154
    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
   155
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   156
    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
   157
    helpViewLayout topOffset: -20.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   158
    helpView := Label new.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   159
    helpView adjust: #left.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   160
    helpView labelChannel: helpHolder.  
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   161
    helpView layout: helpViewLayout.
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   162
    self addSubView: helpView.  
c4dbecf1d9a7 Added a little help text to completion view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   163
108
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    self extent: 400 @ 250
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    "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
   167
    "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
   168
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
!CompletionView methodsFor:'queries'!
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
hasSelection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    ^listView hasSelection
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    "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
   176
!
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
isPopUpView
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    ^ true
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    "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
   182
! !
71471dc81e77 Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   184
!CompletionView methodsFor:'redrawing'!
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   186
flash
875
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   187
    "delegate"
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   188
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   189
    listView flash.
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   190
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   191
    "Created: / 31-03-2014 / 22:56:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
875
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   192
!
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   193
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   194
flash:message withColor:flashColor
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   195
    "delegate"
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   196
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   197
    listView flash:message withColor:flashColor.
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   198
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   199
    "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
   200
! !
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 178
diff changeset
   201
194
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   202
!CompletionView class methodsFor:'documentation'!
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   203
875
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   204
version
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   205
    ^ '$Header$'
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   206
!
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   207
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   208
version_CVS
907
d00ccb8ff51f Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 875
diff changeset
   209
    ^ '$Header$'
875
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   210
!
2e7c91b6773a initial checkin
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   211
194
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   212
version_HG
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   213
67f1d06c1b88 Fix in CompletionView - CompletionContext>>node could be nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
   214
    ^ '$Changeset: <not expanded> $'
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