Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Igor Vaynberg
i added boolean canCallListenerInterface(Component component) to ibehavior

-igor

On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com wrote:
 which method name?

 I currently only have a tagging interface that tags this behavior...

 On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i just fixed it in trunk. in 1.4 we dont really have a choice but to
 add the mixin interface, but can you at least make the method name
 match?

 cheers,
 -igor

 On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com 
 wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and 
 repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 
 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
  import org.apache.wicket.RequestCycle;
  import org.apache.wicket.RequestListenerInterface;
  import org.apache.wicket.behavior.IBehavior;
  import org.apache.wicket.behavior.IBehaviorListener;
 +import org.apache.wicket.behavior.IIgnoreDisabledComponentBehavior;
  import org.apache.wicket.protocol.http.PageExpiredException;
 +import org.apache.wicket.protocol.http.WebRequest;
  import org.apache.wicket.request.RequestParameters;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
 @@ -85,13 +88,6 @@
                // Get the IBehavior for the 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Johan Compagner
yes that i did see in 1.5
but in 1.4 i guess the only thing we can do is just introduce that
IIgnoreDisabledComponentBehavior interface (that doesnt have any
method)

(or something the same with a different name, any recomendations?)

johan


On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i added boolean canCallListenerInterface(Component component) to ibehavior

 -igor

 On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com 
 wrote:
 which method name?

 I currently only have a tagging interface that tags this behavior...

 On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i just fixed it in trunk. in 1.4 we dont really have a choice but to
 add the mixin interface, but can you at least make the method name
 match?

 cheers,
 -igor

 On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com 
 wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and 
 repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 
 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
  import org.apache.wicket.RequestCycle;
  import org.apache.wicket.RequestListenerInterface;
  import org.apache.wicket.behavior.IBehavior;
  import org.apache.wicket.behavior.IBehaviorListener;
 +import 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Martijn Dashorst
IWontDoAnythingWhenTheComponentIsDisabledBehavior
IMASlackerBehavior

Martijn

On Wed, Nov 24, 2010 at 5:12 PM, Johan Compagner jcompag...@gmail.com wrote:
 yes that i did see in 1.5
 but in 1.4 i guess the only thing we can do is just introduce that
 IIgnoreDisabledComponentBehavior interface (that doesnt have any
 method)

 (or something the same with a different name, any recomendations?)

 johan


 On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i added boolean canCallListenerInterface(Component component) to ibehavior

 -igor

 On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com 
 wrote:
 which method name?

 I currently only have a tagging interface that tags this behavior...

 On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com 
 wrote:
 i just fixed it in trunk. in 1.4 we dont really have a choice but to
 add the mixin interface, but can you at least make the method name
 match?

 cheers,
 -igor

 On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com 
 wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and 
 repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed 
 with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 
 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
  import org.apache.wicket.RequestCycle;
  import 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Pedro Santos
Why don't simple change the AbstractBehavior default isEnabled
implementation to respect the component state, like:

public boolean isEnabled(Component component)
{
return component.isEnabled();
}

It would solve the problem at the ticket. IMO the proposed interface is
prolix because the behavior enabled/disabled state is enough information to
decide to silent return or not an ajax call to it.

On Wed, Nov 24, 2010 at 2:12 PM, Johan Compagner jcompag...@gmail.comwrote:

 yes that i did see in 1.5
 but in 1.4 i guess the only thing we can do is just introduce that
 IIgnoreDisabledComponentBehavior interface (that doesnt have any
 method)

 (or something the same with a different name, any recomendations?)

 johan


 On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com
 wrote:
  i added boolean canCallListenerInterface(Component component) to
 ibehavior
 
  -igor
 
  On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com
 wrote:
  which method name?
 
  I currently only have a tagging interface that tags this behavior...
 
  On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com
 wrote:
  i just fixed it in trunk. in 1.4 we dont really have a choice but to
  add the mixin interface, but can you at least make the method name
  match?
 
  cheers,
  -igor
 
  On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com
 wrote:
  that i find a big hack
  then i need to have some none visible (in html not in java) label or
  something.. thats horrible then i need to add all kinds of stuff.
 
  I just want that behavior is executed. by a call. that call is not a
  user event (at least not directly)
  it is just (in this example) a resize event that is unrelated to the
  component being disabled. Disabled is just the look in the ui it
  doesnt mean that resizing shouldnt happen
 
  I get that disabled behaviors shouldnt work, i also get that behaviors
  shouldnt work on none visible components (there is no ui)
  but disabled components is just a visual thing. that doesnt mean that
  really all events are also disabled.
 
  for example in Swing on a button yes the click event (ActionListenter)
  is disabled but a ComponentListener (add/remove) still will work
  fine..
 
  johan
 
 
  On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org
 wrote:
  On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:
 
  i am currently using this patch for our wicket code so that we can
 move
  on..
 
 
  First check is that if it is an ajax request for that behavior then
  just throw an abort exception..
  Dont just return null because the constantly a full page render is
  done instead of the ajax behavior request.
 
  Second is that i introduced an tagging interface so that behaviors
 can
  make them self work for disabled components if they want to.
 
  anybody a better idea?
 
  What about adding a companion component for the resize logic ? I.e.
 the
  ListView will be disabled, but the companion component will fire and
 repaint
  the ListView if necessary. This way you explicitly say that you want
 to
  modify disabled component.
 
 
  johan
 
  ### Eclipse Workspace Patch 1.0
  #P wicket
  Index:
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
  ===
  ---
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
   (revision
  0)
  +++
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
   (revision
  0)
  @@ -0,0 +1,28 @@
  +/*
  + * Licensed to the Apache Software Foundation (ASF) under one or
 more
  + * contributor license agreements.  See the NOTICE file distributed
 with
  + * this work for additional information regarding copyright
 ownership.
  + * The ASF licenses this file to You under the Apache License,
 Version 2.0
  + * (the License); you may not use this file except in compliance
 with
  + * the License.  You may obtain a copy of the License at
  + *
  + *  http://www.apache.org/licenses/LICENSE-2.0
  + *
  + * Unless required by applicable law or agreed to in writing,
 software
  + * distributed under the License is distributed on an AS IS
 BASIS,
  + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  implied.
  + * See the License for the specific language governing permissions
 and
  + * limitations under the License.
  + */
  +package org.apache.wicket.behavior;
  +
  +/**
  + * Interface that can be used to tag behaviors where response
 should
  be called on even if the
  + * component is disabled.
  + *
  + * @author jcompagner
  + */
  +public interface IIgnoreDisabledComponentBehavior extends IBehavior
  +{
  +
  +}
  Index:
 
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
  ===
  ---
 
 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Johan Compagner
that first one is a perfect name, except that the intent is that it
works just the opposite!
:)


On Wed, Nov 24, 2010 at 17:20, Martijn Dashorst
martijn.dasho...@gmail.com wrote:
 IWontDoAnythingWhenTheComponentIsDisabledBehavior
 IMASlackerBehavior

 Martijn

 On Wed, Nov 24, 2010 at 5:12 PM, Johan Compagner jcompag...@gmail.com wrote:
 yes that i did see in 1.5
 but in 1.4 i guess the only thing we can do is just introduce that
 IIgnoreDisabledComponentBehavior interface (that doesnt have any
 method)

 (or something the same with a different name, any recomendations?)

 johan


 On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i added boolean canCallListenerInterface(Component component) to ibehavior

 -igor

 On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com 
 wrote:
 which method name?

 I currently only have a tagging interface that tags this behavior...

 On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com 
 wrote:
 i just fixed it in trunk. in 1.4 we dont really have a choice but to
 add the mixin interface, but can you at least make the method name
 match?

 cheers,
 -igor

 On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com 
 wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and 
 repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed 
 with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, 
 Version 2.0
 + * (the License); you may not use this file except in compliance 
 with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Igor Vaynberg
i dont think the name of the mixin matters much because 1.5 is out
soonish. IListenerInterfaceTarget { canCallListenerInterface()} is not
so bad.

-igor

On Wed, Nov 24, 2010 at 8:12 AM, Johan Compagner jcompag...@gmail.com wrote:
 yes that i did see in 1.5
 but in 1.4 i guess the only thing we can do is just introduce that
 IIgnoreDisabledComponentBehavior interface (that doesnt have any
 method)

 (or something the same with a different name, any recomendations?)

 johan


 On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i added boolean canCallListenerInterface(Component component) to ibehavior

 -igor

 On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com 
 wrote:
 which method name?

 I currently only have a tagging interface that tags this behavior...

 On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com 
 wrote:
 i just fixed it in trunk. in 1.4 we dont really have a choice but to
 add the mixin interface, but can you at least make the method name
 match?

 cheers,
 -igor

 On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com 
 wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and 
 repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed 
 with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 
 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Johan Compagner
And then completely remove the check if the component is disabled i guess?

That would work for me but then if users dont really call super() when
they have there own enable logic that would mean it would always be
called..
(because now it just returns true so people could think i dont need to
call super)


On Wed, Nov 24, 2010 at 17:21, Pedro Santos pedros...@gmail.com wrote:
 Why don't simple change the AbstractBehavior default isEnabled
 implementation to respect the component state, like:

    public boolean isEnabled(Component component)
    {
        return component.isEnabled();
    }

 It would solve the problem at the ticket. IMO the proposed interface is
 prolix because the behavior enabled/disabled state is enough information to
 decide to silent return or not an ajax call to it.

 On Wed, Nov 24, 2010 at 2:12 PM, Johan Compagner jcompag...@gmail.comwrote:

 yes that i did see in 1.5
 but in 1.4 i guess the only thing we can do is just introduce that
 IIgnoreDisabledComponentBehavior interface (that doesnt have any
 method)

 (or something the same with a different name, any recomendations?)

 johan


 On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com
 wrote:
  i added boolean canCallListenerInterface(Component component) to
 ibehavior
 
  -igor
 
  On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com
 wrote:
  which method name?
 
  I currently only have a tagging interface that tags this behavior...
 
  On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com
 wrote:
  i just fixed it in trunk. in 1.4 we dont really have a choice but to
  add the mixin interface, but can you at least make the method name
  match?
 
  cheers,
  -igor
 
  On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com
 wrote:
  that i find a big hack
  then i need to have some none visible (in html not in java) label or
  something.. thats horrible then i need to add all kinds of stuff.
 
  I just want that behavior is executed. by a call. that call is not a
  user event (at least not directly)
  it is just (in this example) a resize event that is unrelated to the
  component being disabled. Disabled is just the look in the ui it
  doesnt mean that resizing shouldnt happen
 
  I get that disabled behaviors shouldnt work, i also get that behaviors
  shouldnt work on none visible components (there is no ui)
  but disabled components is just a visual thing. that doesnt mean that
  really all events are also disabled.
 
  for example in Swing on a button yes the click event (ActionListenter)
  is disabled but a ComponentListener (add/remove) still will work
  fine..
 
  johan
 
 
  On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org
 wrote:
  On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:
 
  i am currently using this patch for our wicket code so that we can
 move
  on..
 
 
  First check is that if it is an ajax request for that behavior then
  just throw an abort exception..
  Dont just return null because the constantly a full page render is
  done instead of the ajax behavior request.
 
  Second is that i introduced an tagging interface so that behaviors
 can
  make them self work for disabled components if they want to.
 
  anybody a better idea?
 
  What about adding a companion component for the resize logic ? I.e.
 the
  ListView will be disabled, but the companion component will fire and
 repaint
  the ListView if necessary. This way you explicitly say that you want
 to
  modify disabled component.
 
 
  johan
 
  ### Eclipse Workspace Patch 1.0
  #P wicket
  Index:
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
  ===
  ---
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
       (revision
  0)
  +++
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
       (revision
  0)
  @@ -0,0 +1,28 @@
  +/*
  + * Licensed to the Apache Software Foundation (ASF) under one or
 more
  + * contributor license agreements.  See the NOTICE file distributed
 with
  + * this work for additional information regarding copyright
 ownership.
  + * The ASF licenses this file to You under the Apache License,
 Version 2.0
  + * (the License); you may not use this file except in compliance
 with
  + * the License.  You may obtain a copy of the License at
  + *
  + *      http://www.apache.org/licenses/LICENSE-2.0
  + *
  + * Unless required by applicable law or agreed to in writing,
 software
  + * distributed under the License is distributed on an AS IS
 BASIS,
  + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  implied.
  + * See the License for the specific language governing permissions
 and
  + * limitations under the License.
  + */
  +package org.apache.wicket.behavior;
  +
  +/**
  + * Interface that can be used to tag behaviors where response
 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Johan Compagner
ok then i check my changes in for 1.4
So that at least people that use 1.4  (like us) can use that one for now.

I can add a note in the doc that this will be replaced by 1.5 completely..


On Wed, Nov 24, 2010 at 17:15, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i dont think the name of the mixin matters much because 1.5 is out
 soonish. IListenerInterfaceTarget { canCallListenerInterface()} is not
 so bad.

 -igor

 On Wed, Nov 24, 2010 at 8:12 AM, Johan Compagner jcompag...@gmail.com wrote:
 yes that i did see in 1.5
 but in 1.4 i guess the only thing we can do is just introduce that
 IIgnoreDisabledComponentBehavior interface (that doesnt have any
 method)

 (or something the same with a different name, any recomendations?)

 johan


 On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com wrote:
 i added boolean canCallListenerInterface(Component component) to ibehavior

 -igor

 On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner jcompag...@gmail.com 
 wrote:
 which method name?

 I currently only have a tagging interface that tags this behavior...

 On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg igor.vaynb...@gmail.com 
 wrote:
 i just fixed it in trunk. in 1.4 we dont really have a choice but to
 add the mixin interface, but can you at least make the method name
 match?

 cheers,
 -igor

 On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com 
 wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and 
 repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed 
 with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, 
 Version 2.0
 + * (the License); you may not use this file except in compliance 
 with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-24 Thread Pedro Santos
On Wed, Nov 24, 2010 at 2:24 PM, Johan Compagner jcompag...@gmail.comwrote:

 And then completely remove the check if the component is disabled i guess?


exactly


 That would work for me but then if users dont really call super() when
 they have there own enable logic that would mean it would always be
 called..
 (because now it just returns true so people could think i dont need to
 call super)


I know, but I still think that the behavior state is the more important one.
I would not be concerned with custom isEnabled implementations, they will
just became more important.



 On Wed, Nov 24, 2010 at 17:21, Pedro Santos pedros...@gmail.com wrote:
  Why don't simple change the AbstractBehavior default isEnabled
  implementation to respect the component state, like:
 
 public boolean isEnabled(Component component)
 {
 return component.isEnabled();
 }
 
  It would solve the problem at the ticket. IMO the proposed interface is
  prolix because the behavior enabled/disabled state is enough information
 to
  decide to silent return or not an ajax call to it.
 
  On Wed, Nov 24, 2010 at 2:12 PM, Johan Compagner jcompag...@gmail.com
 wrote:
 
  yes that i did see in 1.5
  but in 1.4 i guess the only thing we can do is just introduce that
  IIgnoreDisabledComponentBehavior interface (that doesnt have any
  method)
 
  (or something the same with a different name, any recomendations?)
 
  johan
 
 
  On Wed, Nov 24, 2010 at 16:57, Igor Vaynberg igor.vaynb...@gmail.com
  wrote:
   i added boolean canCallListenerInterface(Component component) to
  ibehavior
  
   -igor
  
   On Wed, Nov 24, 2010 at 12:54 AM, Johan Compagner 
 jcompag...@gmail.com
  wrote:
   which method name?
  
   I currently only have a tagging interface that tags this behavior...
  
   On Wed, Nov 24, 2010 at 03:00, Igor Vaynberg 
 igor.vaynb...@gmail.com
  wrote:
   i just fixed it in trunk. in 1.4 we dont really have a choice but to
   add the mixin interface, but can you at least make the method name
   match?
  
   cheers,
   -igor
  
   On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner 
 jcompag...@gmail.com
  wrote:
   that i find a big hack
   then i need to have some none visible (in html not in java) label
 or
   something.. thats horrible then i need to add all kinds of stuff.
  
   I just want that behavior is executed. by a call. that call is not
 a
   user event (at least not directly)
   it is just (in this example) a resize event that is unrelated to
 the
   component being disabled. Disabled is just the look in the ui it
   doesnt mean that resizing shouldnt happen
  
   I get that disabled behaviors shouldnt work, i also get that
 behaviors
   shouldnt work on none visible components (there is no ui)
   but disabled components is just a visual thing. that doesnt mean
 that
   really all events are also disabled.
  
   for example in Swing on a button yes the click event
 (ActionListenter)
   is disabled but a ComponentListener (add/remove) still will work
   fine..
  
   johan
  
  
   On Tue, Nov 23, 2010 at 21:52, Martin Grigorov 
 mgrigo...@apache.org
  wrote:
   On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
  jcompag...@gmail.comwrote:
  
   i am currently using this patch for our wicket code so that we
 can
  move
   on..
  
  
   First check is that if it is an ajax request for that behavior
 then
   just throw an abort exception..
   Dont just return null because the constantly a full page render
 is
   done instead of the ajax behavior request.
  
   Second is that i introduced an tagging interface so that
 behaviors
  can
   make them self work for disabled components if they want to.
  
   anybody a better idea?
  
   What about adding a companion component for the resize logic ?
 I.e.
  the
   ListView will be disabled, but the companion component will fire
 and
  repaint
   the ListView if necessary. This way you explicitly say that you
 want
  to
   modify disabled component.
  
  
   johan
  
   ### Eclipse Workspace Patch 1.0
   #P wicket
   Index:
  
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
  
 ===
   ---
  
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
(revision
   0)
   +++
  
 
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
(revision
   0)
   @@ -0,0 +1,28 @@
   +/*
   + * Licensed to the Apache Software Foundation (ASF) under one or
  more
   + * contributor license agreements.  See the NOTICE file
 distributed
  with
   + * this work for additional information regarding copyright
  ownership.
   + * The ASF licenses this file to You under the Apache License,
  Version 2.0
   + * (the License); you may not use this file except in
 compliance
  with
   + * the License.  You may obtain a copy of the License at
   + *
   + *  http://www.apache.org/licenses/LICENSE-2.0
   + *
   + * Unless required 

disabled components/behaviors fixes of WICKET-3098

2010-11-23 Thread Johan Compagner
hi,

i suddenly bump big time into this issue that is fixed.
( https://issues.apache.org/jira/browse/WICKET-3098 )

I get that disabled behaviors can't be used to do respond, because
that behavior shouldnt be rendered in the first place.

But the fix also goes one step deeper... It also blocks if the
component is disabled.. That is a big problem

Because a disabled component is rendered, and all the behaviors are
accepted and rendered also so now suddenly a behavior is rendered
(because the behavior is not disabled)
but a callback will fail...

thats something i dont like...because now i get loads of these in the log:

2010-11-23 09:10:57,934 WARN [http-8080-1]
org.apache.wicket.request.target.component.listener.BehaviorRequestTarget
- component not enabled or visible; ignoring call. Component:
[MarkupContainer [Component id = View]]


and the worse thing is if the behavior blocks like that it fall backs
to a IRedirectListener so it rerenders the whole page and that again
renders the disabled component with its behavior and it starts all
over again and again and again.

the example i have here is that we have a ListView/Repeater with some
paging component and that listview has a behavior attached that does a
call back when it got first rendered to give us back the sizes it has
in the browser
and if we see that it has way more space then it currently shows (if
it now shows 10 rows and it has space for 20) we rerender the ListView
again but then with a bigger visible row count.
that is a behavior of the ListView, but the listview can be in a
disabled state (because a user first have to press a button of edit
or something like that) but that resizing i still want to happen if if
the ListView is disabled...

So i like to some how tell that that this behavior should be called.
Now we do this:


test component enablement
test behavior id
test behaviors
test behaviors enabledment.
call behavior

i like to turn that around

test behavior id
test behaviors
test behaviors enabledment.
test component enablement IF behavior doesnt implement IWorkForDisabledComponent
call behavior

So that a developer can be explicit in that check..

We could also introduce a public method on Component:
isEnabledFor(IBehavior) which returns defaults its own enable state.

johan


Re: disabled components/behaviors fixes of WICKET-3098

2010-11-23 Thread Johan Compagner
i am currently using this patch for our wicket code so that we can move on..


First check is that if it is an ajax request for that behavior then
just throw an abort exception..
Dont just return null because the constantly a full page render is
done instead of the ajax behavior request.

Second is that i introduced an tagging interface so that behaviors can
make them self work for disabled components if they want to.

anybody a better idea?

johan

### Eclipse Workspace Patch 1.0
#P wicket
Index: 
src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
===
--- 
src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java  
(revision
0)
+++ 
src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java  
(revision
0)
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.behavior;
+
+/**
+ * Interface that can be used to tag behaviors where response should
be called on even if the
+ * component is disabled.
+ *
+ * @author jcompagner
+ */
+public interface IIgnoreDisabledComponentBehavior extends IBehavior
+{
+
+}
Index: 
src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
===
--- 
src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
(revision
1033481)
+++ 
src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
(working
copy)
@@ -18,13 +18,16 @@

 import java.util.List;

