In an UI I want to enable/disable a ReferenceView based on (for example) a
checkbox. This works only partially, the reference view is disabled (doesn't accept input or clicks) but the views in the referenced ContainerView (like TextEdit, PushButton) don't show as disabled. To solve this it's tempting to override #isEnabled: in ContainerView like this: isEnabled: aBoolean self presenter subPresenters do: [:each | each view isEnabled: aBoolean]. But this is to simplistic; first, not every view has a Presenter (PushButton) and second, there seems to be circularities that cause isEnabled: to recurse. The first problem can be solved by calling 'super isEnabled: aBoolean' and the second by keeping a list of visited views. This all looks a bit complicated to me. So my question is, is there an easier way or am I overlooking something? Pieter Emmelot Dolphin 5.0.3/Win2K PS. A small package with a demo presenter is attached. begin 666 DisableDemo.pac M?"!P86-K86=E('P-"G!A8VMA9V4@.CT@4&%C:V%G92!N86UE.B G1&ES86)L M941E;6\G+@T*<&%C:V%G92!P87A697)S:6]N.B P.PT*"6)A<VEC0V]M;65N M=#H@)R<N#0H-"@T*<&%C:V%G92!C;&%S<TYA;65S#0H)861D.B C1&ES86)L M941E;6]0<F5S96YT97([#0H)>6]U<G-E;&8N#0H-"G!A8VMA9V4@8FEN87)Y M1VQO8F%L3F%M97,Z("A3970@;F5W#0H)>6]U<G-E;&8I+@T*#0IP86-K86=E M(&=L;V)A;$%L:6%S97,Z("A3970@;F5W#0H)>6]U<G-E;&8I+@T*#0IP86-K M86=E(&%L;%)E<V]U<F-E3F%M97,Z("A3970@;F5W#0H)861D.B C1&ES86)L M941E;6]0<F5S96YT97(@+3X@)T1E9F%U;'0@=FEE=R<[#0H)>6]U<G-E;&8I M+@T*#0IP86-K86=E('-E=%!R97)E<75I<VET97,Z("A)9&5N=&ET>5-E="!N M97<-"@EA9&0Z("=/8FIE8W0@07)T<UQ$;VQP:&EN7$)A<V5<1&]L<&AI;B<[ M#0H)861D.B G3V)J96-T($%R='-<1&]L<&AI;EQ-5E!<0F%S95Q$;VQP:&EN M($U64"!"87-E)SL-"@EA9&0Z("=/8FIE8W0@07)T<UQ$;VQP:&EN7$U64%Q4 M>7!E($-O;G9E<G1E<G-<1&]L<&AI;B!4>7!E($-O;G9E<G1E<G,G.PT*"6%D M9#H@)T]B:F5C="!!<G1S7$1O;'!H:6Y<35907$UO9&5L<UQ686QU95Q$;VQP M:&EN(%9A;'5E($UO9&5L<R<[#0H)>6]U<G-E;&8I+@T*#0IP86-K86=E(0T* M#0HB0VQA<W,@1&5F:6YI=&EO;G,B(0T*#0I0<F5S96YT97(@<W5B8VQA<W,Z M("-$:7-A8FQE1&5M;U!R97-E;G1E<@T*"6EN<W1A;F-E5F%R:6%B;&5.86UE M<SH@)V-H96-K4')E<V5N=&5R('1E>'10<F5S96YT97(@8V]N=&%I;F5R4')E M<V5N=&5R)PT*"6-L87-S5F%R:6%B;&5.86UE<SH@)R<-"@EP;V]L1&EC=&EO M;F%R:65S.B G)PT*"6-L87-S26YS=&%N8V5687)I86)L94YA;65S.B G)R$- M"@T*(D=L;V)A;"!!;&EA<V5S(B$-"@T*#0HB3&]O<V4@365T:&]D<R(A#0H- M"B)%;F0@;V8@<&%C:V%G92!D969I;FET:6]N(B$-"@T*(E-O=7)C92!';&]B M86QS(B$-"@T*(D-L87-S97,B(0T*#0I$:7-A8FQE1&5M;U!R97-E;G1E<B!G M=6ED.B H1U5)1"!F<F]M4W1R:6YG.B G>S(R0C)#-4(W+4$W.#<M-#$X.2U" M0S,W+3@W14,Q,T4W0D1#,GTG*2$-"D1I<V%B;&5$96UO4')E<V5N=&5R(&-O M;6UE;G0Z("<G(0T*(41I<V%B;&5$96UO4')E<V5N=&5R(&-A=&5G;W)I97-& M;W)#;&%S<R%-5E M4')E<V5N=&5R<R$@(0T*(41I<V%B;&5$96UO4')E<V5N M=&5R(&UE=&AO9'-&;W(A#0H-"F-L:6-K#0H-"@E3;W5N9"!B965P(0T*#0IC M<F5A=&5#;VUP;VYE;G1S#0H-"@ES=7!E<B!C<F5A=&5#;VUP;VYE;G1S+@T* M"6-O;G1A:6YE<E!R97-E;G1E<B Z/2!S96QF(&%D9#H@4')E<V5N=&5R(&YE M=R!N86UE.B G8V]N=&%I;F5R)RX-"@ET97AT4')E<V5N=&5R(#H]('-E;&8@ M861D.B!497AT4')E<V5N=&5R(&YE=R!N86UE.B G=&5X="<N#0H)8VAE8VM0 M<F5S96YT97(@(#H]('-E;&[hidden email]!";V]L96%N4')E<V5N=&5R(&YE=R!N M86UE.B G8VAE8VLG+@T*(0T*#0IC<F5A=&538VAE;6%T:6-7:7)I;F<-"@DB M0W)E871E('1H92!T<FEG9V5R('=I<FEN9R!F;W(@=&AE(')E8V5I=F5R(@T* M"0T*"7-U<&5R(&-R96%T95-C:&5M871I8U=I<FEN9RX-"@EC:&5C:U!R97-E M;G1E<B @=VAE;CH@(W9A;'5E0VAA;F=E9"!S96YD.B C;VY#:&5C:U9A;'5E M0VAA;F=E9"!T;SH@<V5L9BX-"@T*"2$-"@T*;VY#:&5C:U9A;'5E0VAA;F=E M9" -"@T*"7P@96YA8FQE9"!\#0H)96YA8FQE9" Z/2!C:&5C:U!R97-E;G1E M<B!M;V1E;"!V86QU92X-"@ET97AT4')E<V5N=&5R('9I97<@:7-%;F%B;&5D M.B!E;F%B;&5D+@T*( EC;VYT86EN97)0<F5S96YT97(@=FEE=R!I<T5N86)L M960Z(&5N86)L960N#0H-"@T*#0HA#0H-"F]N5FEE=T]P96YE9 T*#0H)<W5P M97(@;VY6:65W3W!E;F5D+@T*"6-H96-K4')E<V5N=&5R(&UO9&5L('9A;'5E M.B!T<G5E(2 A#0HA1&ES86)L941E;6]0<F5S96YT97(@8V%T96=O<FEE<T9O M<CH@(V-L:6-K(7!U8FQI8R$@(0T*(41I<V%B;&5$96UO4')E<V5N=&5R(&-A M=&5G;W)I97-&;W(Z("-C<F5A=&5#;VUP;VYE;G1S(7!U8FQI8R$@(0T*(41I M<V%B;&5$96UO4')E<V5N=&5R(&-A=&5G;W)I97-&;W(Z("-C<F5A=&538VAE M;6%T:6-7:7)I;F<A<'5B;&EC(2 A#0HA1&ES86)L941E;6]0<F5S96YT97(@ M8V%T96=O<FEE<T9O<CH@(V]N0VAE8VM686QU94-H86YG960A<'5B;&EC(2 A M#0HA1&ES86)L941E;6]0<F5S96YT97(@8V%T96=O<FEE<T9O<CH@(V]N5FEE M=T]P96YE9"%E=F5N="!H86YD;&EN9R%P=6)L:6,A("$-"@T*(D)I;F%R>2!' M;&]B86QS(B$-"@T*(E)E<V]U<F-E<R(A#0H-"BA297-O=7)C94ED96YT:69I M97(@8VQA<W,Z($1I<V%B;&5$96UO4')E<V5N=&5R(&YA;64Z("=$969A=6QT M('9I97<G*2!A<W-I9VXZ("A/8FIE8W0@9G)O;4)I;F%R>5-T;W)E0GET97,Z M#0HH0GET94%R<F%Y(&9R;VU(97A3=')I;F<Z("<R,34S-30T,C(P,S$R,#0V M,#(P0S P,#$P,# P,# U-C8Y-C4W-S4R-C4W,S9&-S4W,C8S-C4P,# P,# P M,#!%,#$R-# P-3,U-#0R-3(V-3<S-D8W-3<R-C,V-34S-30T,C0R-SDW-#8U M-#$W,C<R-C$W.30Q-C,V,S8U-S,W,S9&-S(U,#<R-D8W.#<Y,# P,# P,# W M,C P,# P,$(V,$(P,# P,C$U,S4T-#(R,#,Q,C T13 X,$,P,#!!,# P,# P M-3,U-#0R-38V.38U-S<U,#<R-D8W.#<Y,# P,# P,# Y03 P,# P,# P,# P M,# P-3(P,# P,# Q,# P,# P,#0T-D8V0S<P-C@V.39%,C T1#4V-3 R,#0R M-C$W,S8U-3(P,# P,# P1# P,# P,#0S-D8V13<T-C$V.39%-C4W,C4V-CDV M-3<W-C(P,# P,# P1C P,# P,# P,# P,# P,# P,# P,# V,C P,# P,# R M,# P,# P.#(P,# P,# P-# P,# P,# P,# P,#0T,#$P,# R,#!!,# Q,# P M,# P,# P,# P,# P,# P,# P,# P,# P,# W,# P,# P,# P,# P,# P,# P M,# P,# P,# P,# P03 P,3 P,# P,# P,# P,$5!,# P,# P,# P,# P,# P M,# Q,# P,#8R,# P,# P,#8P,# P,# Y03 Q,# P,# P,# P,# P0C P,3 P M,# V,C P,# P,#!&,# P,# P,# P,# P,#!!,# Q,# P,#8R,# P,# P,#(P M,# P,# X,C P,# P,# T,# P,# P,# P,#@P-#0P,3 P,#(P,#,P,#(P,# P M,# P,# P,# P,# P,# P,# P,# P,# P,#<P,# P,# P,# P,# P,# P,# P M,# P,# P,# P,# S,# R,# P,# P,# P,# P14$P,# P,# P,# P,# P,# P M,#$P,# P-C(P,# P,# P,# P,# P,# P,# P,# P,#8P,3!&,# T1#8U-S,W M,S8Q-C<V-34S-C4W,3<U-C4V138S-C4P,# P,# P,$-!,# P,# P,# P,# P M,#!$,# P,# P,#8R,# P,# P,#$P,# P,# P-C S,$(P,#1$-C4W,S<S-C$V M-S8U-3,V-39%-C0P,# P,# P,$)!,# P,# P,# P,# P,# U,C P,# P,#$P M,# P,# P-C,W,C8U-C$W-#8U-#$W-#-!-C4W.#<T-C4V13<T,T$V,C P,# P M,# R,# P,# P,#8P,C U,# U,#9&-CDV13<T,# P,# P,# V-3 P,# P,$0S M,# P,# P,C(P,S P,# P,# P,# P,#<S,#$P,# P0C4P,# P,# S,# R,# P M,# V,#$P1C P-3<T.31%-#0T1C4W-3 T0S0Q-#,T-31$-#4T134T,# P,# P M,# W,C P,# P,#)#,# P,# P,D,P,# P,# P,# P,# P,# Q,# P,# P1D9& M1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D8S,C P,# P,#8Y,# P,# P M14(P,# P,#!#,S P,# P,$-!,# P,# P,# P,# P,#!$,# P,# P,#8R,# P M,# P,#,P,# P,# Y03 Q,# P,# P,# P,# P.4$P,# P,# P,# P,# P,$,P M,#$P,# P-3(P,# P,# P.# P,# P,#4T-C4W.#<T-#4V-#8Y-S0V,C P,# P M,#$P,# P,# P,# P,# P,# S,# R,# P,#8R,# P,# P,#(P,# P,# X,C P M,# P,# T,# P,# P.# P,# Q-#0P,3 T,# P,$$P,#,P,# P,# P,# P,# P M,# P,# P,# P,# P,# P,#<P,# P,# P,# P,# P,# P,# P,# P,# P,# P M,#!!,# S,# P,# P,# P,# P.#(P,# P,# P-# P,# P,#5&.3-%,3<W,#8P M,C!$,# T13<U-D,V0S0S-D8V13<V-C4W,C<T-C4W,C P,# P,# P,# P,# P M,# P,# P,# P,# Q,# P,# P.3(P,C P,# P,# P,# P,$-!,# P,# P,# P M,# P,#!$,# P,# P,#8R,# P,# P,#0P,# P,#!$,C R,# P,# P,# P,# P M1C P,C P,# V,C P,# P,# R,# P,# P,C(P,S P,# P,# P,# P,#$U,# P M,# P,34P,# P,# R,C S,# P,# P,# P,# P-#$P,3 P,# S,S P,# P,$$P M,#,P,# P1#(P,C P,# P,# P,# P,$)!,# P,# P,# P,# P,# U,C P,# P M,# U,# P,# P-S0V-3<X-S0S038R,# P,# P,#$P,# P,# U,C P,# P,#$Y M,# P,# P-30V-3<X-S0T-38T-CDW-#(P-CDV13(P-#,V1C9%-S0V,38Y-D4V M-3<R-38V.38U-S=!,# S,# P,$0R,#(P,# P,# P,# P,#!"03 P,# P,# P M,# P,# P-3(P,# P,# P1C P,# P,#<S-C4V0S8U-C,W-#8Y-D8V134R-C$V M138W-C4S038R,# P,# P,#$P,# P,# P-C S,#@P,#0Y-D4W-#8U-S(W-C8Q M-D,P,# P,# P,# S,# P,# P,#$P,# P,# P,S P,# P,$$P,#,P,# P1#(P M,C P,# P,# P,# P,$)!,# P,# P,# P,# P,# U,C P,# P,#!&,# P,# P M-CDW,S4T-C4W.#<T-$0V1C8T-CDV-C8Y-C4V-#-!-C(P,# P,# P,3 P,# P M,#(P,# P,# P03 P,S P,# U,C S,# P,# P,# P,# P-S(P,# P,# R0S P M,# P,#)#,# P,# P,# P,# P,# P,3 P,# P,$9&1D9&1D9&1D9&1D9&1D9& M1D9&1D9&1D9&1D9&1D9&,$$P,# P,# P03 P,# P,$%!,# P,# P,C,P,# P M,#!#03 P,# P,# P,# P,# P1# P,# P,# X,# R,# P,#(R,#,P,# P,# P M,# P,#!#,3 P,# P,$,Q,# P,# P,# P,# P,# Q,S P,# P,#E!,#$P,# P M,# P,# P,# Y03 P,# P,# P,# P,# P0S P,3 P,# U,C P,# P,# X,# P M,# P-#,V.#8U-C,V0C0R-D8W.#8R,# P,# P,3 P,# P,# P,# P,# P,#,P M,#(P,# P-C(P,# P,# P,C P,# P,#@R,# P,# P,#0P,# P,# P,S(P,#$T M-# Q,# P,# P1# P-3 P,# T-C T,$(P,# R,# P,# P-38V,39#-S4V-30X M-D8V0S8T-C4W,C P,# P,# P,# P,# P,# P,# P,# P,# V,# Q,3 P-$4V M-3<V-C4W,C4S-C4V,3<R-C,V.#4P-D8V0S8Y-C,W.3 P,# P,# P,C P,# P M,# P,# P,# P,# P,# P,# P,#<P,# P,# P,# P,# P,# P,# P,# P,# P M,# P,#!$,# U,# P,# P,# P,# P.#(P,# P,# P-# P,# P,#)%03)%,C<W M,3(P-# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,#DR,#(P M,# P,# P,# P,#!#03 P,# P,# P,# P,# P1# P,# P,# V,C P,# P,# R M,# P,# P1#(P,C P,# P,# P,# P,$8P,#(P,# P-C(P,# P,# P,C P,# P M,#(R,#,P,# P,# P,# P,# Q-3 P,# P,#5",# P,# P,C(P,S P,# P,# P M,# P,#<Y,# P,# P,T0P,# P,#!$,# U,# P,$0R,#(P,# P,# P,# P,#!" M,# T,# P,#8R,# P,# P,#$P,# P,# U,C P,# P,# T,# P,# P-3@U.#4X M-3A$,# U,# P,#4R,#,P,# P,# P,# P,# W,C P,# P,#)#,# P,# P,D,P M,# P,# P,# P,# P,# Q,# P,# P1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9& M1D9&1D9&1D8P03 P,# P,#)$,# P,# P-#8P,# P,# T0C P,# P,$-!,# P M,# P,# P,# P,#!$,# P,# P,#@P,#(P,# P0S P-3 P,# P,# P,# P,#$S M,# P,# P.4$P,3 P,# P,# P,# P,#E!,# P,# P,# P,# P,#!#,# Q,# P M,#4R,# P,# P,$$P,# P,# U,#<U-S,V.#0R-S4W-#<T-D8V138R,# P,# P M,3$P,# P,# P,# P,# P,#,P,#(P,# P-C(P,# P,# P,C P,# P,#@R,# P M,# P,#0P,# P,# P,#(P,#$T-# Q,# P,# P-C P-S P,# P,# P,# P,# P M,# P,# P,C(P,S P,# P,# P,# P,#DQ,#$P,# P0SDP,# P,# P-S P,# P M,# P,# P,# P,# P,# P,# P,# P,# P,#8P,#<P,# P,# P,# P,# X,C P M,# P,# T,# P,# P,D5!,D4R-S<T-C U,3(P,# T,# P,# P-#,V1C9$-D0V M,39%-C0T-#8U-S,V,S<R-CDW,#<T-CDV1C9%,# P,# P,#!"03 P,# P,# P M,# P,# P-3(P,# P,# P-3 P,# P,#8S-D,V.38S-D(P,# P,# P,# Q,# P M,# P,#$P,# P,# P,# P,# P,# P,# P,# P,#$P,# P,# Y,C R,# P,# P M,# P,# P0T$P,# P,# P,# P,# P,$0P,# P,# P-C(P,# P,# P,C P,# P M,$0R,#(P,# P,# P,# P,#!&,# R,# P,#8R,# P,# P,#(P,# P,# R,C S M,# P,# P,# P,# P04(P,# P,# U0C P,# P,#(R,#,P,# P,# P,# P,#!! M0C P,# P,#-$,# P,# P-C P-S P,#!$,C R,# P,# P,# P,# P0D$P,# P M,# P,# P,# P,#4R,# P,# P,$$P,# P,# V.3<S-#4V138Q-C(V0S8U-C0S M038R,# P,# P,#$P,# P,# R,# P,# P,#8P,#<P,# P-3(P,S P,# P,# P M,# P,#<R,# P,# P,D,P,# P,# R0S P,# P,# P,# P,# P,#$P,# P,#!& M1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1C4U,# P,# P,D0P,# P M,#!!03 P,# P,#1",# P,# P0T$P,# P,# P,# P,# P,$0P,# P,# P.# P M,C P,#!#,# U,# P,# P,# P,# P,3,P,# P,#!#,# U,# P,# P,# P,# P M,3,P,# P,# U,C P,# P,# Y,# P,# P-C,V1C9%-S0V,38Y-D4V-3<R.4$P M,3 P,# P,# P,# P,$4P,#4P,# P-C(P,# P,# Q,# P,# P,# P,# P,# P M03 P,3 P,# V,C P,# P,# R,# P,# P.#(P,# P,# P-# P,# P,# S,C P M,30T,#$P,# P,# Q,# Y,# P,#,R,#8P,# P,# P,# P,# P,# P,# P,# P M,# P,# P-3(P-C P,# P,# P,# P,#(P,# P,# P,# P,# P,# P,# P,# P M,# W,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,3 P.3 P,# P,# P M,# P,#@R,# P,# P,#0P,# P,# R14$R13(W-S$R,#0P,# P,# P,# P,# P M,# P,# P,# P,# P,# P,# P,# P,# Y,C R,# P,# P,# P,# P0T$P,# P M,# P,# P,# P,$0P,# P,# P-C(P,# P,# P,C P,# P,$0R,#(P,# P,# P M,# P,#!&,# R,# P,#8R,# P,# P,#(P,# P,# R,C S,# P,# P,# P,# P M,T0P,# P,# S1# P,# P,#(R,#,P,# P,# P,# P,# U.3 R,# P,#-$,# P M,# P,3 P.3 P,#!$,C R,# P,# P,# P,# P0C P-# P,# V,C P,# P,# Q M,# P,# P-3(P,# P,# S,C P,# P,#0S-D,V.38S-D(R,#<T-D8R,#8U-D4V M,38R-D,V-3)&-C0V.3<S-C$V,C9#-C4R,#4T-C4W.#<T-#4V-#8Y-S0R,#8Q M-D4V-#(P-#,V1C9%-S0V,38Y-D4V-3<R-38V.38U-S<Q,# Y,# P,#4R,#,P M,# P,# P,# P,# W,C P,# P,#)#,# P,# P,D,P,# P,# P,# P,# P,# Q M,# P,# P1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D8Q13 P,# P M,#%%,# P,# P-$$P,3 P,# S0S P,# P,$-!,# P,# P,# P,# P,#!$,# P M,# P,#@P,#(P,# P0S P-3 P,# P,# P,# P,#$S,# P,# P-3(P,# P,# P M-3 P,# P,#8S-C@V-38S-D(Y03 Q,# P,# P,# P,# P0C P,S P,# V,C P M,# P,#$P,# P,# P,# P,# P,#!!,# Q,# P,#8R,# P,# P,#(P,# P,# X M,C P,# P,# T,# P,# P.# P,# Q-#0P,3 T,# P,#<P,$$P,# P,# P,# P M,# P,# P,# P,# P,# P,# P,#<P,# P,# P,# P,# P,# P,# P,# P,# P M,# P,# W,#!!,# P,# P,# P,# P.#(P,# P,# P-# P,# P,#5&.3-%,3<W M,3(P-# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,3 P,# P,#DR,#(P M,# P,# P,# P,#!#03 P,# P,# P,# P,# P1# P,# P,# V,C P,# P,# T M,# P,# P1#(P,C P,# P,# P,# P,$8P,#(P,# P-C(P,# P,# P,C P,# P M,#(R,#,P,# P,# P,# P,# V-3 P,# P,#A$,# P,# P,C(P,S P,# P,# P M,# P,#=$,#$P,# P,S,P,# P,# W,#!!,# P,$0R,#(P,# P,# P,# P,#!" M,# T,# P,#8R,# P,# P,#$P,# P,# U,C P,# P,# X,# P,# P-30V-3<X M-S0T-38T-CDW-#<P,$$P,# P1#(P,C P,# P,# P,# P,# P,#4P,# P-C(P M,# P,# P,3 P,# P,#,R,#4P,# P,# P,# P,# P,S P,# P,# Q,# P,# P M,#,P,# P,# W,#!!,# P,$0R,#(P,# P,# P,# P,# V,# U,# P,#8R,# P M,# P,#$P,# P,# R,# P,# P,#<P,$$P,# P-3(P,S P,# P,# P,# P,#<R M,# P,# P,D,P,# P,# R0S P,# P,# P,# P,# P,#$P,# P,#!&1D9&1D9& M1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1C,R,# P,# P-#8P,# P,#!&,# P M,# P,#5&,# P,# P0T$P,# P,# P,# P,# P,$0P,# P,# P.# P,C P,#!# M,# U,# P,# P,# P,# P,3,P,# P,# U,C P,# P,# T,# P,# P-S0V-3<X M-S0P,# P,# P,#DR,#(P,# P,# P,# P,#!#03 P,# P,# P,# P,# P1# P M,# P,# V,C P,# P,# Q,# P,# P1#(P,C P,# P,# P,# P,$8P,#(P,# P M-C(P,# P,# P,C P,# P,#(R,#,P,# P,# P,# P,# P0C P,# P,#!",# P M,# P,C(P,S P,# P,# P,# P,$)$,#(P,# P1C4P,3 P,#!!,# Q,# P,#4R M,#,P,# P,# P,# P,# W,C P,# P,#)#,# P,# P,D,P,# P,# P,# P,# P M,# P,# P,# P1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D8P-3 P M,# P,# U,# P,# P-C,P,3 P,#!&1C P,# P,$-!,# P,# P,# P,# P,#!$ M,# P,# P,#8R,# P,# P,#,P,# P,# Q,# Y,# P,#<P,$$P,# P,S P,C P M,#!#,# U,# P,# P,# P,# P,3,P,# P,# T-C U,#0P,# S,# P,# P-#DV M,S9&-D4P,# P,# P,# P,# P,# P,3 P,# P,# P13 R,3$P,#4S-30T,C4S M-CDV138W-D,V-3<T-D8V134P-S(V1C<X-SDP,# P,# P,#E!,# P,# P,# P M,# P,# U,C P,# P,# W,# P,# P-#0V1C9#-S V.#8Y-D4U,C P,# P,#$X M,# P,# P-#DV1#8Q-C<V-34R-C4V0S8Q-S0V.3<V-C4T-C8Y-D,V-31#-D8V M,S8Q-S0V1C<R0D$P,# P,# P,# P,# P,#4R,# P,# P,#<P,# P,# V,S<U M-S(W,C8U-D4W-#4R,# P,# P,3$P,# P,# T,S9&-D4W-#8Q-CDV138U-S(U M-C8Y-C4W-S)%-CDV,S9&,$4P,C%&,# U,S4T-#(T-3<X-S0V-3<R-D4V,39# M-3(V-3<S-D8W-3<R-C,V-31#-CDV,C<R-C$W,C<Y-3 W,C9&-S@W.3 P,# P M,# P-3(P,# P,# Q,# P,# P,#8T-D8V0S<P-C@V.39%-C0W,C,P,S S-3)% 6-C0V0S9#,# P,# P,# G*2DA#0H-"@`` ` end |
Pieter,
> This works only partially, the reference view is disabled (doesn't > accept input or clicks) but the views in the referenced ContainerView > (like TextEdit, PushButton) don't show as disabled. [snip] > visited views. This all looks a bit complicated to me. So my question > is, is there an easier way or am I overlooking something? You _could_ add a #isEnabled: method to ContainerView (iterating over subViews rather than subPresenters) but it seems a bit dangerous to me. You can't be sure what other methods may have been used to get around the problem (maybe others want the subviews to still display as enabled) and how they will interact with the new addition. It may be fine .... or it may not. I would think it would be safer to change your shell method to onCheckValueChanged | enabled | enabled := checkPresenter model value. textPresenter view isEnabled: enabled. containerPresenter view subViews do: [:each | each isEnabled: enabled] One further problem is that, as far as I recall, this sort of thing won't work with Buttons or any other command sources. You may disable the control but Dolphins built-in command enabling mechanism may well immediately re-enable it for you. To enable PushButtons it is probably best to go with the flow and use the #queryCommand procedure ... queryCommand: aCommandQuery aCommandQuery command == #click ifTrue: [aCommandQuery isEnabled: checkPresenter model value. ^true]. ^super queryCommand: aCommandQuery -- Ian |
Ian,
Thanks for your reponse. The work-a-round you described works for a single level ContainerView, but suppose I want to build my UI from other views which in turn may also be build from other views? To enable/disable them would require knowing the hierarchy! I would argu that there should be no difference between enabling/disabling for example a standard combobox and a 'home build' one, composed of a TextEdit and a PushButton, used as a reference view. So I digged a bit futher and came up with the following two methods. Together they give visual feedback on disabled controls and disable PushButtons without interfering with queryCommand:. - Pieter ContainerView>>isEnabled: aBoolean super isEnabled: aBoolean. self subViews do: [:each | each isEnabled: aBoolean]. PushButton>>isEnabled: aBoolean super isEnabled: (aBoolean and: [self parentView ifNotNil: [:o | o isEnabled] ifNil: [true]]) | |
Pieter,
> ContainerView>>isEnabled: aBoolean > super isEnabled: aBoolean. > self subViews do: > [:each | > each isEnabled: aBoolean]. This one seems quite reasonable and would probably be the way I would implement it if needed. As you say, it solves the problems of containers within containers. The only thing that would concern me is why it's not implemented that way by default - it seems so obvious. If you do add this method I'd keep a close eye on the image just to make sure nothing else gets broken. > PushButton>>isEnabled: aBoolean > super isEnabled: (aBoolean and: [self parentView ifNotNil: [:o | o > isEnabled] ifNil: [true]]) This seems a bit more of a risk (although I haven't tried it in practice) . The whole of the system is built around command sources being enabled/disabled dynamically by the #queryCommand methods and having an alternative system might be asking for trouble. If it works though ...... -- Ian |
"Ian Bartholomew" <[hidden email]> wrote in message
news:XnVka.2194$[hidden email]... > Pieter, > > > ContainerView>>isEnabled: aBoolean > > super isEnabled: aBoolean. > > self subViews do: > > [:each | > > each isEnabled: aBoolean]. > > This one seems quite reasonable and would probably be the way I would > implement it if needed. As you say, it solves the problems of > containers within containers. FWIW, I had to code practically the exact same thing in Visual FoxPro. |
In reply to this post by Ian Bartholomew-18
Ian,
| The only thing that would concern me is why it's not implemented that | way by default - it seems so obvious. If you do add this method I'd | keep a close eye on the image just to make sure nothing else gets | broken. Maybe just a matter of so many thing to do, so little time? Anyway, so far I didn't see any problems, when I find something I will post... - Pieter |
Free forum by Nabble | Edit this page |