Squeak Class Documentation category index | class index  
 
SimpleHierarchicalListMorph
  category: Tools-Explorer
  superclass: ScrollPane
  subclasses: EToyHierarchicalTextMorph

Contributed by Bob Arning as part of the ObjectExplorer package.
Don't blame him if it's not perfect. We wanted to get it out for people to play with.

instance methods
  accessing
  itemFromPoint:

  as yet unclassified
  addMorphsTo:from:allowSorting:withExpandedItems:atLevel:
addSubmorphsAfter:fromCollection:allowSorting:
adjustSubmorphPositions
columns
columns:
expandedForm
getCurrentSelectionItem
indentingItemClass
insertNewMorphs:
notExpandedForm
noteRemovalOfAll:
scrollDeltaHeight
selectionOneOf:
sortingSelector:

  drawing
  drawOn:
highlightSelection
unhighlightSelection

  dropping/grabbing
  acceptDroppingMorph:event:
potentialDropMorph
potentialDropMorph:
resetPotentialDropMorph
startDrag:
wantsDroppedMorph:event:

  events
  expand:to:
expandAll:except:
handleMouseMove:
handlesKeyboard:
handlesMouseOverDragging:
mouseDown:
mouseEnter:
mouseEnterDragging:
mouseLeaveDragging:
mouseMove:
mouseUp:
toggleExpandedState:event:

  initialization
  autoDeselect:
currentlyExpanded
extent:
initialize
installModelIn:
list:
listItemHeight
on:list:selected:changeSelected:menu:keystroke:

  model access
  getList
keyStroke:

  obsolete
  mouseDown:onItem:
mouseEnterDragging:onItem:
mouseLeaveDragging:onItem:
removeObsoleteEventHandlers
startDrag:onItem:

  selection
  maximumSelection
minimumSelection
numSelectionsInView
selectedMorph
selectedMorph:
selection:
selectionIndex:
setSelectedMorph:

  updating
  update:

class methods
  instance creation
  on:list:selected:changeSelected:
on:list:selected:changeSelected:menu:
on:list:selected:changeSelected:menu:keystroke:

instance methods
  accessing top  
 

itemFromPoint:

Return the list element (morph) at the given point or nil if outside


  as yet unclassified top  
 

addMorphsTo:from:allowSorting:withExpandedItems:atLevel:


 

addSubmorphsAfter:fromCollection:allowSorting:


 

adjustSubmorphPositions


 

columns


 

columns:


 

expandedForm


 

getCurrentSelectionItem


 

indentingItemClass


 

insertNewMorphs:


 

notExpandedForm


 

noteRemovalOfAll:


 

scrollDeltaHeight

Return the increment in pixels which this pane should be scrolled (normally a subclass responsibility).


 

selectionOneOf:

Set the selection to the first item in the list which is represented by one of my submorphs


 

sortingSelector:


  drawing top  
 

drawOn:


 

highlightSelection


 

unhighlightSelection


  dropping/grabbing top  
 

acceptDroppingMorph:event:

This message is sent when a morph is dropped onto a morph that has agreed to accept the dropped morph by responding 'true' to the wantsDroppedMorph:Event: message. This default implementation just adds the given morph to the receiver.


 

potentialDropMorph


 

potentialDropMorph:


 

resetPotentialDropMorph


 

startDrag:

Handle a double-click event. This message is only sent to clients that request it by sending #waitForClicksOrDrag:event: to the initiating hand in their mouseDown: method. This default implementation does nothing.


 

wantsDroppedMorph:event:

Return true if the receiver wishes to accept the given morph, which is being dropped by a hand in response to the given event. Note that for a successful drop operation both parties need to agree. The symmetric check is done automatically via aMorph wantsToBeDroppedInto: self.


  events top  
 

expand:to:


 

expandAll:except:


 

handleMouseMove:

Reimplemented because we really want #mouseMove when a morph is dragged around


 

handlesKeyboard:

Return true if the receiver wishes to handle the given keyboard event


 

handlesMouseOverDragging:

Return true if I want to receive mouseEnterDragging: and mouseLeaveDragging: when the hand drags something over me (button up or button down), or when the mouse button is down but there is no mouseDown recipient. The default response is false, except if you have added sensitivity to mouseEnterLaden: or mouseLeaveLaden:, using the on:send:to: mechanism.


 

mouseDown:

Handle a mouse down event. The default response is to let my eventHandler, if any, handle it.


 

mouseEnter:

Handle a mouseEnter event, meaning the mouse just entered my bounds with no button pressed. The default response is to let my eventHandler, if any, handle it.


 

mouseEnterDragging:

Handle a mouseEnterDragging event, meaning the mouse just entered my bounds with a button pressed or laden with submorphs. The default response is to let my eventHandler, if any, handle it, or else to do nothing.


 

mouseLeaveDragging:

Handle a mouseLeaveLaden event, meaning the mouse just left my bounds with a button pressed or laden with submorphs. The default response is to let my eventHandler, if any, handle it; else to do nothing.


 

mouseMove:

If pane is not full, pass the event to the last submorph,
assuming it is the most appropriate recipient (!).


 

mouseUp:

If pane is not full, pass the event to the last submorph,
assuming it is the most appropriate recipient (!)


 

toggleExpandedState:event:

self setSelectedMorph: aMorph.


  initialization top  
 

autoDeselect:

Enable/disable autoDeselect (see class comment)


 

currentlyExpanded


 

extent:


 

initialize


 

installModelIn:

No special inits for new components


 

list:


 

listItemHeight

This should be cleaned up. The list should get spaced by this parameter.


 

on:list:selected:changeSelected:menu:keystroke:


  model access top  
 

getList

Answer the list to be displayed.


 

keyStroke:

Process potential command keys


  obsolete top  
 

mouseDown:onItem:


 

mouseEnterDragging:onItem:


 

mouseLeaveDragging:onItem:


 

removeObsoleteEventHandlers


 

startDrag:onItem:


  selection top  
 

maximumSelection


 

minimumSelection


 

numSelectionsInView


 

selectedMorph


 

selectedMorph:


 

selection:

Called from outside to request setting a new selection.
Assumes scroller submorphs is exactly our list.
Note: MAY NOT work right if list includes repeated items


 

selectionIndex:

Called internally to select the index-th item.


 

setSelectedMorph:


  updating top  
 

update:

Receive a change notice from an object of whom the receiver is a
dependent. The default behavior is to do nothing; a subclass might want
to change itself in some way.


class methods
  instance creation top  
 

on:list:selected:changeSelected:

Create a 'pluggable' list view on the given model parameterized by the given message selectors. See ListView>>aboutPluggability comment.


 

on:list:selected:changeSelected:menu:

Create a 'pluggable' list view on the given model parameterized by the given message selectors. See ListView>>aboutPluggability comment.


 

on:list:selected:changeSelected:menu:keystroke:

Create a 'pluggable' list view on the given model parameterized by the given message selectors. See ListView>>aboutPluggability comment.