Smalltalk current createPackage: 'Helios-Commands'! Object subclass: #HLCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLCommand methodsFor: 'accessing'! documentation ^ self class documentation ! key ^ self class key ! label ^ self class label ! ! !HLCommand methodsFor: 'converting'! asActionBinding ^ (HLBindingAction on: self key labelled: self label) callback: [ self execute ] ! asBinding ^ self isBindingGroup ifTrue: [ self asGroupBinding ] ifFalse: [ self asActionBinding ] ! asGroupBinding ^ HLBindingGroup on: self key labelled: self label ! ! !HLCommand methodsFor: 'executing'! execute ! ! !HLCommand methodsFor: 'registration'! registerOn: aBinding ^ aBinding add: self asBinding ! ! !HLCommand methodsFor: 'testing'! isBindingGroup ^ (self class methodDictionary includesKey: 'execute') not ! ! !HLCommand class methodsFor: 'accessing'! concreteSubclasses ^ self subclasses select: [ :each | each isConcrete ] ! documentation ^ '' ! key ^ nil ! label ^ '' ! ! !HLCommand class methodsFor: 'registration'! registerConcreteClassesOn: aBinding self concreteSubclasses do: [ :each | | binding | binding := each registerOn: aBinding. binding isBindingGroup ifTrue: [ each registerConcreteClassesOn: binding ] ] ! registerOn: aBinding ^ self new registerOn: aBinding ! ! !HLCommand class methodsFor: 'testing'! isConcrete ^ self key notNil ! ! HLCommand subclass: #HLCloseTabCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLCloseTabCommand methodsFor: 'executing'! execute HLManager current removeActiveTab ! ! !HLCloseTabCommand class methodsFor: 'accessing'! key ^ 87 ! label ^ 'Close tab' ! ! HLCommand subclass: #HLModelCommand instanceVariableNames: 'model' package: 'Helios-Commands'! !HLModelCommand methodsFor: 'accessing'! model ^ model ! model: aModel model := aModel ! ! !HLModelCommand class methodsFor: 'instance creation'! for: aModel ^ self new ! ! !HLModelCommand class methodsFor: 'registration'! registerConcreteClassesOn: aBinding for: aModel self concreteSubclasses do: [ :each | | binding | binding := each registerOn: aBinding for: aModel. binding isBindingGroup ifTrue: [ each registerConcreteClassesOn: binding for: aModel ] ] ! registerOn: aBinding for: aModel ^ (self for: aModel) registerOn: aBinding ! ! HLModelCommand subclass: #HLBrowserCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLBrowserCommand class methodsFor: 'instance creation'! for: aBrowserModel ^ self new model: aBrowserModel; yourself ! ! HLBrowserCommand subclass: #HLGoToCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLGoToCommand class methodsFor: 'accessing'! key ^ 71 ! label ^ 'Go to' ! ! HLGoToCommand subclass: #HLGoToClassesCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLGoToClassesCommand methodsFor: 'executing'! execute self model focusOnClasses ! ! !HLGoToClassesCommand class methodsFor: 'accessing'! key "c" ^ 67 ! label ^ 'Classes' ! ! HLGoToCommand subclass: #HLGoToMethodsCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLGoToMethodsCommand methodsFor: 'executing'! execute self model focusOnMethods ! ! !HLGoToMethodsCommand class methodsFor: 'accessing'! key "m" ^ 77 ! label ^ 'Methods' ! ! HLGoToCommand subclass: #HLGoToPackagesCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLGoToPackagesCommand methodsFor: 'executing'! execute self model focusOnPackages ! ! !HLGoToPackagesCommand class methodsFor: 'accessing'! key "p" ^ 80 ! label ^ 'Packages' ! ! HLGoToCommand subclass: #HLGoToProtocolsCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLGoToProtocolsCommand methodsFor: 'executing'! execute self model focusOnProtocols ! ! !HLGoToProtocolsCommand class methodsFor: 'accessing'! key "p" ^ 84 ! label ^ 'Protocols' ! ! HLGoToCommand subclass: #HLGoToSourceCodeCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLGoToSourceCodeCommand methodsFor: 'executing'! execute self model focusOnSourceCode ! ! !HLGoToSourceCodeCommand class methodsFor: 'accessing'! key "s" ^ 83 ! label ^ 'Source code' ! ! HLBrowserCommand subclass: #HLMoveToCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLMoveToCommand class methodsFor: 'accessing'! key ^ 77 ! label ^ 'Move' ! ! HLMoveToCommand subclass: #HLMoveMethodToCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLMoveMethodToCommand class methodsFor: 'accessing'! key ^ 77 ! label ^ 'Method' ! ! HLMoveMethodToCommand subclass: #HLMoveMethodToClassCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLMoveMethodToClassCommand methodsFor: 'executing'! execute ! ! !HLMoveMethodToClassCommand class methodsFor: 'accessing'! key ^ 67 ! label ^ 'to class' ! ! HLMoveMethodToCommand subclass: #HLMoveMethodToProtocolCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLMoveMethodToProtocolCommand methodsFor: 'executing'! execute ! ! !HLMoveMethodToProtocolCommand class methodsFor: 'accessing'! key ^ 84 ! label ^ 'to protocol' ! ! HLBrowserCommand subclass: #HLToggleCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLToggleCommand class methodsFor: 'accessing'! key ^ 84 ! label ^ 'Toggle' ! ! HLToggleCommand subclass: #HLToggleClassSideCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLToggleClassSideCommand methodsFor: 'executing'! execute self model showInstance: false ! ! !HLToggleClassSideCommand class methodsFor: 'accessing'! key "c" ^ 67 ! label ^ 'Class side' ! ! HLToggleCommand subclass: #HLToggleInstanceSideCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLToggleInstanceSideCommand methodsFor: 'executing'! execute self model showInstance: true ! ! !HLToggleInstanceSideCommand class methodsFor: 'accessing'! key "i" ^ 73 ! label ^ 'Instance side' ! ! HLCommand subclass: #HLOpenCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLOpenCommand class methodsFor: 'accessing'! key ^ 79 ! label ^ 'Open' ! ! HLOpenCommand subclass: #HLOpenBrowserCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLOpenBrowserCommand methodsFor: 'executing'! execute ^ HLBrowser openAsTab ! ! !HLOpenBrowserCommand class methodsFor: 'accessing'! key ^ 66 ! label ^ 'Browser' ! ! HLOpenCommand subclass: #HLOpenTranscriptCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLOpenTranscriptCommand methodsFor: 'executing'! execute ^ HLTranscript openAsTab ! ! !HLOpenTranscriptCommand class methodsFor: 'accessing'! key ^ 84 ! label ^ 'Transcript' ! ! HLOpenCommand subclass: #HLOpenWorkspaceCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLOpenWorkspaceCommand methodsFor: 'executing'! execute ^ HLCodeWidget openAsTab ! ! !HLOpenWorkspaceCommand class methodsFor: 'accessing'! key ^ 87 ! label ^ 'Workspace' ! ! HLCommand subclass: #HLViewCommand instanceVariableNames: '' package: 'Helios-Commands'! !HLViewCommand class methodsFor: 'accessing'! label ^ 'View' ! !