summaryrefslogtreecommitdiffstats
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.java151
1 files changed, 151 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 000000000..8f0e2680a
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/PeerConfig.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+package com.sun.star.wizards.ui;
+
+import java.util.ArrayList;
+
+import com.sun.star.awt.WindowEvent;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XVclWindowPeer;
+import com.sun.star.awt.XWindowListener;
+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;
+import com.sun.star.wizards.common.PropertyNames;
+
+public class PeerConfig implements XWindowListener
+{
+
+ private final ArrayList<PeerTask> m_aPeerTasks = new ArrayList<PeerTask>();
+ private ArrayList<ImageUrlTask> aImageUrlTasks = new ArrayList<ImageUrlTask>();
+ private UnoDialog oUnoDialog = null;
+
+ public PeerConfig(UnoDialog _oUnoDialog)
+ {
+ oUnoDialog = _oUnoDialog;
+ oUnoDialog.xWindow.addWindowListener(this);
+ }
+
+ private static class PeerTask
+ {
+
+ private XControl xControl;
+ private String[] propnames;
+ private Object[] propvalues;
+
+ public PeerTask(XControl _xControl, String[] propNames_, Object[] propValues_)
+ {
+ propnames = propNames_;
+ propvalues = propValues_;
+ xControl = _xControl;
+ }
+ }
+
+ private static class ImageUrlTask
+ {
+ Object oModel;
+ String oResource;
+
+ public ImageUrlTask(Object _oModel, String _oResource)
+ {
+ oResource = _oResource;
+ 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 = m_aPeerTasks.get(i);
+ 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.aImageUrlTasks.size(); i++)
+ {
+ ImageUrlTask aImageUrlTask = aImageUrlTasks.get(i);
+ String sImageUrl = aImageUrlTask.oResource;
+ if (!sImageUrl.equals(PropertyNames.EMPTY_STRING))
+ {
+ Helper.setUnoPropertyValue(aImageUrlTask.oModel, PropertyNames.PROPERTY_IMAGEURL, sImageUrl);
+ }
+ }
+
+ }
+ catch (RuntimeException re)
+ {
+ re.printStackTrace(System.err);
+ 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
+ */
+ public void setAccessibleName(Object oAPIControl, String _saccessname)
+ {
+ XControl xControl = UnoRuntime.queryInterface(XControl.class, oAPIControl);
+ setPeerProperties(xControl, new String[]
+ {
+ "AccessibleName"
+ }, new String[]
+ {
+ _saccessname
+ });
+ }
+
+
+
+ private void setPeerProperties(XControl _xControl, String[] propnames, Object[] propvalues)
+ {
+ PeerTask oPeerTask = new PeerTask(_xControl, propnames, propvalues);
+ this.m_aPeerTasks.add(oPeerTask);
+ }
+
+ /**
+ * 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
+ */
+ public void setImageUrl(Object _ocontrolmodel, String _sResourceUrl)
+ {
+ ImageUrlTask oImageUrlTask = new ImageUrlTask(_ocontrolmodel, _sResourceUrl);
+ this.aImageUrlTasks.add(oImageUrlTask);
+ }
+}