Hi,
We have a situation where we've got a scroll pane nested within a scroll pane.
We customized the scrollpane to be able to turn the mouse wheel scrolling off
for the inner scroll pane so that when the mouse is over the inner scroll pane,
it continues to scroll the outer scroll pane instead of getting stuck inside
the inner scroll pane. Our application is deployed in a portal. This works as
intended until the user hits the browser refresh button or until the user
switches tabs in the portal. When the screen refreshes with the ULC
application, the mouse now scrolls in the inner scroll pane, thus causing it to
look stuck when attempting to scroll in the outer scroll pane.
Is there any way I can prevent the mouse wheel scrolling from coming back into
the inner scroll pane when the browser is refreshed?
Here is the code we are using to implement the scroll panes. I've edited out
the non-significant code and just left the code used for disabling the mouse
wheel scrolling, but as I said before, this code works just fine until the
browser refreshes the ULC application. The outer scroll pane is created with
the second parameter as true and the inner scroll pane is created with the
second parameter as false.
package ca.fcc.ulc.application;
import ca.fcc.ulc.shared.WidgetStyles;
import com.ulcjava.base.application.ULCComponent;
import com.ulcjava.base.application.ULCScrollPane;
import com.ulcjava.base.application.util.Color;
public class MyScrollPane extends ULCScrollPane implements WidgetStyles {
private boolean mouseWheelScrolling = true;
public FccScrollPane(ULCComponent aViewPortView, boolean
aMouseWheelScrolling) {
this(aViewPortView);
setMouseWheelScrolling(aMouseWheelScrolling);
configureMouseWheelScrolling();
}
private void configureMouseWheelScrolling(){
if (!isMouseWheelScrolling()){
upload();
invokeUI("disableMouseWheelScrolling");
}
}
protected String typeString() {
return "ca.fcc.ulc.client.UIMyScrollPane";
}
private boolean isMouseWheelScrolling() {
return mouseWheelScrolling;
}
private void setMouseWheelScrolling(boolean aMouseWheelScrolling) {
mouseWheelScrolling = aMouseWheelScrolling;
}
}
_________________________________________________________________________
package ca.fcc.ulc.client;
import java.awt.Color;
import java.awt.event.MouseWheelListener;
import javax.swing.JScrollPane;
import com.ulcjava.base.client.UIScrollPane;
public class UIMyScrollPane extends UIScrollPane {
public void disableMouseWheelScrolling(){
JScrollPane scrollpane = (JScrollPane)getBasicObject();
MouseWheelListener[] listeners =
scrollpane.getMouseWheelListeners();
for (int i = 0; i < listeners.length; i++) {
MouseWheelListener mouseWheelListener = listeners[i];
scrollpane.removeMouseWheelListener(mouseWheelListener);
}
}
}
Thanks!
Elizabeth Kliman, B.Sc., SCJP
Developer / Développeur
Information Technology / Technologie de l'information
Farm Credit Canada / Financement agricole Canada
1800 Hamilton Street, P.O. Box 4320
1800, rue Hamilton, C.P. 4320
Regina SK S4P 4L3
Tel/Tél. : (306) 780-3382 Fax/Télec. : (306) 780-5655
E-mail/Courriel : [EMAIL PROTECTED]
Agriculture. It's all we do. L'agriculture... notre raison d'être.
This message may contain information that is privileged, protected,
confidential or subject to copyright. Using, disclosing, copying or
distributing such information by anyone other than the intended recipient is
strictly prohibited. If you've received this message in error, please delete it
and notify me immediately.
Le présent courriel contient des renseignements de nature privilégiée,
protégée, confidentielle ou assujettie à des droits d'auteur. Toute
utilisation, communication, reproduction ou distribution de l'information
contenue dans ce courriel par toute personne autre que le destinataire visé est
strictement interdite. Si vous avez reçu ce courriel par erreur, veuillez le
supprimer et m'en informer immédiatement.