Hi Matthew,
> Hmmmm..
> The problem though is this Mixin is included in about half of our
> classes. If I understand correctly to use the qx.Class.patch() method we
> must do this outside of the class. Would it be possible to enhance
> qx.Mixin slightly? I am thinking we could allow an extra root key for
> mixins something like type that could be set to "patch". The only
> difference in the way that mixins and patched get applied is via a
> parameter so this change shouldn't be too hard.
>
If I understand you correctly you want something like:
qx.Class.define("custom.Application",
{
extend : qx.core.Object,
patch : [custom.MMixin]
});
I think this could be an option but since it touches the core of qooxdoo
it definitively needs some discussion. Could you open a bug for this
issue so we can track the discussion there?
In the meantime you can use something like this:
qx.Class.define("custom.Application",
{
extend : qx.core.Object,
defer : function(statics) {
qx.Class.patch(statics, custom.MMixin);
}
});
The only problems with this approach is that the mixin methods don't
show up in the API viewer.
Best Fabian
> Fabian Jakobs wrote:
>
>> Moin,
>>
>>> This is by design because functions of a Mixin might be used in
>>> completely different classes. The base call implemention relies on a
>>> property on the function which could not be applied for mixins as
>>> these methods are shared between different classes and do not have a
>>> super class. This applies to all reference type elements in a Mixin.
>>> These are shared between all classes which includes that mixin.
>>>
>>> You can still call any other methods from anywhere manually, but I do
>>> not think that there is any well working option or even idea how this
>>> could be solved (while still making sense) ;)
>>>
>> The option it to wrap the attached mixin methods so each class including
>> the mixin points to a separate function. This is actually implemented in
>> the framework since rev. 13972. Since it causes some overhead it is only
>> applied if qx.Class.patch is used. See bug #323
>> <http://bugzilla.qooxdoo.org/show_bug.cgi?id=323> for details.
>>
>> Calling "this.base(arguments)" from a mixin member will call the
>> overridden/patched member in the class including the mixin.
>>
>> Best Fabian
>>
>>
>
>
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> Series Scanner you'll get full speed at 300 dpi even with all image
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
--
Fabian Jakobs
JavaScript Framework Developer
1&1 Internet AG - Web Technologies
Ernst-Frey-Straße 9 · DE-76135 Karlsruhe
Telefon: +49 721 91374-6784
[email protected]
Amtsgericht Montabaur / HRB 6484
Vorstände: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas
Gottschlich, Robert Hoffmann, Markus Huhn, Hans-Henning Kettler, Dr. Oliver
Mauss, Jan Oetjen
Aufsichtsratsvorsitzender: Michael Scheeren
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel