wizards/com/sun/star/wizards/ui/ImageList.java | 12 --- wizards/com/sun/star/wizards/ui/WizardDialog.java | 11 --- wizards/com/sun/star/wizards/ui/event/CommonListener.java | 12 +++ wizards/com/sun/star/wizards/ui/event/MethodInvocation.java | 44 ++++-------- 4 files changed, 30 insertions(+), 49 deletions(-)
New commits: commit 41d3adbe47610efc1e7bc848c129024a2ec19f9a Author: Noel Grandin <n...@peralex.com> Date: Wed Nov 19 09:41:16 2014 +0200 java: simplify the CommonListener stuff by moving the MethodInvocation to be purely an internal detail Change-Id: Id7863261abd5ebd30b7596bac756ca5360119283 Reviewed-on: https://gerrit.libreoffice.org/13100 Reviewed-by: Noel Grandin <noelgran...@gmail.com> Tested-by: Noel Grandin <noelgran...@gmail.com> diff --git a/wizards/com/sun/star/wizards/ui/ImageList.java b/wizards/com/sun/star/wizards/ui/ImageList.java index 0ae99b7..342f264 100644 --- a/wizards/com/sun/star/wizards/ui/ImageList.java +++ b/wizards/com/sun/star/wizards/ui/ImageList.java @@ -80,7 +80,6 @@ public class ImageList implements XItemEventBroadcaster, ListDataListener private final static Short HIDE_PAGE = Short.valueOf((short) 99); private final static Integer TRANSPARENT = Integer.valueOf(-1); private final static int LINE_HEIGHT = 8; - private MethodInvocation METHOD_MOUSE_PRESSED; /** Getter for property imageSize. * @return Value of property imageSize. @@ -272,15 +271,6 @@ public class ImageList implements XItemEventBroadcaster, ListDataListener m_aImages = new XControl[rows * cols]; - try - { - METHOD_MOUSE_PRESSED = new MethodInvocation("mousePressed", this, Object.class); - } - catch (NoSuchMethodException e) - { - e.printStackTrace(); - } - m_imageHeight = Integer.valueOf(imageSize.Height); m_imageWidth = Integer.valueOf(imageSize.Width); @@ -337,7 +327,7 @@ public class ImageList implements XItemEventBroadcaster, ListDataListener XWindow win = UnoRuntime.queryInterface(XWindow.class, image); win.addMouseListener(uiEventListener); win.addKeyListener(imageKeyListener); - uiEventListener.add(imageName, EventNames.MOUSE_PRESSED, METHOD_MOUSE_PRESSED); + uiEventListener.add(imageName, EventNames.MOUSE_PRESSED, "mousePressed", this, Object.class); return image; } diff --git a/wizards/com/sun/star/wizards/ui/WizardDialog.java b/wizards/com/sun/star/wizards/ui/WizardDialog.java index 8b8e079..dd64b92 100644 --- a/wizards/com/sun/star/wizards/ui/WizardDialog.java +++ b/wizards/com/sun/star/wizards/ui/WizardDialog.java @@ -20,7 +20,6 @@ package com.sun.star.wizards.ui; import java.beans.*; import com.sun.star.wizards.ui.event.EventNames; -import com.sun.star.wizards.ui.event.MethodInvocation; import com.sun.star.uno.UnoRuntime; import com.sun.star.awt.*; import com.sun.star.uno.AnyConverter; @@ -241,18 +240,13 @@ public abstract class WizardDialog extends UnoDialog2 implements VetoableChangeL xSSFRoadmap = UnoRuntime.queryInterface(XSingleServiceFactory.class, oRoadmap); xIndexContRoadmap = UnoRuntime.queryInterface(XIndexContainer.class, oRoadmap); - MethodInvocation mi = new MethodInvocation("itemStateChanged", this, com.sun.star.awt.ItemEvent.class); - guiEventListener.add("rdmNavi", EventNames.ITEM_CHANGED, mi); + guiEventListener.add("rdmNavi", EventNames.ITEM_CHANGED, "itemStateChanged", this, com.sun.star.awt.ItemEvent.class); xRoadmapControl = this.xDlgContainer.getControl("rdmNavi"); xRoadmapBroadcaster = UnoRuntime.queryInterface(XItemEventBroadcaster.class, xRoadmapControl); xRoadmapBroadcaster.addItemListener(guiEventListener); Helper.setUnoPropertyValue(oRoadmap, "Text", oWizardResource.getResText(UIConsts.RID_COMMON + 16)); } - catch (NoSuchMethodException ex) - { - Resource.showCommonResourceError(xMSF); - } catch (java.lang.Exception jexception) { jexception.printStackTrace(System.err); @@ -481,10 +475,9 @@ public abstract class WizardDialog extends UnoDialog2 implements VetoableChangeL // add a window listener, to know // if the user used "escape" key to // close the dialog. - MethodInvocation windowHidden = new MethodInvocation("windowHidden", this); xWindow.addWindowListener(guiEventListener); String dialogName = (String) Helper.getUnoPropertyValue(xDialogModel, PropertyNames.PROPERTY_NAME); - guiEventListener.add(dialogName, EventNames.ACTION_PERFORMED, windowHidden); + guiEventListener.add(dialogName, EventNames.ACTION_PERFORMED, "windowHidden", this); } catch (java.lang.Exception jexception) diff --git a/wizards/com/sun/star/wizards/ui/event/CommonListener.java b/wizards/com/sun/star/wizards/ui/event/CommonListener.java index d75a24f..cff9281 100644 --- a/wizards/com/sun/star/wizards/ui/event/CommonListener.java +++ b/wizards/com/sun/star/wizards/ui/event/CommonListener.java @@ -54,6 +54,18 @@ public class CommonListener implements XActionListener, XItemListener, XTextList } } + public void add(String componentName, EventNames eventName, String methodName, Object target, Class<?> paramClass) + { + try + { + add(componentName, eventName, new MethodInvocation(methodName, target, paramClass)); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + public void add(String componentName, EventNames eventName, MethodInvocation mi) { mHashtable.put(componentName + eventName, mi); diff --git a/wizards/com/sun/star/wizards/ui/event/MethodInvocation.java b/wizards/com/sun/star/wizards/ui/event/MethodInvocation.java index 5ac4f0e..fb834b4 100644 --- a/wizards/com/sun/star/wizards/ui/event/MethodInvocation.java +++ b/wizards/com/sun/star/wizards/ui/event/MethodInvocation.java @@ -30,35 +30,29 @@ import java.lang.reflect.Method; * You can trick this class how much you want: it will all throw exceptions * on the java level. i throw no error warnings or my own exceptions...</p> */ -public class MethodInvocation +final class MethodInvocation { //the method to invoke. - Method mMethod; + private final Method mMethod; //the object to invoke the method on. - Object mObject; + private final Object mTargetObject; //with one Parameter / without - boolean mWithParam; + private final boolean mWithParam; /** Creates a new instance of MethodInvokation */ - public MethodInvocation(String methodName, Object obj) throws NoSuchMethodException + public MethodInvocation(String methodName, Object target) throws NoSuchMethodException { - this(methodName, obj, null); + this(methodName, target, null); } - public MethodInvocation(Method method, Object obj) + public MethodInvocation(String methodName, Object target, Class<?> paramClass) throws NoSuchMethodException { - this(method, obj, null); - } - - public MethodInvocation(String methodName, Object obj, Class<?> paramClass) throws NoSuchMethodException - { - this(paramClass == null ? obj.getClass().getMethod(methodName) : obj.getClass().getMethod(methodName, paramClass), obj, paramClass); - } - - public MethodInvocation(Method method, Object obj, Class<?> paramClass) - { - mMethod = method; - mObject = obj; + if (paramClass == null) { + mMethod = target.getClass().getMethod(methodName); + } else { + mMethod = target.getClass().getMethod(methodName, paramClass); + } + mTargetObject = target; mWithParam = paramClass != null; } @@ -69,20 +63,12 @@ public class MethodInvocation { if (mWithParam) { - return mMethod.invoke(mObject, param); + return mMethod.invoke(mTargetObject, param); } else { - return mMethod.invoke(mObject); + return mMethod.invoke(mTargetObject); } } - /** - * This method is a convenience method. - * It is the same as calling invoke(null); - */ - public Object invoke() throws IllegalAccessException, InvocationTargetException - { - return invoke(null); - } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits