I've restored IChoiceRenderer interface so users can still use Enum based singletons.
Further refactorings should be done in a separate ticket. Martin Grigorov Wicket Training and Consulting On Wed, Mar 19, 2014 at 11:58 AM, Sven Meier <s...@meiers.net> wrote: > Hi Martin, > > I'm +1 on releasing 7.x soon. > > ListMultipleChoice#getModelValue() and > AbstractSingleSelectChoice#getModelValue() > are still problematic though: > Both call getChoices().indexOf(object), thus any non-primitive option has > to implement #equals() :(. > > How about leaving IChoiceRenderer to do the actual rendering part (i.e. > #getDisplayValue()) only ? > The conversion choice<->id (i.e. #getIdValue() and #getObject()) could be > moved into a converter instead. > > @Igor? > > Regards > Sven > > > On 03/19/2014 10:27 AM, Martin Grigorov wrote: > >> Sven, Igor, >> >> Do you have an agreement how IChoiceRenderer should look like in Wicket >> 7.x >> ? >> >> I really like to release 7.0.0-M1 so we got some user feedback. >> >> Martin Grigorov >> Wicket Training and Consulting >> >> >> On Wed, Feb 26, 2014 at 8:10 PM, tetsuo <ronald.tet...@gmail.com> wrote: >> >> Sorry for the rant... >>> >>> The transition from 1.4 to 1.5 was awful (full of such minor breaking >>> changes), but not so afterwards, I know I'm overreacting. Probably it's >>> because it happened (a colleague complaining about all the compiling >>> errors >>> when upgrading from 1.4) last week :/ >>> >>> And well... it's somewhat inevitable to avoid compiling errors when >>> evolving a framework that is strongly type-safe (which is a great plus). >>> >>> Sorry again. >>> >>> But I still like my enums, please keep the interfaces :) >>> >>> >>> >>> >>> >>> >>> On Wed, Feb 26, 2014 at 1:34 PM, Martin Grigorov <mgrigo...@apache.org >>> >>>> wrote: >>>> On Wed, Feb 26, 2014 at 6:21 PM, tetsuo <ronald.tet...@gmail.com> >>>> wrote: >>>> >>>> Guillaume, you're right. >>>>> >>>>> Martin, sorry for the misunderstanding. >>>>> >>>>> Enums can't extend any classes besides Enum. But can implement >>>>> >>>> interfaces. >>>> Thanks! Now it is clear to me. >>>> >>>> >>>> I use Enums in lots of places, not as enums, but as singletons, because >>>>> they won't be serialized, won't carry unintended references, and use >>>>> virtually no memory in pages. Converters, Renderers, Validators, Models >>>>> (less so of the former, since it almost always needs state). If >>>>> >>>> IBehavior >>> >>>> still existed, and didn't have so many methods, I'd use enums to >>>>> >>>> implement >>>> >>>>> some of them, too. >>>>> >>>>> But my main complaint is not specific to this issue, however. I'm more >>>>> concerned about frequent breaking API changes with no practical >>>>> >>>> advantage. >>>> >>>>> Javascript/JavaScript, addComponent/add(Component) and the like. I'm at >>>>> >>>> the >>>> >>>>> point that I'm starting to feel unconfortable recommending Wicket to >>>>> people, because I know an year from now they will complain that they >>>>> upgraded a library and a thousand compiling errors appeared. 98% of >>>>> >>>> them >>> >>>> are very simple errors, but it's a daunting task neverthless. >>>>> >>>>> >>>>> Options: >>>> 1) Wicket devs stop developing Wicket so the API stays stable forever >>>> 2) application developers don't upgrade to next major version of Wicket >>>> 3) find the golden middle. >>>> >>>> I think we all agree that 3) is the best for all and that we (Wicket >>>> >>> devs) >>> >>>> try to follow it: >>>> >>>> - we use SemVer to make it easier for application developers to know >>>> when >>>> to expect API breaks and when to not expect such >>>> - we discuss most of the API breaks for major versions here in dev@. >>>> If there are issues identified on time we react! Even this change has >>>> been discussed before being made >>>> >>>> >>>> >>>> >>>> >>>>> >>>>> >>>>> On Wed, Feb 26, 2014 at 12:44 PM, Martin Grigorov < >>>>> >>>> mgrigo...@apache.org >>> >>>> wrote: >>>>>> As Martijn explained all that is needed is: >>>>>> - s/implements/extends/ >>>>>> - remove the leading 'I' from IChoiceRenderer >>>>>> >>>>>> If the interface is preserved then all custom impls will have to add >>>>>> implementation of the new method introduced with WICKET-663. This IMO >>>>>> >>>>> will >>>>> >>>>>> lead to more work for the application developers. >>>>>> >>>>>> As I said: I am not against restoring the interface, just don't see >>>>>> >>>>> its >>> >>>> value. >>>>>> >>>>>> Martin Grigorov >>>>>> Wicket Training and Consulting >>>>>> >>>>>> >>>>>> On Wed, Feb 26, 2014 at 5:37 PM, Guillaume Smet < >>>>>> >>>>> guillaume.s...@gmail.com >>>>> >>>>>> wrote: >>>>>>> On Wed, Feb 26, 2014 at 4:33 PM, tetsuo <ronald.tet...@gmail.com> >>>>>>> >>>>>> wrote: >>>>> >>>>>> Because... it's an unnecessary breaking change? >>>>>>>> >>>>>>> From what I understand of your previous post, you implements some >>>>>>> >>>>>> of >>> >>>> your converters in Enums, which you can do because IChoiceRenderer >>>>>>> >>>>>> is >>> >>>> currently an interface. And you won't be able to do it if it's a >>>>>>> class. >>>>>>> >>>>>>> Am I right? >>>>>>> >>>>>>> >