|  | @@ -411,7 +411,7 @@ clear
 | 
	
		
			
				|  |  |  ! !
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  TabWidget subclass: #Browser
 | 
	
		
			
				|  |  | -	instanceVariableNames: 'selectedPackage selectedClass selectedProtocol selectedMethod commitButton packagesList 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'!
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  !Browser methodsFor: 'accessing'!
 | 
	
	
		
			
				|  | @@ -618,25 +618,6 @@ compileDefinition
 | 
	
		
			
				|  |  |  	updateClassesList
 | 
	
		
			
				|  |  |  !
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -commitCategory
 | 
	
		
			
				|  |  | -    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]
 | 
	
		
			
				|  |  | -!
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  cancelChanges
 | 
	
		
			
				|  |  |      ^unsavedChanges 
 | 
	
		
			
				|  |  |  	ifTrue: [self confirm: 'Cancel changes?']
 | 
	
	
		
			
				|  | @@ -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'!
 | 
	
	
		
			
				|  | @@ -803,8 +811,18 @@ renderTopPanelOn: html
 | 
	
		
			
				|  |  |  	    commitButton := html button 
 | 
	
		
			
				|  |  |  		class: 'jt_commit';
 | 
	
		
			
				|  |  |  		title: 'Commit classes in this package to disk';
 | 
	
		
			
				|  |  | -		onClick: [self commitCategory];
 | 
	
		
			
				|  |  | +		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 renderOn: html.
 | 
	
		
			
				|  |  |  	    protocolsList := html ul class: 'jt_column browser protocols'.
 |