Hello https://code.google.com/p/pharo/issues/detail?id=7310
Hope it can help :) Ben On Jan 23, 2013, at 11:55 PM, Stefan Marr wrote: > > On 23 Jan 2013, at 23:06, Stéphane Ducasse wrote: > >> Do you have a case that we can reproduce and so we fix it? >> One of the problems I fixed yesterday was that the RecentChangeList did not >> get notification anymore. > > The following example shows two problems with the current PickListModel: > > | instance | > > instance := PickListModel new. > instance openWithSpec. > instance items: {4. 2. 55. 4. 4. }. > ^ instance > > First, all 4s are the same item, and cannot be selected independently. A bug, > I would say. > Second, the Set does not preserve the order, so `instance pickedItems` does > not have the natural order. > > > The problem is that PickListModel >> #initialize initializes the field > 'pickedItemsHolder' with a Set. > This set is never exposed and not customizable directly. > So well, I would say a Set is an unfortunate choice for a list widget. > Lists have a natural order, and it is not obvious to me why that order should > not be preserved. > > I might miss here other tradeoffs of course, but replacing the Set by a > OrderedCollection solves my current problem. It does not solve the issue with > multiple entries however. > > > > > Best regards > Stefan > > > > >> >> Stef >> >> On Jan 23, 2013, at 6:35 PM, Stefan Marr wrote: >> >>> Hi: >>> >>> On 23 Jan 2013, at 22:06, Stefan Marr wrote: >>> >>>> I get a change browser which tells me that it is going to create a class >>>> with stuff. >>>> But then I get a RBAddMethodChange, which doesn't have a `changeClass`. >>>> The reason is that the class is not actually created before the method is >>>> supposed to be added, I think. >>> >>> So, I am on a recent Pharo 2.0 image and experience problems with the >>> ChangesBrowser. >>> >>> Namely, changes are represented as an unordered set, which leads to >>> problems. >>> Most notably, methods are added to non-existing classes before they are >>> created. >>> >>> You probably want to use an order-preserving data structure. >>> >>> A quick hack, I used is just a work around: >>> >>> ChangesBrowser >> #accept >>> | changes | >>> self okToChange ifFalse: [ ^self ]. >>> >>> changes := self pickedChanges sorted: [:a :b | (a isKindOf: >>> RBAddClassChange) and: [(b isKindOf: RBAddClassChange) not]]. >>> >>> changes do: [:change | RBRefactoryChangeManager instance performChange: >>> change ]. >>> window delete >>> >>> >>> Best regards >>> Stefan >>> >>> -- >>> Stefan Marr >>> Software Languages Lab >>> Vrije Universiteit Brussel >>> Pleinlaan 2 / B-1050 Brussels / Belgium >>> http://soft.vub.ac.be/~smarr >>> Phone: +32 2 629 2974 >>> Fax: +32 2 629 3525 >>> >>> >> >> > > -- > Stefan Marr > Software Languages Lab > Vrije Universiteit Brussel > Pleinlaan 2 / B-1050 Brussels / Belgium > http://soft.vub.ac.be/~smarr > Phone: +32 2 629 2974 > Fax: +32 2 629 3525 > >