diff options
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/UnoDialog.java')
-rw-r--r-- | wizards/com/sun/star/wizards/ui/UnoDialog.java | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/wizards/com/sun/star/wizards/ui/UnoDialog.java b/wizards/com/sun/star/wizards/ui/UnoDialog.java index 1425c3eadb53..120b26367c8d 100644 --- a/wizards/com/sun/star/wizards/ui/UnoDialog.java +++ b/wizards/com/sun/star/wizards/ui/UnoDialog.java @@ -57,7 +57,7 @@ public class UnoDialog implements EventNames public XMultiServiceFactory MSFDialogModel; public XNameContainer xDlgNames; public XControlContainer xDlgContainer; - public XNameAccess xDlgNameAccess; + private XNameAccess m_xDlgNameAccess; public XControl xControl; public XDialog xDialog; public XReschedule xReschedule; @@ -95,7 +95,7 @@ public class UnoDialog implements EventNames xPSetDlg = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xDialogModel); xDlgContainer = (XControlContainer) UnoRuntime.queryInterface(XControlContainer.class, xUnoDialog); xDlgNames = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, xDialogModel); - xDlgNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xDialogModel); + // xDlgNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xDialogModel); xComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, xUnoDialog); xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class, xUnoDialog); @@ -141,17 +141,25 @@ public class UnoDialog implements EventNames return m_oPeerConfig; } + XNameAccess getDlgNameAccess() + { + if (m_xDlgNameAccess == null) + { + m_xDlgNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, xDialogModel); + } + return m_xDlgNameAccess; + } public void setControlProperty(String ControlName, String PropertyName, Object PropertyValue) { try { if (PropertyValue != null) { - if (xDlgNameAccess.hasByName(ControlName) == false) + if (getDlgNameAccess().hasByName(ControlName) == false) { return; } - Object xControlModel = xDlgNameAccess.getByName(ControlName); + Object xControlModel = getDlgNameAccess().getByName(ControlName); XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xControlModel); if (AnyConverter.isArray(PropertyValue)) { @@ -182,11 +190,11 @@ public class UnoDialog implements EventNames { if (PropertyValues != null) { - if (xDlgNameAccess.hasByName(ControlName) == false) + if (getDlgNameAccess().hasByName(ControlName) == false) { return; } - Object xControlModel = xDlgNameAccess.getByName(ControlName); + Object xControlModel = getDlgNameAccess().getByName(ControlName); XMultiPropertySet xMultiPSet = (XMultiPropertySet) UnoRuntime.queryInterface(XMultiPropertySet.class, xControlModel); xMultiPSet.setPropertyValues(PropertyNames, PropertyValues); } @@ -201,7 +209,7 @@ public class UnoDialog implements EventNames { try { - Object xControlModel = xDlgNameAccess.getByName(ControlName); + Object xControlModel = getDlgNameAccess().getByName(ControlName); XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xControlModel); Object oPropValue = xPSet.getPropertyValue(PropertyName); // if (AnyConverter.isArray(oPropValue)) @@ -220,12 +228,13 @@ public class UnoDialog implements EventNames { try { - Object xControlModel = xDlgNameAccess.getByName(ControlName); + Object xControlModel = getDlgNameAccess().getByName(ControlName); XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xControlModel); Property[] allProps = xPSet.getPropertySetInfo().getProperties(); for (int i = 0; i < allProps.length; i++) { - System.out.println(allProps[i].Name); + String sName = allProps[i].Name; + System.out.println(sName); } } catch (com.sun.star.uno.Exception exception) @@ -268,7 +277,10 @@ public class UnoDialog implements EventNames public static int getListBoxItemCount(XListBox _xListBox) { - String[] fieldnames = (String[]) Helper.getUnoPropertyValue(getModel(_xListBox), "StringItemList"); + // This function may look ugly, but this is the only way to check the count + // of values in the model,which is always right. + // the control is only a view and could be right or not. + final String[] fieldnames = (String[]) Helper.getUnoPropertyValue(getModel(_xListBox), "StringItemList"); return fieldnames.length; } @@ -685,7 +697,7 @@ public class UnoDialog implements EventNames * * @param _xBasisListBox */ - public void deselectListBox(XInterface _xBasisListBox) + public static void deselectListBox(XInterface _xBasisListBox) { Object oListBoxModel = getModel(_xBasisListBox); Object sList = Helper.getUnoPropertyValue(oListBoxModel, "StringItemList"); @@ -823,6 +835,7 @@ public class UnoDialog implements EventNames } XToolkit xToolkit = (XToolkit) UnoRuntime.queryInterface(XToolkit.class, tk); xReschedule = (XReschedule) UnoRuntime.queryInterface(XReschedule.class, xToolkit); + // TEUER! xControl.createPeer(xToolkit, parentPeer); xWindowPeer = xControl.getPeer(); return xControl.getPeer(); @@ -870,7 +883,9 @@ public class UnoDialog implements EventNames public static Object getModel(Object control) { - return ((XControl) UnoRuntime.queryInterface(XControl.class, control)).getModel(); + XControl xControl = (XControl) UnoRuntime.queryInterface(XControl.class, control); + XControlModel xModel = xControl.getModel(); + return xModel; } public static void setEnabled(Object control, boolean enabled) @@ -1128,4 +1143,9 @@ public class UnoDialog implements EventNames return _surl; } } + + public static short getListBoxLineCount() + { + return (short)20; + } } |