summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/ui/PeerConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/PeerConfig.java')
-rw-r--r--wizards/com/sun/star/wizards/ui/PeerConfig.java261
1 files changed, 261 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/ui/PeerConfig.java b/wizards/com/sun/star/wizards/ui/PeerConfig.java
new file mode 100644
index 000000000000..d3871ee62a5b
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/PeerConfig.java
@@ -0,0 +1,261 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package com.sun.star.wizards.ui;
+
+import java.util.Vector;
+
+import com.sun.star.awt.*;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.wizards.common.Helper;
+
+/**
+ * @author rpiterman
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class PeerConfig implements XWindowListener
+{
+
+ private Vector m_aPeerTasks = new Vector();
+ Vector aControlTasks = new Vector();
+ Vector aImageUrlTasks = new Vector();
+ UnoDialog oUnoDialog = null;
+
+ public PeerConfig(UnoDialog _oUnoDialog)
+ {
+ oUnoDialog = _oUnoDialog;
+ oUnoDialog.xWindow.addWindowListener(this);
+ }
+
+ class PeerTask
+ {
+
+ XControl xControl;
+ String[] propnames;
+ Object[] propvalues;
+
+ public PeerTask(XControl _xControl, String[] propNames_, Object[] propValues_)
+ {
+ propnames = propNames_;
+ propvalues = propValues_;
+ xControl = _xControl;
+ }
+ }
+
+ class ControlTask
+ {
+
+ Object oModel;
+ String propname;
+ Object propvalue;
+
+ public ControlTask(Object _oModel, String _propName, Object _propValue)
+ {
+ propname = _propName;
+ propvalue = _propValue;
+ oModel = _oModel;
+ }
+ }
+
+ class ImageUrlTask
+ {
+
+ Object oModel;
+ Object oResource;
+ Object oHCResource;
+
+ public ImageUrlTask(Object _oModel, Object _oResource, Object _oHCResource)
+ {
+ oResource = _oResource;
+ oHCResource = _oHCResource;
+ oModel = _oModel;
+ }
+ }
+
+ public void windowResized(WindowEvent arg0)
+ {
+ }
+
+ public void windowMoved(WindowEvent arg0)
+ {
+ }
+
+ public void windowShown(EventObject arg0)
+ {
+ try
+ {
+ for (int i = 0; i < this.m_aPeerTasks.size(); i++)
+ {
+ PeerTask aPeerTask = (PeerTask) m_aPeerTasks.elementAt(i);
+ XVclWindowPeer xVclWindowPeer = (XVclWindowPeer) UnoRuntime.queryInterface(XVclWindowPeer.class, aPeerTask.xControl.getPeer());
+ for (int n = 0; n < aPeerTask.propnames.length; n++)
+ {
+ xVclWindowPeer.setProperty(aPeerTask.propnames[n], aPeerTask.propvalues[n]);
+ }
+ }
+ for (int i = 0; i < this.aControlTasks.size(); i++)
+ {
+ ControlTask aControlTask = (ControlTask) aControlTasks.elementAt(i);
+ Helper.setUnoPropertyValue(aControlTask.oModel, aControlTask.propname, aControlTask.propvalue);
+ }
+ for (int i = 0; i < this.aImageUrlTasks.size(); i++)
+ {
+ ImageUrlTask aImageUrlTask = (ImageUrlTask) aImageUrlTasks.elementAt(i);
+ String sImageUrl = "";
+ if (AnyConverter.isInt(aImageUrlTask.oResource))
+ {
+ sImageUrl = oUnoDialog.getWizardImageUrl(((Integer) aImageUrlTask.oResource).intValue(), ((Integer) aImageUrlTask.oHCResource).intValue());
+ }
+ else if (AnyConverter.isString(aImageUrlTask.oResource))
+ {
+ sImageUrl = oUnoDialog.getImageUrl(((String) aImageUrlTask.oResource), ((String) aImageUrlTask.oHCResource));
+ }
+ if (!sImageUrl.equals(""))
+ {
+ Helper.setUnoPropertyValue(aImageUrlTask.oModel, "ImageURL", sImageUrl);
+ }
+ }
+
+ }
+ catch (RuntimeException re)
+ {
+ re.printStackTrace(System.out);
+ throw re;
+ }
+ }
+
+ public void windowHidden(EventObject arg0)
+ {
+ }
+
+ public void disposing(EventObject arg0)
+ {
+ }
+
+ /**
+ *
+ * @param oAPIControl an API control that the interface XControl can be derived from
+ * @param _saccessname
+ */
+ public void setAccessibleName(Object oAPIControl, String _saccessname)
+ {
+ XControl xControl = (XControl) UnoRuntime.queryInterface(XControl.class, oAPIControl);
+ setPeerProperties(xControl, new String[]
+ {
+ "AccessibleName"
+ }, new String[]
+ {
+ _saccessname
+ });
+ }
+
+ public void setAccessibleName(XControl _xControl, String _saccessname)
+ {
+ setPeerProperties(_xControl, new String[]
+ {
+ "AccessibleName"
+ }, new String[]
+ {
+ _saccessname
+ });
+ }
+
+ /**
+ *
+ * @param oAPIControl an API control that the interface XControl can be derived from
+ * @param _propnames
+ * @param _propvalues
+ */
+ public void setPeerProperties(Object oAPIControl, String[] _propnames, Object[] _propvalues)
+ {
+ XControl xControl = (XControl) UnoRuntime.queryInterface(XControl.class, oAPIControl);
+ setPeerProperties(xControl, _propnames, _propvalues);
+ }
+
+ public void setPeerProperties(XControl _xControl, String[] propnames, Object[] propvalues)
+ {
+ PeerTask oPeerTask = new PeerTask(_xControl, propnames, propvalues);
+ this.m_aPeerTasks.add(oPeerTask);
+ }
+
+ /**
+ * assigns an arbitrary property to a control as soon as the peer is created
+ * Note: The property 'ImageUrl' should better be assigned with 'setImageurl(...)', to consider the High Contrast Mode
+ * @param _ocontrolmodel
+ * @param _spropname
+ * @param _propvalue
+ */
+ public void setControlProperty(Object _ocontrolmodel, String _spropname, Object _propvalue)
+ {
+ ControlTask oControlTask = new ControlTask(_ocontrolmodel, _spropname, _propvalue);
+ this.aControlTasks.add(oControlTask);
+ }
+
+ /**
+ * Assigns an image to the property 'ImageUrl' of a dialog control. The image id must be assigned in a resource file
+ * within the wizards project
+ * wizards project
+ * @param _ocontrolmodel
+ * @param _nResId
+ * @param _nhcResId
+ */
+ public void setImageUrl(Object _ocontrolmodel, int _nResId, int _nhcResId)
+ {
+ ImageUrlTask oImageUrlTask = new ImageUrlTask(_ocontrolmodel, new Integer(_nResId), new Integer(_nhcResId));
+ this.aImageUrlTasks.add(oImageUrlTask);
+ }
+
+ /**
+ * Assigns an image to the property 'ImageUrl' of a dialog control. The image ids that the Resource urls point to
+ * may be assigned in a Resource file outside the wizards project
+ * @param _ocontrolmodel
+ * @param _sResourceUrl
+ * @param _sHCResourceUrl
+ */
+ public void setImageUrl(Object _ocontrolmodel, String _sResourceUrl, String _sHCResourceUrl)
+ {
+ ImageUrlTask oImageUrlTask = new ImageUrlTask(_ocontrolmodel, _sResourceUrl, _sHCResourceUrl);
+ this.aImageUrlTasks.add(oImageUrlTask);
+ }
+
+ /**
+ * Assigns an image to the property 'ImageUrl' of a dialog control. The image id must be assigned in a resource file
+ * within the wizards project
+ * wizards project
+ * @param _ocontrolmodel
+ * @param _oResource
+ * @param _oHCResource
+ */
+ public void setImageUrl(Object _ocontrolmodel, Object _oResource, Object _oHCResource)
+ {
+ ImageUrlTask oImageUrlTask = new ImageUrlTask(_ocontrolmodel, _oResource, _oHCResource);
+ this.aImageUrlTasks.add(oImageUrlTask);
+ }
+}