|  | @@ -13,7 +13,7 @@ labelFor: aWidget
 | 
											
												
													
														|  |  	maxSize := 15.
 |  |  	maxSize := 15.
 | 
											
												
													
														|  |  	label := aWidget label copyFrom: 0 to: (aWidget label size min: maxSize).
 |  |  	label := aWidget label copyFrom: 0 to: (aWidget label size min: maxSize).
 | 
											
												
													
														|  |  	aWidget label size > maxSize ifTrue: [
 |  |  	aWidget label size > maxSize ifTrue: [
 | 
											
												
													
														|  | -        	label := label, '...'].
 |  | 
 | 
											
												
													
														|  | 
 |  | +		label := label, '...'].
 | 
											
												
													
														|  |  	^label
 |  |  	^label
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -147,15 +147,15 @@ renderTabFor: aWidget on: html
 | 
											
												
													
														|  |  	li with: [
 |  |  	li with: [
 | 
											
												
													
														|  |  		html span class: 'ltab'.
 |  |  		html span class: 'ltab'.
 | 
											
												
													
														|  |  		html span
 |  |  		html span
 | 
											
												
													
														|  | -     	    		class: 'mtab';
 |  | 
 | 
											
												
													
														|  | -      	    		with: [
 |  | 
 | 
											
												
													
														|  | -        			aWidget canBeClosed ifTrue: [
 |  | 
 | 
											
												
													
														|  | -	    				html span 
 |  | 
 | 
											
												
													
														|  | 
 |  | +			class: 'mtab';
 | 
											
												
													
														|  | 
 |  | +			with: [
 | 
											
												
													
														|  | 
 |  | +				aWidget canBeClosed ifTrue: [
 | 
											
												
													
														|  | 
 |  | +					html span 
 | 
											
												
													
														|  |  						class: 'close';
 |  |  						class: 'close';
 | 
											
												
													
														|  |  						with: 'x';
 |  |  						with: 'x';
 | 
											
												
													
														|  |  					onClick: [self closeTab: aWidget]].
 |  |  					onClick: [self closeTab: aWidget]].
 | 
											
												
													
														|  | -	    		html span with: (self labelFor: aWidget)].
 |  | 
 | 
											
												
													
														|  | -        	html span class: 'rtab'];
 |  | 
 | 
											
												
													
														|  | 
 |  | +			html span with: (self labelFor: aWidget)].
 | 
											
												
													
														|  | 
 |  | +		html span class: 'rtab'];
 | 
											
												
													
														|  |  	onClick: [self selectTab: aWidget]
 |  |  	onClick: [self selectTab: aWidget]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -166,9 +166,9 @@ renderTabs
 | 
											
												
													
														|  |  	    html li
 |  |  	    html li
 | 
											
												
													
														|  |  		class: 'newtab';
 |  |  		class: 'newtab';
 | 
											
												
													
														|  |  		with: [
 |  |  		with: [
 | 
											
												
													
														|  | -                	html span class: 'ltab'.
 |  | 
 | 
											
												
													
														|  | -                	html span class: 'mtab'; with: ' + '.
 |  | 
 | 
											
												
													
														|  | -                	html span class: 'rtab'];
 |  | 
 | 
											
												
													
														|  | 
 |  | +			html span class: 'ltab'.
 | 
											
												
													
														|  | 
 |  | +			html span class: 'mtab'; with: ' + '.
 | 
											
												
													
														|  | 
 |  | +			html span class: 'rtab'];
 | 
											
												
													
														|  |  		onClick: [self newBrowserTab]]
 |  |  		onClick: [self newBrowserTab]]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -182,7 +182,7 @@ renderToolbarOn: html
 | 
											
												
													
														|  |  			input onKeyPress: [:event |
 |  |  			input onKeyPress: [:event |
 | 
											
												
													
														|  |  				event keyCode = 13 ifTrue: [
 |  |  				event keyCode = 13 ifTrue: [
 | 
											
												
													
														|  |  				self search: input asJQuery val]].
 |  |  				self search: input asJQuery val]].
 | 
											
												
													
														|  | -                	html div id: 'jt_close'; onClick: [self close]]
 |  | 
 | 
											
												
													
														|  | 
 |  | +			html div id: 'jt_close'; onClick: [self close]]
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  !TabManager methodsFor: 'updating'!
 |  |  !TabManager methodsFor: 'updating'!
 | 
											
										
											
												
													
														|  | @@ -411,7 +411,7 @@ clear
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  TabWidget subclass: #Browser
 |  |  TabWidget subclass: #Browser
 | 
											
												
													
														|  | -	instanceVariableNames: 'selectedCategory selectedClass selectedProtocol selectedMethod commitButton categoriesList classesList protocolsList methodsList sourceArea tabsList selectedTab saveButton classButtons methodButtons unsavedChanges'
 |  | 
 | 
											
												
													
														|  | 
 |  | +	instanceVariableNames: 'selectedPackage selectedClass selectedProtocol selectedMethod commitButton packagesList classesList protocolsList methodsList sourceArea tabsList selectedTab saveButton classButtons methodButtons unsavedChanges renameButton deleteButton'
 | 
											
												
													
														|  |  	category: 'IDE'!
 |  |  	category: 'IDE'!
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  !Browser methodsFor: 'accessing'!
 |  |  !Browser methodsFor: 'accessing'!
 | 
											
										
											
												
													
														|  | @@ -422,18 +422,18 @@ label
 | 
											
												
													
														|  |  	ifNotNil: ['Browser: ', selectedClass name]
 |  |  	ifNotNil: ['Browser: ', selectedClass name]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -categories
 |  | 
 | 
											
												
													
														|  | -    | categories |
 |  | 
 | 
											
												
													
														|  | -    categories := Array new.
 |  | 
 | 
											
												
													
														|  | 
 |  | +packages
 | 
											
												
													
														|  | 
 |  | +    | packages |
 | 
											
												
													
														|  | 
 |  | +    packages := Array new.
 | 
											
												
													
														|  |      Smalltalk current classes do: [:each |
 |  |      Smalltalk current classes do: [:each |
 | 
											
												
													
														|  | -	(categories includes: each category) ifFalse: [
 |  | 
 | 
											
												
													
														|  | -	    categories add: each category]].
 |  | 
 | 
											
												
													
														|  | -    ^categories sort
 |  | 
 | 
											
												
													
														|  | 
 |  | +	(packages includes: each category) ifFalse: [
 | 
											
												
													
														|  | 
 |  | +	    packages add: each category]].
 | 
											
												
													
														|  | 
 |  | +    ^packages sort
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  classes
 |  |  classes
 | 
											
												
													
														|  |      ^(Smalltalk current classes 
 |  |      ^(Smalltalk current classes 
 | 
											
												
													
														|  | -	select: [:each | each category = selectedCategory])
 |  | 
 | 
											
												
													
														|  | 
 |  | +	select: [:each | each category = selectedPackage])
 | 
											
												
													
														|  |  	sort: [:a :b | a name < b name]
 |  |  	sort: [:a :b | a name < b name]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -570,9 +570,9 @@ compile
 | 
											
												
													
														|  |      selectedTab = #comment 
 |  |      selectedTab = #comment 
 | 
											
												
													
														|  |  	ifTrue: [
 |  |  	ifTrue: [
 | 
											
												
													
														|  |  			selectedClass ifNotNil: [
 |  |  			selectedClass ifNotNil: [
 | 
											
												
													
														|  | -	    			self compileClassComment]	]
 |  | 
 | 
											
												
													
														|  | 
 |  | +				self compileClassComment]	]
 | 
											
												
													
														|  |  	ifFalse: [
 |  |  	ifFalse: [
 | 
											
												
													
														|  | -		    	(selectedProtocol notNil or: [selectedMethod notNil])
 |  | 
 | 
											
												
													
														|  | 
 |  | +			(selectedProtocol notNil or: [selectedMethod notNil])
 | 
											
												
													
														|  |  				ifFalse: [self compileDefinition]
 |  |  				ifFalse: [self compileDefinition]
 | 
											
												
													
														|  |  				ifTrue: [self compileMethodDefinition]	]
 |  |  				ifTrue: [self compileMethodDefinition]	]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
										
											
												
													
														|  | @@ -618,25 +618,6 @@ compileDefinition
 | 
											
												
													
														|  |  	updateClassesList
 |  |  	updateClassesList
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -commitCategory
 |  | 
 | 
											
												
													
														|  | -    selectedCategory ifNotNil: [
 |  | 
 | 
											
												
													
														|  | -	(Ajax url: self class commitPathJs, '/', selectedCategory, '.js')
 |  | 
 | 
											
												
													
														|  | -	    at: 'type' put: 'PUT';
 |  | 
 | 
											
												
													
														|  | -	    at: 'data' put: (Exporter new exportCategory: selectedCategory);
 |  | 
 | 
											
												
													
														|  | -	    at: 'error' put: [self alert: 'Commit failed!!'];
 |  | 
 | 
											
												
													
														|  | -	    send.
 |  | 
 | 
											
												
													
														|  | -	(Ajax url: self class commitPathJs, '/', selectedCategory, '.deploy.js')
 |  | 
 | 
											
												
													
														|  | -	    at: 'type' put: 'PUT';
 |  | 
 | 
											
												
													
														|  | -	    at: 'data' put: (StrippedExporter new exportCategory: selectedCategory);
 |  | 
 | 
											
												
													
														|  | -	    at: 'error' put: [self alert: 'Commit failed!!'];
 |  | 
 | 
											
												
													
														|  | -	    send.
 |  | 
 | 
											
												
													
														|  | -	(Ajax url: self class commitPathSt, '/', selectedCategory, '.st')
 |  | 
 | 
											
												
													
														|  | -	    at: 'type' put: 'PUT';
 |  | 
 | 
											
												
													
														|  | -	    at: 'data' put: (ChunkExporter new exportCategory: selectedCategory);
 |  | 
 | 
											
												
													
														|  | -	    at: 'error' put: [self alert: 'Commit failed!!'];
 |  | 
 | 
											
												
													
														|  | -	    send]
 |  | 
 | 
											
												
													
														|  | -!
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  cancelChanges
 |  |  cancelChanges
 | 
											
												
													
														|  |      ^unsavedChanges 
 |  |      ^unsavedChanges 
 | 
											
												
													
														|  |  	ifTrue: [self confirm: 'Cancel changes?']
 |  |  	ifTrue: [self confirm: 'Cancel changes?']
 | 
											
										
											
												
													
														|  | @@ -685,7 +666,7 @@ addNewProtocol
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  selectCategory: aCategory
 |  |  selectCategory: aCategory
 | 
											
												
													
														|  |      self cancelChanges ifTrue: [
 |  |      self cancelChanges ifTrue: [
 | 
											
												
													
														|  | -	selectedCategory := aCategory.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	selectedPackage := aCategory.
 | 
											
												
													
														|  |  	selectedClass := selectedProtocol := selectedMethod :=  nil.
 |  |  	selectedClass := selectedProtocol := selectedMethod :=  nil.
 | 
											
												
													
														|  |  	self resetClassesList.
 |  |  	self resetClassesList.
 | 
											
												
													
														|  |  	self 
 |  |  	self 
 | 
											
										
											
												
													
														|  | @@ -776,6 +757,33 @@ handleSourceAreaKeyDown: anEvent
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	>
 |  |  	>
 | 
											
												
													
														|  | 
 |  | +!
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +commitPackage
 | 
											
												
													
														|  | 
 |  | +    selectedPackage ifNotNil: [
 | 
											
												
													
														|  | 
 |  | +	(Ajax url: self class commitPathJs, '/', selectedPackage, '.js')
 | 
											
												
													
														|  | 
 |  | +	    at: 'type' put: 'PUT';
 | 
											
												
													
														|  | 
 |  | +	    at: 'data' put: (Exporter new exportCategory: selectedPackage);
 | 
											
												
													
														|  | 
 |  | +	    at: 'error' put: [self alert: 'Commit failed!!'];
 | 
											
												
													
														|  | 
 |  | +	    send.
 | 
											
												
													
														|  | 
 |  | +	(Ajax url: self class commitPathJs, '/', selectedPackage, '.deploy.js')
 | 
											
												
													
														|  | 
 |  | +	    at: 'type' put: 'PUT';
 | 
											
												
													
														|  | 
 |  | +	    at: 'data' put: (StrippedExporter new exportCategory: selectedPackage);
 | 
											
												
													
														|  | 
 |  | +	    at: 'error' put: [self alert: 'Commit failed!!'];
 | 
											
												
													
														|  | 
 |  | +	    send.
 | 
											
												
													
														|  | 
 |  | +	(Ajax url: self class commitPathSt, '/', selectedPackage, '.st')
 | 
											
												
													
														|  | 
 |  | +	    at: 'type' put: 'PUT';
 | 
											
												
													
														|  | 
 |  | +	    at: 'data' put: (ChunkExporter new exportCategory: selectedPackage);
 | 
											
												
													
														|  | 
 |  | +	    at: 'error' put: [self alert: 'Commit failed!!'];
 | 
											
												
													
														|  | 
 |  | +	    send]
 | 
											
												
													
														|  | 
 |  | +!
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +renamePackage
 | 
											
												
													
														|  | 
 |  | +	self error: 'Not yet implemented'
 | 
											
												
													
														|  | 
 |  | +!
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +deletePackage
 | 
											
												
													
														|  | 
 |  | +	self error: 'Not yet implemented'
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  !Browser methodsFor: 'initialization'!
 |  |  !Browser methodsFor: 'initialization'!
 | 
											
										
											
												
													
														|  | @@ -799,12 +807,22 @@ renderTopPanelOn: html
 | 
											
												
													
														|  |      html div 
 |  |      html div 
 | 
											
												
													
														|  |  	class: 'top'; 
 |  |  	class: 'top'; 
 | 
											
												
													
														|  |  	with: [
 |  |  	with: [
 | 
											
												
													
														|  | -	    categoriesList := html ul class: 'jt_column browser categories'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	    packagesList := html ul class: 'jt_column browser packages'.
 | 
											
												
													
														|  |  	    commitButton := html button 
 |  |  	    commitButton := html button 
 | 
											
												
													
														|  |  		class: 'jt_commit';
 |  |  		class: 'jt_commit';
 | 
											
												
													
														|  | -		title: 'Commit classes in this category to disk';
 |  | 
 | 
											
												
													
														|  | -		onClick: [self commitCategory];
 |  | 
 | 
											
												
													
														|  | -		with: 'Commit category'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +		title: 'Commit classes in this package to disk';
 | 
											
												
													
														|  | 
 |  | +		onClick: [self commitPackage];
 | 
											
												
													
														|  | 
 |  | +		with: 'Commit package'.
 | 
											
												
													
														|  | 
 |  | +            renameButton := html button 
 | 
											
												
													
														|  | 
 |  | +		class: 'jt_rename';
 | 
											
												
													
														|  | 
 |  | +		title: 'Rename this package';
 | 
											
												
													
														|  | 
 |  | +		onClick: [self renamePackage];
 | 
											
												
													
														|  | 
 |  | +		with: 'Rename package'.
 | 
											
												
													
														|  | 
 |  | +            deleteButton := html button 
 | 
											
												
													
														|  | 
 |  | +		class: 'jt_delete';
 | 
											
												
													
														|  | 
 |  | +		title: 'Remove this package from the system';
 | 
											
												
													
														|  | 
 |  | +		onClick: [self renamePackage];
 | 
											
												
													
														|  | 
 |  | +		with: 'Delete package'.
 | 
											
												
													
														|  |  	    classesList := ClassesList on: self.
 |  |  	    classesList := ClassesList on: self.
 | 
											
												
													
														|  |  	    classesList renderOn: html.
 |  |  	    classesList renderOn: html.
 | 
											
												
													
														|  |  	    protocolsList := html ul class: 'jt_column browser protocols'.
 |  |  	    protocolsList := html ul class: 'jt_column browser protocols'.
 | 
											
										
											
												
													
														|  | @@ -863,13 +881,13 @@ canBeClosed
 | 
											
												
													
														|  |  !Browser methodsFor: 'updating'!
 |  |  !Browser methodsFor: 'updating'!
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateCategoriesList
 |  |  updateCategoriesList
 | 
											
												
													
														|  | -    categoriesList contents: [:html |
 |  | 
 | 
											
												
													
														|  | -	self categories do: [:each || li label |
 |  | 
 | 
											
												
													
														|  | 
 |  | +    packagesList contents: [:html |
 | 
											
												
													
														|  | 
 |  | +	self packages do: [:each || li label |
 | 
											
												
													
														|  |  	    each isEmpty 
 |  |  	    each isEmpty 
 | 
											
												
													
														|  |  		ifTrue: [label := 'Unclassified']
 |  |  		ifTrue: [label := 'Unclassified']
 | 
											
												
													
														|  |  		ifFalse: [label := each].
 |  |  		ifFalse: [label := each].
 | 
											
												
													
														|  |  	    li := html li.
 |  |  	    li := html li.
 | 
											
												
													
														|  | -	    selectedCategory = each ifTrue: [
 |  | 
 | 
											
												
													
														|  | 
 |  | +	    selectedPackage = each ifTrue: [
 | 
											
												
													
														|  |  		li class: 'selected'].
 |  |  		li class: 'selected'].
 | 
											
												
													
														|  |  	    li
 |  |  	    li
 | 
											
												
													
														|  |  		with: label;
 |  |  		with: label;
 | 
											
										
											
												
													
														|  | @@ -917,25 +935,25 @@ updateTabsList
 | 
											
												
													
														|  |  	selectedTab = #instance ifTrue: [li class: 'selected'].
 |  |  	selectedTab = #instance ifTrue: [li class: 'selected'].
 | 
											
												
													
														|  |  	li
 |  |  	li
 | 
											
												
													
														|  |  	    with: [
 |  |  	    with: [
 | 
											
												
													
														|  | -              	html span class: 'ltab'.
 |  | 
 | 
											
												
													
														|  | -              	html span class: 'mtab'; with: 'Instance'.
 |  | 
 | 
											
												
													
														|  | -              	html span class: 'rtab'];
 |  | 
 | 
											
												
													
														|  | 
 |  | +		html span class: 'ltab'.
 | 
											
												
													
														|  | 
 |  | +		html span class: 'mtab'; with: 'Instance'.
 | 
											
												
													
														|  | 
 |  | +		html span class: 'rtab'];
 | 
											
												
													
														|  |  	    onClick: [self selectTab: #instance].
 |  |  	    onClick: [self selectTab: #instance].
 | 
											
												
													
														|  |  	li := html li.
 |  |  	li := html li.
 | 
											
												
													
														|  |  	selectedTab = #class ifTrue: [li class: 'selected'].
 |  |  	selectedTab = #class ifTrue: [li class: 'selected'].
 | 
											
												
													
														|  |  	li
 |  |  	li
 | 
											
												
													
														|  |  	    with: [
 |  |  	    with: [
 | 
											
												
													
														|  | -              	html span class: 'ltab'.
 |  | 
 | 
											
												
													
														|  | -              	html span class: 'mtab'; with: 'Class'.
 |  | 
 | 
											
												
													
														|  | -              	html span class: 'rtab'];
 |  | 
 | 
											
												
													
														|  | 
 |  | +		html span class: 'ltab'.
 | 
											
												
													
														|  | 
 |  | +		html span class: 'mtab'; with: 'Class'.
 | 
											
												
													
														|  | 
 |  | +		html span class: 'rtab'];
 | 
											
												
													
														|  |  	    onClick: [self selectTab: #class].
 |  |  	    onClick: [self selectTab: #class].
 | 
											
												
													
														|  |  	li := html li.
 |  |  	li := html li.
 | 
											
												
													
														|  |  	selectedTab = #comment ifTrue: [li class: 'selected'].
 |  |  	selectedTab = #comment ifTrue: [li class: 'selected'].
 | 
											
												
													
														|  |  	li
 |  |  	li
 | 
											
												
													
														|  |  	    with: [
 |  |  	    with: [
 | 
											
												
													
														|  | -              	html span class: 'ltab'.
 |  | 
 | 
											
												
													
														|  | -              	html span class: 'mtab'; with: 'Comment'.
 |  | 
 | 
											
												
													
														|  | -              	html span class: 'rtab'];
 |  | 
 | 
											
												
													
														|  | 
 |  | +		html span class: 'ltab'.
 | 
											
												
													
														|  | 
 |  | +		html span class: 'mtab'; with: 'Comment'.
 | 
											
												
													
														|  | 
 |  | +		html span class: 'rtab'];
 | 
											
												
													
														|  |  	    onClick: [self selectTab: #comment]]
 |  |  	    onClick: [self selectTab: #comment]]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -956,38 +974,38 @@ updateSourceAndButtons
 | 
											
												
													
														|  |  			with: 'Remove method';
 |  |  			with: 'Remove method';
 | 
											
												
													
														|  |  			onClick: [self removeMethod].
 |  |  			onClick: [self removeMethod].
 | 
											
												
													
														|  |  		html select 
 |  |  		html select 
 | 
											
												
													
														|  | -	    		onChange: [:e :select | self setMethodProtocol: select val];
 |  | 
 | 
											
												
													
														|  | -	    		with: [
 |  | 
 | 
											
												
													
														|  | 
 |  | +			onChange: [:e :select | self setMethodProtocol: select val];
 | 
											
												
													
														|  | 
 |  | +			with: [
 | 
											
												
													
														|  |  				html option
 |  |  				html option
 | 
											
												
													
														|  | -		    			with: 'Method protocol';
 |  | 
 | 
											
												
													
														|  | 
 |  | +					with: 'Method protocol';
 | 
											
												
													
														|  |  					at: 'disabled' put: 'disabled'.
 |  |  					at: 'disabled' put: 'disabled'.
 | 
											
												
													
														|  |  				html option
 |  |  				html option
 | 
											
												
													
														|  | -		    			class: 'important';
 |  | 
 | 
											
												
													
														|  | -		    			with: 'New...'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +					class: 'important';
 | 
											
												
													
														|  | 
 |  | +					with: 'New...'.
 | 
											
												
													
														|  |  				self protocols do: [:each |
 |  |  				self protocols do: [:each |
 | 
											
												
													
														|  | -		    			html option with: each]].
 |  | 
 | 
											
												
													
														|  | 
 |  | +					html option with: each]].
 | 
											
												
													
														|  |  		selectedMethod isNil ifFalse: [
 |  |  		selectedMethod isNil ifFalse: [
 | 
											
												
													
														|  |  			html select 
 |  |  			html select 
 | 
											
												
													
														|  | -	    			onChange: [:e :select | self searchReferencesOf: select val];
 |  | 
 | 
											
												
													
														|  | -	    			with: [
 |  | 
 | 
											
												
													
														|  | 
 |  | +				onChange: [:e :select | self searchReferencesOf: select val];
 | 
											
												
													
														|  | 
 |  | +				with: [
 | 
											
												
													
														|  |  					html option
 |  |  					html option
 | 
											
												
													
														|  | -		    				with: 'References';
 |  | 
 | 
											
												
													
														|  | 
 |  | +						with: 'References';
 | 
											
												
													
														|  |  						at: 'disabled' put: 'disabled'.
 |  |  						at: 'disabled' put: 'disabled'.
 | 
											
												
													
														|  |  					html option
 |  |  					html option
 | 
											
												
													
														|  | -		    				class: 'important';
 |  | 
 | 
											
												
													
														|  | -		    				with: selectedMethod selector.
 |  | 
 | 
											
												
													
														|  | 
 |  | +						class: 'important';
 | 
											
												
													
														|  | 
 |  | +						with: selectedMethod selector.
 | 
											
												
													
														|  |  					selectedMethod messageSends sorted do: [:each |
 |  |  					selectedMethod messageSends sorted do: [:each |
 | 
											
												
													
														|  | -		    				html option with: each]]]].
 |  | 
 | 
											
												
													
														|  | -    	selectedMethod isNil
 |  | 
 | 
											
												
													
														|  | 
 |  | +						html option with: each]]]].
 | 
											
												
													
														|  | 
 |  | +	selectedMethod isNil
 | 
											
												
													
														|  |  		ifTrue: [
 |  |  		ifTrue: [
 | 
											
												
													
														|  | -	    		self hideMethodButtons.
 |  | 
 | 
											
												
													
														|  | -	    			(selectedClass isNil or: [selectedProtocol notNil])
 |  | 
 | 
											
												
													
														|  | 
 |  | +			self hideMethodButtons.
 | 
											
												
													
														|  | 
 |  | +				(selectedClass isNil or: [selectedProtocol notNil])
 | 
											
												
													
														|  |  					ifTrue: [self hideClassButtons]
 |  |  					ifTrue: [self hideClassButtons]
 | 
											
												
													
														|  | -	    				ifFalse: [self showClassButtons]]
 |  | 
 | 
											
												
													
														|  | 
 |  | +					ifFalse: [self showClassButtons]]
 | 
											
												
													
														|  |  		ifFalse: [
 |  |  		ifFalse: [
 | 
											
												
													
														|  | -	    		self hideClassButtons.
 |  | 
 | 
											
												
													
														|  | -	    		self showMethodButtons].
 |  | 
 | 
											
												
													
														|  | -    	sourceArea val: self source
 |  | 
 | 
											
												
													
														|  | 
 |  | +			self hideClassButtons.
 | 
											
												
													
														|  | 
 |  | +			self showMethodButtons].
 | 
											
												
													
														|  | 
 |  | +	sourceArea val: self source
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateStatus
 |  |  updateStatus
 | 
											
										
											
												
													
														|  | @@ -995,11 +1013,11 @@ updateStatus
 | 
											
												
													
														|  |  		ifTrue: [
 |  |  		ifTrue: [
 | 
											
												
													
														|  |  			saveButton ifNotNil: [
 |  |  			saveButton ifNotNil: [
 | 
											
												
													
														|  |  				saveButton at: 'disabled' put: true].
 |  |  				saveButton at: 'disabled' put: true].
 | 
											
												
													
														|  | -    			unsavedChanges := false]
 |  | 
 | 
											
												
													
														|  | 
 |  | +			unsavedChanges := false]
 | 
											
												
													
														|  |  		ifFalse: [
 |  |  		ifFalse: [
 | 
											
												
													
														|  |  			saveButton ifNotNil: [
 |  |  			saveButton ifNotNil: [
 | 
											
												
													
														|  | -    				saveButton removeAt: 'disabled'].
 |  | 
 | 
											
												
													
														|  | -    			unsavedChanges := true]
 |  | 
 | 
											
												
													
														|  | 
 |  | +				saveButton removeAt: 'disabled'].
 | 
											
												
													
														|  | 
 |  | +			unsavedChanges := true]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  resetClassesList
 |  |  resetClassesList
 | 
											
										
											
												
													
														|  | @@ -1096,16 +1114,16 @@ renderTopPanelOn: html
 | 
											
												
													
														|  |  		with: [
 |  |  		with: [
 | 
											
												
													
														|  |  			variablesList := html ul class: 'jt_column variables'.
 |  |  			variablesList := html ul class: 'jt_column variables'.
 | 
											
												
													
														|  |  			valueTextarea := html textarea class: 'jt_column value'; at: 'readonly' put: 'readonly'.
 |  |  			valueTextarea := html textarea class: 'jt_column value'; at: 'readonly' put: 'readonly'.
 | 
											
												
													
														|  | -                  	html div class: 'jt_tabs inspector'; with: [
 |  | 
 | 
											
												
													
														|  | -          			html button
 |  | 
 | 
											
												
													
														|  | -                  			class: 'jt_button inspector refresh';
 |  | 
 | 
											
												
													
														|  | 
 |  | +			html div class: 'jt_tabs inspector'; with: [
 | 
											
												
													
														|  | 
 |  | +				html button
 | 
											
												
													
														|  | 
 |  | +					class: 'jt_button inspector refresh';
 | 
											
												
													
														|  |  					with: 'Refresh';
 |  |  					with: 'Refresh';
 | 
											
												
													
														|  |  					onClick: [self refresh].
 |  |  					onClick: [self refresh].
 | 
											
												
													
														|  |  				diveButton := html button 
 |  |  				diveButton := html button 
 | 
											
												
													
														|  | -                  			class: 'jt_button inspector dive';
 |  | 
 | 
											
												
													
														|  | 
 |  | +					class: 'jt_button inspector dive';
 | 
											
												
													
														|  |  					with: 'Dive'; 
 |  |  					with: 'Dive'; 
 | 
											
												
													
														|  |  					onClick: [self dive]].
 |  |  					onClick: [self dive]].
 | 
											
												
													
														|  | -	    		html div class: 'jt_clear'].
 |  | 
 | 
											
												
													
														|  | 
 |  | +			html div class: 'jt_clear'].
 | 
											
												
													
														|  |  	self
 |  |  	self
 | 
											
												
													
														|  |  		updateVariablesList;
 |  |  		updateVariablesList;
 | 
											
												
													
														|  |  		updateValueTextarea.
 |  |  		updateValueTextarea.
 | 
											
										
											
												
													
														|  | @@ -1116,9 +1134,9 @@ renderBottomPanelOn: html
 | 
											
												
													
														|  |  	class: 'jt_sourceCode';
 |  |  	class: 'jt_sourceCode';
 | 
											
												
													
														|  |  	with: [
 |  |  	with: [
 | 
											
												
													
														|  |  	    sourceArea := SourceArea new
 |  |  	    sourceArea := SourceArea new
 | 
											
												
													
														|  | -          	receiver: object;
 |  | 
 | 
											
												
													
														|  | -          	onDoIt: [self refresh];
 |  | 
 | 
											
												
													
														|  | -          	yourself.
 |  | 
 | 
											
												
													
														|  | 
 |  | +		receiver: object;
 | 
											
												
													
														|  | 
 |  | +		onDoIt: [self refresh];
 | 
											
												
													
														|  | 
 |  | +		yourself.
 | 
											
												
													
														|  |              sourceArea renderOn: html]
 |  |              sourceArea renderOn: html]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1292,17 +1310,17 @@ renderInputOn: html
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  renderImplementorsOn: html
 |  |  renderImplementorsOn: html
 | 
											
												
													
														|  | -    	implementorsList := html ul class: 'jt_column implementors'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	implementorsList := html ul class: 'jt_column implementors'.
 | 
											
												
													
														|  |  	self updateImplementorsList
 |  |  	self updateImplementorsList
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  renderSendersOn: html
 |  |  renderSendersOn: html
 | 
											
												
													
														|  | -    	sendersList := html ul class: 'jt_column senders'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	sendersList := html ul class: 'jt_column senders'.
 | 
											
												
													
														|  |  	self updateSendersList
 |  |  	self updateSendersList
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  renderReferencedClassesOn: html
 |  |  renderReferencedClassesOn: html
 | 
											
												
													
														|  | -    	referencedClassesList := html ul class: 'jt_column referenced_classes'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	referencedClassesList := html ul class: 'jt_column referenced_classes'.
 | 
											
												
													
														|  |  	self updateReferencedClassesList
 |  |  	self updateReferencedClassesList
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1328,26 +1346,26 @@ updateImplementorsList
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateSendersList
 |  |  updateSendersList
 | 
											
												
													
														|  | -    	sendersList contents: [:html |
 |  | 
 | 
											
												
													
														|  | 
 |  | +	sendersList contents: [:html |
 | 
											
												
													
														|  |  	html li
 |  |  	html li
 | 
											
												
													
														|  |  		class: 'column_label'; 
 |  |  		class: 'column_label'; 
 | 
											
												
													
														|  |  		with: 'Senders (', self senders size asString, ')';
 |  |  		with: 'Senders (', self senders size asString, ')';
 | 
											
												
													
														|  |  		style: 'font-weight: bold'.
 |  |  		style: 'font-weight: bold'.
 | 
											
												
													
														|  |  	self senders do: [:each |
 |  |  	self senders do: [:each |
 | 
											
												
													
														|  |  		html li
 |  |  		html li
 | 
											
												
													
														|  | -	    		with: (each methodClass asString, ' >> ', each selector);
 |  | 
 | 
											
												
													
														|  | 
 |  | +			with: (each methodClass asString, ' >> ', each selector);
 | 
											
												
													
														|  |  			onClick: [self openBrowserOn: each]]]
 |  |  			onClick: [self openBrowserOn: each]]]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateReferencedClassesList
 |  |  updateReferencedClassesList
 | 
											
												
													
														|  | -    	referencedClassesList contents: [:html |
 |  | 
 | 
											
												
													
														|  | 
 |  | +	referencedClassesList contents: [:html |
 | 
											
												
													
														|  |  	html li
 |  |  	html li
 | 
											
												
													
														|  |  		class: 'column_label'; 
 |  |  		class: 'column_label'; 
 | 
											
												
													
														|  |  		with: 'Class references (', self referencedClasses size asString, ')';
 |  |  		with: 'Class references (', self referencedClasses size asString, ')';
 | 
											
												
													
														|  |  		style: 'font-weight: bold'.
 |  |  		style: 'font-weight: bold'.
 | 
											
												
													
														|  |  	self referencedClasses do: [:each |
 |  |  	self referencedClasses do: [:each |
 | 
											
												
													
														|  |  		html li
 |  |  		html li
 | 
											
												
													
														|  | -	    		with: (each methodClass asString, ' >> ', each selector);
 |  | 
 | 
											
												
													
														|  | 
 |  | +			with: (each methodClass asString, ' >> ', each selector);
 | 
											
												
													
														|  |  			onClick: [self openBrowserOn: each]]]
 |  |  			onClick: [self openBrowserOn: each]]]
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1399,7 +1417,7 @@ selectionEnd: anInteger
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  setEditorOn: aTextarea
 |  |  setEditorOn: aTextarea
 | 
											
												
													
														|  |  	<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
 |  |  	<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
 | 
											
												
													
														|  | -        	theme: 'jtalk',
 |  | 
 | 
											
												
													
														|  | 
 |  | +		theme: 'jtalk',
 | 
											
												
													
														|  |                  lineNumbers: true,
 |  |                  lineNumbers: true,
 | 
											
												
													
														|  |                  enterMode: 'classic',
 |  |                  enterMode: 'classic',
 | 
											
												
													
														|  |                  matchBrackets: true,
 |  |                  matchBrackets: true,
 | 
											
										
											
												
													
														|  | @@ -1448,8 +1466,8 @@ doIt
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  eval: aString
 |  |  eval: aString
 | 
											
												
													
														|  |  	| compiler  |
 |  |  	| compiler  |
 | 
											
												
													
														|  | -      	compiler := Compiler new.
 |  | 
 | 
											
												
													
														|  | -      	[compiler parseExpression: aString] on: Error do: [:ex |
 |  | 
 | 
											
												
													
														|  | 
 |  | +	compiler := Compiler new.
 | 
											
												
													
														|  | 
 |  | +	[compiler parseExpression: aString] on: Error do: [:ex |
 | 
											
												
													
														|  |  		^self alert: ex messageText].
 |  |  		^self alert: ex messageText].
 | 
											
												
													
														|  |  	^(compiler load: 'doIt ^[', aString, '] value' forClass: DoIt) fn applyTo: self receiver arguments: #()
 |  |  	^(compiler load: 'doIt ^[', aString, '] value' forClass: DoIt) fn applyTo: self receiver arguments: #()
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
										
											
												
													
														|  | @@ -1526,7 +1544,7 @@ Widget subclass: #ClassesList
 | 
											
												
													
														|  |  !ClassesList methodsFor: 'accessing'!
 |  |  !ClassesList methodsFor: 'accessing'!
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  category
 |  |  category
 | 
											
												
													
														|  | -	^self browser selectedCategory
 |  | 
 | 
											
												
													
														|  | 
 |  | +	^self browser selectedPackage
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  nodes
 |  |  nodes
 | 
											
										
											
												
													
														|  | @@ -1599,7 +1617,7 @@ renderOn: html
 | 
											
												
													
														|  |  		cssClass := cssClass, ' selected'].
 |  |  		cssClass := cssClass, ' selected'].
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	self theClass comment isEmpty ifFalse: [
 |  |  	self theClass comment isEmpty ifFalse: [
 | 
											
												
													
														|  | -          	cssClass := cssClass, ' commented'].
 |  | 
 | 
											
												
													
														|  | 
 |  | +		cssClass := cssClass, ' commented'].
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	li class: cssClass.
 |  |  	li class: cssClass.
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1715,8 +1733,8 @@ selectContext: aContext
 | 
											
												
													
														|  |  	selectedVariableName := nil.
 |  |  	selectedVariableName := nil.
 | 
											
												
													
														|  |  	self 
 |  |  	self 
 | 
											
												
													
														|  |  		updateContextsList;
 |  |  		updateContextsList;
 | 
											
												
													
														|  | -          	updateSourceArea;
 |  | 
 | 
											
												
													
														|  | -          	updateInspector;
 |  | 
 | 
											
												
													
														|  | 
 |  | +		updateSourceArea;
 | 
											
												
													
														|  | 
 |  | +		updateInspector;
 | 
											
												
													
														|  |  		updateVariablesList;
 |  |  		updateVariablesList;
 | 
											
												
													
														|  |  		updateStatus
 |  |  		updateStatus
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
										
											
												
													
														|  | @@ -1761,7 +1779,7 @@ renderTopPanelOn: html
 | 
											
												
													
														|  |  			html div 
 |  |  			html div 
 | 
											
												
													
														|  |  				class: 'label';
 |  |  				class: 'label';
 | 
											
												
													
														|  |  				with: self error messageText.
 |  |  				with: self error messageText.
 | 
											
												
													
														|  | -	    		ul := html ul 
 |  | 
 | 
											
												
													
														|  | 
 |  | +			ul := html ul 
 | 
											
												
													
														|  |  				class: 'jt_column debugger contexts';
 |  |  				class: 'jt_column debugger contexts';
 | 
											
												
													
														|  |  				with: [self renderContext: self error context on: html]]
 |  |  				with: [self renderContext: self error context on: html]]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
										
											
												
													
														|  | @@ -1782,7 +1800,7 @@ renderBottomPanelOn: html
 | 
											
												
													
														|  |  		class: 'jt_sourceCode debugger';
 |  |  		class: 'jt_sourceCode debugger';
 | 
											
												
													
														|  |  		with: [
 |  |  		with: [
 | 
											
												
													
														|  |  			sourceArea := SourceArea new.
 |  |  			sourceArea := SourceArea new.
 | 
											
												
													
														|  | -              		sourceArea renderOn: html].
 |  | 
 | 
											
												
													
														|  | 
 |  | +			sourceArea renderOn: html].
 | 
											
												
													
														|  |  	ul2 := html ul class: 'jt_column debugger variables'.
 |  |  	ul2 := html ul class: 'jt_column debugger variables'.
 | 
											
												
													
														|  |  	inspector := html div class: 'jt_column debugger inspector'.
 |  |  	inspector := html div class: 'jt_column debugger inspector'.
 | 
											
												
													
														|  |  	sourceArea
 |  |  	sourceArea
 | 
											
										
											
												
													
														|  | @@ -1847,11 +1865,11 @@ updateStatus
 | 
											
												
													
														|  |  		ifTrue: [
 |  |  		ifTrue: [
 | 
											
												
													
														|  |  			saveButton ifNotNil: [
 |  |  			saveButton ifNotNil: [
 | 
											
												
													
														|  |  				saveButton at: 'disabled' put: true].
 |  |  				saveButton at: 'disabled' put: true].
 | 
											
												
													
														|  | -    			unsavedChanges := false]
 |  | 
 | 
											
												
													
														|  | 
 |  | +			unsavedChanges := false]
 | 
											
												
													
														|  |  		ifFalse: [
 |  |  		ifFalse: [
 | 
											
												
													
														|  |  			saveButton ifNotNil: [
 |  |  			saveButton ifNotNil: [
 | 
											
												
													
														|  | -    				saveButton removeAt: 'disabled'].
 |  | 
 | 
											
												
													
														|  | -    			unsavedChanges := true]
 |  | 
 | 
											
												
													
														|  | 
 |  | +				saveButton removeAt: 'disabled'].
 | 
											
												
													
														|  | 
 |  | +			unsavedChanges := true]
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateInspector
 |  |  updateInspector
 | 
											
										
											
												
													
														|  | @@ -1860,11 +1878,11 @@ updateInspector
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateVariablesList
 |  |  updateVariablesList
 | 
											
												
													
														|  |  	ul2 contents: [:html | | li |
 |  |  	ul2 contents: [:html | | li |
 | 
											
												
													
														|  | -          	li := html li 
 |  | 
 | 
											
												
													
														|  | 
 |  | +		li := html li 
 | 
											
												
													
														|  |  			with: 'self';
 |  |  			with: 'self';
 | 
											
												
													
														|  |  			onClick: [self selectVariable: self receiver named: 'self'].
 |  |  			onClick: [self selectVariable: self receiver named: 'self'].
 | 
											
												
													
														|  |                  selectedVariableName = 'self' ifTrue: [
 |  |                  selectedVariableName = 'self' ifTrue: [
 | 
											
												
													
														|  | -                  	li class: 'selected'].
 |  | 
 | 
											
												
													
														|  | 
 |  | +			li class: 'selected'].
 | 
											
												
													
														|  |                  self arguments withIndexDo: [:each :index | | param |
 |  |                  self arguments withIndexDo: [:each :index | | param |
 | 
											
												
													
														|  |                          param := selectedContext temps at: index.
 |  |                          param := selectedContext temps at: index.
 | 
											
												
													
														|  |                          li := html li 
 |  |                          li := html li 
 | 
											
										
											
												
													
														|  | @@ -1939,7 +1957,7 @@ updatePercent: aNumber
 | 
											
												
													
														|  |  ! !
 |  |  ! !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  TabWidget subclass: #TestRunner
 |  |  TabWidget subclass: #TestRunner
 | 
											
												
													
														|  | -	instanceVariableNames: 'selectedCategories categoriesList selectedClasses classesList selectedMethods progressBar methodsList result statusDiv'
 |  | 
 | 
											
												
													
														|  | 
 |  | +	instanceVariableNames: 'selectedCategories packagesList selectedClasses classesList selectedMethods progressBar methodsList result statusDiv'
 | 
											
												
													
														|  |  	category: 'IDE'!
 |  |  	category: 'IDE'!
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  !TestRunner methodsFor: 'accessing'!
 |  |  !TestRunner methodsFor: 'accessing'!
 | 
											
										
											
												
													
														|  | @@ -1948,13 +1966,13 @@ label
 | 
											
												
													
														|  |      ^'SUnit'
 |  |      ^'SUnit'
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -categories
 |  | 
 | 
											
												
													
														|  | -    | categories |
 |  | 
 | 
											
												
													
														|  | -    categories := Array new.
 |  | 
 | 
											
												
													
														|  | 
 |  | +packages
 | 
											
												
													
														|  | 
 |  | +    | packages |
 | 
											
												
													
														|  | 
 |  | +    packages := Array new.
 | 
											
												
													
														|  |      self allClasses do: [:each |
 |  |      self allClasses do: [:each |
 | 
											
												
													
														|  | -	(categories includes: each category) ifFalse: [
 |  | 
 | 
											
												
													
														|  | -	    categories add: each category]].
 |  | 
 | 
											
												
													
														|  | -    ^categories sort
 |  | 
 | 
											
												
													
														|  | 
 |  | +	(packages includes: each category) ifFalse: [
 | 
											
												
													
														|  | 
 |  | +	    packages add: each category]].
 | 
											
												
													
														|  | 
 |  | +    ^packages sort
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  classes
 |  |  classes
 | 
											
										
											
												
													
														|  | @@ -1997,7 +2015,7 @@ testCases
 | 
											
												
													
														|  |  !TestRunner methodsFor: 'actions'!
 |  |  !TestRunner methodsFor: 'actions'!
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  selectAllCategories
 |  |  selectAllCategories
 | 
											
												
													
														|  | -	self categories do: [:each | 
 |  | 
 | 
											
												
													
														|  | 
 |  | +	self packages do: [:each | 
 | 
											
												
													
														|  |  		(selectedCategories includes: each) ifFalse: [
 |  |  		(selectedCategories includes: each) ifFalse: [
 | 
											
												
													
														|  |  			self selectedCategories add: each]].
 |  |  			self selectedCategories add: each]].
 | 
											
												
													
														|  |  	self 
 |  |  	self 
 | 
											
										
											
												
													
														|  | @@ -2090,19 +2108,19 @@ renderButtonsOn: html
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  renderCategoriesOn: html
 |  |  renderCategoriesOn: html
 | 
											
												
													
														|  | -    	categoriesList := html ul class: 'jt_column sunit categories'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	packagesList := html ul class: 'jt_column sunit packages'.
 | 
											
												
													
														|  |  	self updateCategoriesList
 |  |  	self updateCategoriesList
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  renderClassesOn: html
 |  |  renderClassesOn: html
 | 
											
												
													
														|  | -    	classesList := html ul class: 'jt_column sunit classes'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	classesList := html ul class: 'jt_column sunit classes'.
 | 
											
												
													
														|  |  	self updateClassesList
 |  |  	self updateClassesList
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  renderResultsOn: html
 |  |  renderResultsOn: html
 | 
											
												
													
														|  | -    	statusDiv := html div.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	statusDiv := html div.
 | 
											
												
													
														|  |  	html with: self progressBar.
 |  |  	html with: self progressBar.
 | 
											
												
													
														|  | -   	methodsList := html ul class: 'jt_column sunit results'.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	methodsList := html ul class: 'jt_column sunit results'.
 | 
											
												
													
														|  |  	self updateMethodsList.
 |  |  	self updateMethodsList.
 | 
											
												
													
														|  |  	self updateStatusDiv
 |  |  	self updateStatusDiv
 | 
											
												
													
														|  |  !
 |  |  !
 | 
											
										
											
												
													
														|  | @@ -2136,12 +2154,12 @@ isSelectedCategory: aCategory
 | 
											
												
													
														|  |  !TestRunner methodsFor: 'updating'!
 |  |  !TestRunner methodsFor: 'updating'!
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  updateCategoriesList
 |  |  updateCategoriesList
 | 
											
												
													
														|  | -    categoriesList contents: [:html |
 |  | 
 | 
											
												
													
														|  | 
 |  | +    packagesList contents: [:html |
 | 
											
												
													
														|  |  	    html li 
 |  |  	    html li 
 | 
											
												
													
														|  |  		class: 'all';
 |  |  		class: 'all';
 | 
											
												
													
														|  |  		with: 'All';
 |  |  		with: 'All';
 | 
											
												
													
														|  |  		onClick: [self selectAllCategories].
 |  |  		onClick: [self selectAllCategories].
 | 
											
												
													
														|  | -	self categories do: [:each || li |
 |  | 
 | 
											
												
													
														|  | 
 |  | +	self packages do: [:each || li |
 | 
											
												
													
														|  |  	    li := html li.
 |  |  	    li := html li.
 | 
											
												
													
														|  |  	    (self selectedCategories includes: each) ifTrue: [
 |  |  	    (self selectedCategories includes: each) ifTrue: [
 | 
											
												
													
														|  |  		li class: 'selected'].
 |  |  		li class: 'selected'].
 |