Expanding on code by @sfitze to access custom properties added to the component; cf AbstractVisionComponent
def MouseWheelListener(self, initialized):
if not initialized:
from java.awt.event import MouseWheelEvent
from java.awt.event import MouseWheelListener
class canvasMouseWheelListener(MouseWheelListener):
def mouseWheelMoved(self, event):
# https://docs.oracle.com/javase/tutorial/uiswing/events/mousewheellistener.html
# https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html
if event.isAltDown() or event.isControlDown() or event.isShiftDown():
canvas = event.source.parent.getComponent('Paintable Canvas')
scale = canvas.getPropertyValue("scale") + 10*event.getWheelRotation()
canvas.setPropertyValue("scale",scale)
return
for i in self.mouseWheelListeners:
if i.__class__.__name__ == 'canvasMouseWheelListener':
self.removeMouseWheelListener(i)
self.addMouseWheelListener(canvasMouseWheelListener())
self._mwlInit = True
return
Kudos to @pturmel for all the guidance