|  | @@ -784,6 +784,7 @@ fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  |  function $ClassAdded(){return smalltalk.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
 | 
	
		
			
				|  |  |  function $ClassRemoved(){return smalltalk.ClassRemoved||(typeof ClassRemoved=="undefined"?nil:ClassRemoved)}
 | 
	
		
			
				|  |  | +function $ClassMoved(){return smalltalk.ClassMoved||(typeof ClassMoved=="undefined"?nil:ClassMoved)}
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  |  var $1,$2;
 | 
	
		
			
				|  |  |  $1=_st(_st(self)._model())._systemAnnouncer();
 | 
	
	
		
			
				|  | @@ -791,15 +792,19 @@ _st($1)._on_do_($ClassAdded(),(function(ann){
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  |  return _st(self)._onClassAdded_(_st(ann)._theClass());
 | 
	
		
			
				|  |  |  }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 | 
	
		
			
				|  |  | -$2=_st($1)._on_do_($ClassRemoved(),(function(ann){
 | 
	
		
			
				|  |  | +_st($1)._on_do_($ClassRemoved(),(function(ann){
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  |  return _st(self)._onClassRemoved_(_st(ann)._theClass());
 | 
	
		
			
				|  |  |  }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 | 
	
		
			
				|  |  | +$2=_st($1)._on_do_($ClassMoved(),(function(ann){
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  | +return _st(self)._onClassMoved_from_(_st(ann)._theClass(),_st(ann)._oldPackage());
 | 
	
		
			
				|  |  | +}, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 | 
	
		
			
				|  |  |  return self}, function($ctx1) {$ctx1.fill(self,"observeSystem",{},smalltalk.HLClassesListWidget)})},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  | -source: "observeSystem\x0a\x09self model systemAnnouncer\x0a    \x09on: ClassAdded\x0a        do: [ :ann | self onClassAdded: ann theClass ];\x0a        on: ClassRemoved\x0a        do: [ :ann | self onClassRemoved: ann theClass ]",
 | 
	
		
			
				|  |  | -messageSends: ["on:do:", "onClassAdded:", "theClass", "systemAnnouncer", "model", "onClassRemoved:"],
 | 
	
		
			
				|  |  | -referencedClasses: ["ClassAdded", "ClassRemoved"]
 | 
	
		
			
				|  |  | +source: "observeSystem\x0a\x09self model systemAnnouncer\x0a    \x09on: ClassAdded\x0a        do: [ :ann | self onClassAdded: ann theClass ];\x0a        on: ClassRemoved\x0a        do: [ :ann | self onClassRemoved: ann theClass ];\x0a\x09\x09on: ClassMoved\x0a        do: [ :ann | self onClassMoved: ann theClass from: ann oldPackage ]",
 | 
	
		
			
				|  |  | +messageSends: ["on:do:", "onClassAdded:", "theClass", "systemAnnouncer", "model", "onClassRemoved:", "onClassMoved:from:", "oldPackage"],
 | 
	
		
			
				|  |  | +referencedClasses: ["ClassAdded", "ClassRemoved", "ClassMoved"]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.HLClassesListWidget);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -826,6 +831,36 @@ referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.HLClassesListWidget);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: "onClassMoved:from:",
 | 
	
		
			
				|  |  | +category: 'reactions',
 | 
	
		
			
				|  |  | +fn: function (aClass,aPackage){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | +var $1,$2,$3;
 | 
	
		
			
				|  |  | +$1=_st(_st(aPackage).__eq(_st(_st(self)._model())._selectedPackage()))._or_((function(){
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  | +return _st(_st(aClass)._package()).__eq(_st(_st(self)._model())._selectedPackage());
 | 
	
		
			
				|  |  | +}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 | 
	
		
			
				|  |  | +if(! smalltalk.assert($1)){
 | 
	
		
			
				|  |  | +$2=self;
 | 
	
		
			
				|  |  | +return $2;
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +$3=_st(_st(aClass)._oldPackage()).__eq(_st(_st(self)._model())._selectedPackage());
 | 
	
		
			
				|  |  | +if(smalltalk.assert($3)){
 | 
	
		
			
				|  |  | +_st(self)._selectItem_(nil);
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +_st(self)._setItemsForSelectedPackage();
 | 
	
		
			
				|  |  | +_st(self)._refresh();
 | 
	
		
			
				|  |  | +return self}, function($ctx1) {$ctx1.fill(self,"onClassMoved:from:",{aClass:aClass,aPackage:aPackage},smalltalk.HLClassesListWidget)})},
 | 
	
		
			
				|  |  | +args: ["aClass", "aPackage"],
 | 
	
		
			
				|  |  | +source: "onClassMoved: aClass from: aPackage\x0a\x09(aPackage = self model selectedPackage or: [\x0a\x09\x09aClass package = self model selectedPackage ])\x0a\x09\x09\x09ifFalse: [ ^ self ].\x0a\x09\x09\x09\x0a\x09aClass oldPackage = self model selectedPackage ifTrue: [ \x0a\x09\x09self selectItem: nil ].\x0a    \x0a    self setItemsForSelectedPackage.\x0a    self refresh",
 | 
	
		
			
				|  |  | +messageSends: ["ifFalse:", "or:", "=", "selectedPackage", "model", "package", "ifTrue:", "selectItem:", "oldPackage", "setItemsForSelectedPackage", "refresh"],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.HLClassesListWidget);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "onClassRemoved:",
 |