1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package com.sun.star.wizards.common; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import com.sun.star.lang.IllegalArgumentException; 27*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 28*b1cdbd2cSJim Jagielski import com.sun.star.script.XInvocation; 29*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue; 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski public class Resource 32*b1cdbd2cSJim Jagielski { 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski XInvocation xInvocation; 35*b1cdbd2cSJim Jagielski XMultiServiceFactory xMSF; 36*b1cdbd2cSJim Jagielski String Unit; 37*b1cdbd2cSJim Jagielski String Module; 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski /** Creates a new instance of Resource 40*b1cdbd2cSJim Jagielski * @param _xMSF 41*b1cdbd2cSJim Jagielski * @param _Unit 42*b1cdbd2cSJim Jagielski * @param _Module 43*b1cdbd2cSJim Jagielski */ Resource(XMultiServiceFactory _xMSF, String _Unit, String _Module)44*b1cdbd2cSJim Jagielski public Resource(XMultiServiceFactory _xMSF, String _Unit, String _Module) 45*b1cdbd2cSJim Jagielski { 46*b1cdbd2cSJim Jagielski this.xMSF = _xMSF; 47*b1cdbd2cSJim Jagielski this.Unit = _Unit; 48*b1cdbd2cSJim Jagielski this.Module = _Module; 49*b1cdbd2cSJim Jagielski this.xInvocation = initResources(); 50*b1cdbd2cSJim Jagielski } 51*b1cdbd2cSJim Jagielski getResText(int nID)52*b1cdbd2cSJim Jagielski public String getResText(int nID) 53*b1cdbd2cSJim Jagielski { 54*b1cdbd2cSJim Jagielski try 55*b1cdbd2cSJim Jagielski { 56*b1cdbd2cSJim Jagielski short[][] PointerArray = new short[1][]; 57*b1cdbd2cSJim Jagielski Object[][] DummyArray = new Object[1][]; 58*b1cdbd2cSJim Jagielski Object[] nIDArray = new Object[1]; 59*b1cdbd2cSJim Jagielski nIDArray[0] = new Integer(nID); 60*b1cdbd2cSJim Jagielski return (String) xInvocation.invoke("getString", nIDArray, PointerArray, DummyArray); 61*b1cdbd2cSJim Jagielski } 62*b1cdbd2cSJim Jagielski catch (Exception exception) 63*b1cdbd2cSJim Jagielski { 64*b1cdbd2cSJim Jagielski exception.printStackTrace(); 65*b1cdbd2cSJim Jagielski throw new java.lang.IllegalArgumentException("Resource with ID not" + String.valueOf(nID) + "not found"); 66*b1cdbd2cSJim Jagielski } 67*b1cdbd2cSJim Jagielski } 68*b1cdbd2cSJim Jagielski getStringList(int nID)69*b1cdbd2cSJim Jagielski public PropertyValue[] getStringList(int nID) 70*b1cdbd2cSJim Jagielski { 71*b1cdbd2cSJim Jagielski try 72*b1cdbd2cSJim Jagielski { 73*b1cdbd2cSJim Jagielski short[][] PointerArray = new short[1][]; 74*b1cdbd2cSJim Jagielski Object[][] DummyArray = new Object[1][]; 75*b1cdbd2cSJim Jagielski Object[] nIDArray = new Object[1]; 76*b1cdbd2cSJim Jagielski nIDArray[0] = new Integer(nID); 77*b1cdbd2cSJim Jagielski //Object bla = xInvocation.invoke("getStringList", nIDArray, PointerArray, DummyArray); 78*b1cdbd2cSJim Jagielski return (PropertyValue[]) xInvocation.invoke("getStringList", nIDArray, PointerArray, DummyArray); 79*b1cdbd2cSJim Jagielski } 80*b1cdbd2cSJim Jagielski catch (Exception exception) 81*b1cdbd2cSJim Jagielski { 82*b1cdbd2cSJim Jagielski exception.printStackTrace(); 83*b1cdbd2cSJim Jagielski throw new java.lang.IllegalArgumentException("Resource with ID not" + String.valueOf(nID) + "not found"); 84*b1cdbd2cSJim Jagielski } 85*b1cdbd2cSJim Jagielski } 86*b1cdbd2cSJim Jagielski getResArray(int nID, int iCount)87*b1cdbd2cSJim Jagielski public String[] getResArray(int nID, int iCount) 88*b1cdbd2cSJim Jagielski { 89*b1cdbd2cSJim Jagielski try 90*b1cdbd2cSJim Jagielski { 91*b1cdbd2cSJim Jagielski String[] ResArray = new String[iCount]; 92*b1cdbd2cSJim Jagielski for (int i = 0; i < iCount; i++) 93*b1cdbd2cSJim Jagielski { 94*b1cdbd2cSJim Jagielski ResArray[i] = getResText(nID + i); 95*b1cdbd2cSJim Jagielski } 96*b1cdbd2cSJim Jagielski return ResArray; 97*b1cdbd2cSJim Jagielski } 98*b1cdbd2cSJim Jagielski catch (Exception exception) 99*b1cdbd2cSJim Jagielski { 100*b1cdbd2cSJim Jagielski exception.printStackTrace(System.out); 101*b1cdbd2cSJim Jagielski throw new java.lang.IllegalArgumentException("Resource with ID not" + String.valueOf(nID) + "not found"); 102*b1cdbd2cSJim Jagielski } 103*b1cdbd2cSJim Jagielski } 104*b1cdbd2cSJim Jagielski initResources()105*b1cdbd2cSJim Jagielski public XInvocation initResources() 106*b1cdbd2cSJim Jagielski { 107*b1cdbd2cSJim Jagielski try 108*b1cdbd2cSJim Jagielski { 109*b1cdbd2cSJim Jagielski com.sun.star.uno.XInterface xResource = (com.sun.star.uno.XInterface) xMSF.createInstance("com.sun.star.resource.VclStringResourceLoader"); 110*b1cdbd2cSJim Jagielski if (xResource == null) 111*b1cdbd2cSJim Jagielski { 112*b1cdbd2cSJim Jagielski showCommonResourceError(xMSF); 113*b1cdbd2cSJim Jagielski throw new IllegalArgumentException(); 114*b1cdbd2cSJim Jagielski } 115*b1cdbd2cSJim Jagielski else 116*b1cdbd2cSJim Jagielski { 117*b1cdbd2cSJim Jagielski XInvocation xResInvoke = com.sun.star.uno.UnoRuntime.queryInterface(XInvocation.class, xResource); 118*b1cdbd2cSJim Jagielski xResInvoke.setValue("FileName", Module); 119*b1cdbd2cSJim Jagielski return xResInvoke; 120*b1cdbd2cSJim Jagielski } 121*b1cdbd2cSJim Jagielski } 122*b1cdbd2cSJim Jagielski catch (Exception exception) 123*b1cdbd2cSJim Jagielski { 124*b1cdbd2cSJim Jagielski exception.printStackTrace(System.out); 125*b1cdbd2cSJim Jagielski showCommonResourceError(xMSF); 126*b1cdbd2cSJim Jagielski return null; 127*b1cdbd2cSJim Jagielski } 128*b1cdbd2cSJim Jagielski } 129*b1cdbd2cSJim Jagielski showCommonResourceError(XMultiServiceFactory xMSF)130*b1cdbd2cSJim Jagielski public static void showCommonResourceError(XMultiServiceFactory xMSF) 131*b1cdbd2cSJim Jagielski { 132*b1cdbd2cSJim Jagielski String ProductName = Configuration.getProductName(xMSF); 133*b1cdbd2cSJim Jagielski String sError = "The files required could not be found.\nPlease start the %PRODUCTNAME Setup and choose 'Repair'."; 134*b1cdbd2cSJim Jagielski sError = JavaTools.replaceSubString(sError, ProductName, "%PRODUCTNAME"); 135*b1cdbd2cSJim Jagielski SystemDialog.showMessageBox(xMSF, "ErrorBox", com.sun.star.awt.VclWindowPeerAttribute.OK, sError); 136*b1cdbd2cSJim Jagielski } 137*b1cdbd2cSJim Jagielski } 138