+import org.apache.wicket.AbortException;
 import org.apache.wicket.Component;
 import org.apache.wicket.Page;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.RequestListenerInterface;
 import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.behavior.IBehaviorListener;
+import org.apache.wicket.behavior.IIgnoreDisabledComponentBehavior;
 import org.apache.wicket.protocol.http.PageExpiredException;
+import org.apache.wicket.protocol.http.WebRequest;
 import org.apache.wicket.request.RequestParameters;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -85,13 +88,6 @@
// Get the IBehavior for the component based on the request 
parameters
final Component component = getTarget();

-   if (!component.isVisibleInHierarchy() || 
!component.isEnabledInHierarchy())
-   {
-   // ignore this request
-   logger.warn(component not enabled or visible; ignoring 
call.
Component: {}, component);
-   return;
-   }
-
final String id = getRequestParameters().getBehaviorId();
if (id == null)
{
@@ -124,6 +120,11 @@
logger.warn(
behavior not enabled; ignoring 
call. behavior: {} at index: {}
on component: {},
new Object[] { behavior, 
idAsInt, component });
+   if (requestCycle.getRequest() 
instanceof WebRequest 
+   
((WebRequest)requestCycle.getRequest()).isAjax())
+   {
+   throw new AbortException();
+   }
return;
}

@@ -138,6 +139,20 @@
; Component:  + component.toString());
}

+   if (!component.isVisibleInHierarchy() ||
+   (!(behaviorListener instanceof 
IIgnoreDisabledComponentBehavior)
 !component.isEnabledInHierarchy()))
+   {
+   // ignore this request
+   logger.warn(component not enabled or visible; ignoring 
call.
Component: {}, component);
+   if (requestCycle.getRequest() instanceof WebRequest 
+   

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-23 Thread Martin Grigorov
On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

What about adding a companion component for the resize logic ? I.e. the
ListView will be disabled, but the companion component will fire and repaint
the ListView if necessary. This way you explicitly say that you want to
modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
  (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
  (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *  http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
(revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
(working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
  import org.apache.wicket.RequestCycle;
  import org.apache.wicket.RequestListenerInterface;
  import org.apache.wicket.behavior.IBehavior;
  import org.apache.wicket.behavior.IBehaviorListener;
 +import org.apache.wicket.behavior.IIgnoreDisabledComponentBehavior;
  import org.apache.wicket.protocol.http.PageExpiredException;
 +import org.apache.wicket.protocol.http.WebRequest;
  import org.apache.wicket.request.RequestParameters;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
 @@ -85,13 +88,6 @@
// Get the IBehavior for the component based on the request
 parameters
final Component component = getTarget();

 -   if (!component.isVisibleInHierarchy() ||
 !component.isEnabledInHierarchy())
 -   {
 -   // ignore this request
 -   logger.warn(component not enabled or visible;
 ignoring call.
 Component: {}, component);
 -   return;
 -   }
 -
final String id = getRequestParameters().getBehaviorId();
if (id == null)
{
 @@ -124,6 +120,11 @@
logger.warn(
behavior not enabled;
 ignoring call. behavior: {} at index: {}
 on component: {},
new Object[] { behavior,
 idAsInt, component });
 +   if (requestCycle.getRequest()
 instanceof WebRequest 
 +
 ((WebRequest)requestCycle.getRequest()).isAjax())
 +   {
 +   throw new AbortException();
 +   }
return;
}

 @@ -138,6 +139,20 @@
; Component:  + component.toString());
}

 +   if (!component.isVisibleInHierarchy() ||
 +   (!(behaviorListener instanceof
 

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-23 Thread Johan Compagner
that i find a big hack
then i need to have some none visible (in html not in java) label or
something.. thats horrible then i need to add all kinds of stuff.

I just want that behavior is executed. by a call. that call is not a
user event (at least not directly)
it is just (in this example) a resize event that is unrelated to the
component being disabled. Disabled is just the look in the ui it
doesnt mean that resizing shouldnt happen

I get that disabled behaviors shouldnt work, i also get that behaviors
shouldnt work on none visible components (there is no ui)
but disabled components is just a visual thing. that doesnt mean that
really all events are also disabled.

for example in Swing on a button yes the click event (ActionListenter)
is disabled but a ComponentListener (add/remove) still will work
fine..

johan


On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
  import org.apache.wicket.RequestCycle;
  import org.apache.wicket.RequestListenerInterface;
  import org.apache.wicket.behavior.IBehavior;
  import org.apache.wicket.behavior.IBehaviorListener;
 +import org.apache.wicket.behavior.IIgnoreDisabledComponentBehavior;
  import org.apache.wicket.protocol.http.PageExpiredException;
 +import org.apache.wicket.protocol.http.WebRequest;
  import org.apache.wicket.request.RequestParameters;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
 @@ -85,13 +88,6 @@
                // Get the IBehavior for the component based on the request
 parameters
                final Component component = getTarget();

 -               if (!component.isVisibleInHierarchy() ||
 !component.isEnabledInHierarchy())
 -               {
 -                       // ignore this request
 -                       logger.warn(component not enabled or visible;
 ignoring call.
 Component: {}, component);
 -                       return;
 -               }
 -
                final String id = getRequestParameters().getBehaviorId();
                if (id == null)
                {
 @@ -124,6 +120,11 @@
                          

Re: disabled components/behaviors fixes of WICKET-3098

2010-11-23 Thread Igor Vaynberg
i just fixed it in trunk. in 1.4 we dont really have a choice but to
add the mixin interface, but can you at least make the method name
match?

cheers,
-igor

On Tue, Nov 23, 2010 at 1:04 PM, Johan Compagner jcompag...@gmail.com wrote:
 that i find a big hack
 then i need to have some none visible (in html not in java) label or
 something.. thats horrible then i need to add all kinds of stuff.

 I just want that behavior is executed. by a call. that call is not a
 user event (at least not directly)
 it is just (in this example) a resize event that is unrelated to the
 component being disabled. Disabled is just the look in the ui it
 doesnt mean that resizing shouldnt happen

 I get that disabled behaviors shouldnt work, i also get that behaviors
 shouldnt work on none visible components (there is no ui)
 but disabled components is just a visual thing. that doesnt mean that
 really all events are also disabled.

 for example in Swing on a button yes the click event (ActionListenter)
 is disabled but a ComponentListener (add/remove) still will work
 fine..

 johan


 On Tue, Nov 23, 2010 at 21:52, Martin Grigorov mgrigo...@apache.org wrote:
 On Tue, Nov 23, 2010 at 11:02 AM, Johan Compagner 
 jcompag...@gmail.comwrote:

 i am currently using this patch for our wicket code so that we can move
 on..


 First check is that if it is an ajax request for that behavior then
 just throw an abort exception..
 Dont just return null because the constantly a full page render is
 done instead of the ajax behavior request.

 Second is that i introduced an tagging interface so that behaviors can
 make them self work for disabled components if they want to.

 anybody a better idea?

 What about adding a companion component for the resize logic ? I.e. the
 ListView will be disabled, but the companion component will fire and repaint
 the ListView if necessary. This way you explicitly say that you want to
 modify disabled component.


 johan

 ### Eclipse Workspace Patch 1.0
 #P wicket
 Index:
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
 ===
 ---
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 +++
 src/main/java/org/apache/wicket/behavior/IIgnoreDisabledComponentBehavior.java
      (revision
 0)
 @@ -0,0 +1,28 @@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the License); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.wicket.behavior;
 +
 +/**
 + * Interface that can be used to tag behaviors where response should
 be called on even if the
 + * component is disabled.
 + *
 + * @author jcompagner
 + */
 +public interface IIgnoreDisabledComponentBehavior extends IBehavior
 +{
 +
 +}
 Index:
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
 ===
 ---
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (revision
 1033481)
 +++
 src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
        (working
 copy)
 @@ -18,13 +18,16 @@

  import java.util.List;

 +import org.apache.wicket.AbortException;
  import org.apache.wicket.Component;
  import org.apache.wicket.Page;
  import org.apache.wicket.RequestCycle;
  import org.apache.wicket.RequestListenerInterface;
  import org.apache.wicket.behavior.IBehavior;
  import org.apache.wicket.behavior.IBehaviorListener;
 +import org.apache.wicket.behavior.IIgnoreDisabledComponentBehavior;
  import org.apache.wicket.protocol.http.PageExpiredException;
 +import org.apache.wicket.protocol.http.WebRequest;
  import org.apache.wicket.request.RequestParameters;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
 @@ -85,13 +88,6 @@
                // Get the IBehavior for the component based on the request
 parameters
                final Component component = getTarget();

 -               if (!component.isVisibleInHierarchy() ||
 !component.isEnabledInHierarchy())
 -               {
 -                       // ignore this request
 -                       logger.warn(component not enabled or visible;
 ignoring call.