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 package complex.loadAllDocuments; 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski // __________ Imports __________ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski // structs, const, ... 28*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue; 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski // exceptions 31*b1cdbd2cSJim Jagielski import com.sun.star.uno.Exception; 32*b1cdbd2cSJim Jagielski import com.sun.star.uno.RuntimeException; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski // interfaces 35*b1cdbd2cSJim Jagielski import com.sun.star.task.XStatusIndicator; 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski // helper 38*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski // others 41*b1cdbd2cSJim Jagielski //import java.lang.*; 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski // __________ Implementation __________ 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski /** 46*b1cdbd2cSJim Jagielski * Implemets a simple status indicator, which 47*b1cdbd2cSJim Jagielski * provide informations about state of a load request. 48*b1cdbd2cSJim Jagielski * It can be used as an argument e.g. for loadComponentFromURL(). 49*b1cdbd2cSJim Jagielski */ 50*b1cdbd2cSJim Jagielski public class StatusIndicator implements com.sun.star.task.XStatusIndicator 51*b1cdbd2cSJim Jagielski { 52*b1cdbd2cSJim Jagielski // ____________________ 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski /** 55*b1cdbd2cSJim Jagielski * @const SHOWSTATUS_NO don't show the status - but save information about using of this indicator object 56*b1cdbd2cSJim Jagielski * @const SHOWSTATUS_LOG the possible set protocol object will be used (it covers STDOUT, STDERR automaticly too) 57*b1cdbd2cSJim Jagielski * @const SHOWSTATUS_DIALOG the status will be shown inside a java dialog 58*b1cdbd2cSJim Jagielski * @const SHOWSTATUS_LINK the status will be notified to interested listener (one listener only!) 59*b1cdbd2cSJim Jagielski */ 60*b1cdbd2cSJim Jagielski public static final int SHOWSTATUS_NO = 0; 61*b1cdbd2cSJim Jagielski public static final int SHOWSTATUS_LOG = 1; 62*b1cdbd2cSJim Jagielski public static final int SHOWSTATUS_DIALOG = 4; 63*b1cdbd2cSJim Jagielski public static final int SHOWSTATUS_LINK = 8; 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski // ____________________ 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski /** 68*b1cdbd2cSJim Jagielski * @member m_sText text, which describe the current status 69*b1cdbd2cSJim Jagielski * @member m_nRange max value for any progress 70*b1cdbd2cSJim Jagielski * @member m_nValue the progress value 71*b1cdbd2cSJim Jagielski * @member m_nOut regulate, how the status will be shown 72*b1cdbd2cSJim Jagielski * @member m_aProtocol used for logging and transport information about used interface of this object 73*b1cdbd2cSJim Jagielski */ 74*b1cdbd2cSJim Jagielski private String m_sText ; 75*b1cdbd2cSJim Jagielski private int m_nRange ; 76*b1cdbd2cSJim Jagielski private int m_nValue ; 77*b1cdbd2cSJim Jagielski private int m_nOut ; 78*b1cdbd2cSJim Jagielski // private Protocol m_aProtocol ; 79*b1cdbd2cSJim Jagielski private boolean m_bWasUsed ; 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski // ____________________ 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski /** 84*b1cdbd2cSJim Jagielski * ctor 85*b1cdbd2cSJim Jagielski * It's initialize an object of this class with default values. 86*b1cdbd2cSJim Jagielski */ StatusIndicator( int nOut)87*b1cdbd2cSJim Jagielski public StatusIndicator( int nOut) 88*b1cdbd2cSJim Jagielski { 89*b1cdbd2cSJim Jagielski m_sText = new String() ; 90*b1cdbd2cSJim Jagielski m_nRange = 100 ; 91*b1cdbd2cSJim Jagielski m_nValue = 0 ; 92*b1cdbd2cSJim Jagielski m_nOut = nOut ; 93*b1cdbd2cSJim Jagielski //m_aProtocol = aProtocol ; 94*b1cdbd2cSJim Jagielski m_bWasUsed = false; 95*b1cdbd2cSJim Jagielski // aProtocol.resetUsingState(); 96*b1cdbd2cSJim Jagielski } 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski // ____________________ 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski /** 101*b1cdbd2cSJim Jagielski * It starts the progress and set the initial text and range. 102*b1cdbd2cSJim Jagielski * 103*b1cdbd2cSJim Jagielski * @param sText 104*b1cdbd2cSJim Jagielski * the initial text for showing 105*b1cdbd2cSJim Jagielski * 106*b1cdbd2cSJim Jagielski * @param nRange 107*b1cdbd2cSJim Jagielski * the new range for following progress 108*b1cdbd2cSJim Jagielski */ start( String sText, int nRange )109*b1cdbd2cSJim Jagielski public void start( /*IN*/String sText, /*IN*/int nRange ) 110*b1cdbd2cSJim Jagielski { 111*b1cdbd2cSJim Jagielski synchronized(this) 112*b1cdbd2cSJim Jagielski { 113*b1cdbd2cSJim Jagielski //m_aProtocol.log("start("+sText+","+nRange+")\n"); 114*b1cdbd2cSJim Jagielski m_bWasUsed = true; 115*b1cdbd2cSJim Jagielski // m_aProtocol.itWasUsed(); 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski m_sText = sText ; 118*b1cdbd2cSJim Jagielski m_nRange = nRange; 119*b1cdbd2cSJim Jagielski m_nValue = 0 ; 120*b1cdbd2cSJim Jagielski } 121*b1cdbd2cSJim Jagielski impl_show(); 122*b1cdbd2cSJim Jagielski } 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski // ____________________ 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski /** 127*b1cdbd2cSJim Jagielski * Finish the progress and reset internal members. 128*b1cdbd2cSJim Jagielski */ end()129*b1cdbd2cSJim Jagielski public void end() 130*b1cdbd2cSJim Jagielski { 131*b1cdbd2cSJim Jagielski synchronized(this) 132*b1cdbd2cSJim Jagielski { 133*b1cdbd2cSJim Jagielski //m_aProtocol.log("end()\n"); 134*b1cdbd2cSJim Jagielski m_bWasUsed = true; 135*b1cdbd2cSJim Jagielski // m_aProtocol.itWasUsed(); 136*b1cdbd2cSJim Jagielski 137*b1cdbd2cSJim Jagielski m_sText = new String(); 138*b1cdbd2cSJim Jagielski m_nRange = 100; 139*b1cdbd2cSJim Jagielski m_nValue = 0; 140*b1cdbd2cSJim Jagielski } 141*b1cdbd2cSJim Jagielski impl_show(); 142*b1cdbd2cSJim Jagielski } 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski // ____________________ 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski /** 147*b1cdbd2cSJim Jagielski * Set the new description text. 148*b1cdbd2cSJim Jagielski * 149*b1cdbd2cSJim Jagielski * @param sText 150*b1cdbd2cSJim Jagielski * the new text for showing 151*b1cdbd2cSJim Jagielski */ setText( String sText )152*b1cdbd2cSJim Jagielski public void setText( /*IN*/String sText ) 153*b1cdbd2cSJim Jagielski { 154*b1cdbd2cSJim Jagielski synchronized(this) 155*b1cdbd2cSJim Jagielski { 156*b1cdbd2cSJim Jagielski //m_aProtocol.log("setText("+sText+")\n"); 157*b1cdbd2cSJim Jagielski m_bWasUsed = true; 158*b1cdbd2cSJim Jagielski // m_aProtocol.itWasUsed(); 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski m_sText = sText; 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski impl_show(); 163*b1cdbd2cSJim Jagielski } 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski // ____________________ 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski /** 168*b1cdbd2cSJim Jagielski * Set the new progress value. 169*b1cdbd2cSJim Jagielski * 170*b1cdbd2cSJim Jagielski * @param nValue 171*b1cdbd2cSJim Jagielski * the new progress value 172*b1cdbd2cSJim Jagielski * Must fit the range! 173*b1cdbd2cSJim Jagielski */ setValue( int nValue )174*b1cdbd2cSJim Jagielski public void setValue( /*IN*/int nValue ) 175*b1cdbd2cSJim Jagielski { 176*b1cdbd2cSJim Jagielski synchronized(this) 177*b1cdbd2cSJim Jagielski { 178*b1cdbd2cSJim Jagielski //m_aProtocol.log("setValue("+nValue+")\n"); 179*b1cdbd2cSJim Jagielski m_bWasUsed = true; 180*b1cdbd2cSJim Jagielski // m_aProtocol.itWasUsed(); 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski if (nValue<=m_nRange) 183*b1cdbd2cSJim Jagielski m_nValue = nValue; 184*b1cdbd2cSJim Jagielski } 185*b1cdbd2cSJim Jagielski impl_show(); 186*b1cdbd2cSJim Jagielski } 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski // ____________________ 189*b1cdbd2cSJim Jagielski 190*b1cdbd2cSJim Jagielski /** 191*b1cdbd2cSJim Jagielski * Reset text and progress value to her defaults. 192*b1cdbd2cSJim Jagielski */ reset()193*b1cdbd2cSJim Jagielski public void reset() 194*b1cdbd2cSJim Jagielski { 195*b1cdbd2cSJim Jagielski synchronized(this) 196*b1cdbd2cSJim Jagielski { 197*b1cdbd2cSJim Jagielski //m_aProtocol.log("reset()\n"); 198*b1cdbd2cSJim Jagielski m_bWasUsed = true; 199*b1cdbd2cSJim Jagielski // m_aProtocol.itWasUsed(); 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski m_sText = new String(); 202*b1cdbd2cSJim Jagielski m_nValue = 0; 203*b1cdbd2cSJim Jagielski } 204*b1cdbd2cSJim Jagielski impl_show(); 205*b1cdbd2cSJim Jagielski } 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski // ____________________ 208*b1cdbd2cSJim Jagielski 209*b1cdbd2cSJim Jagielski /** 210*b1cdbd2cSJim Jagielski * Internal helper to show the status. 211*b1cdbd2cSJim Jagielski * Currently it's implement as normal text out on stdout. 212*b1cdbd2cSJim Jagielski * But of course other thimngs are possible here too. 213*b1cdbd2cSJim Jagielski * e.g. a dialog 214*b1cdbd2cSJim Jagielski */ impl_show()215*b1cdbd2cSJim Jagielski private void impl_show() 216*b1cdbd2cSJim Jagielski { 217*b1cdbd2cSJim Jagielski /* synchronized(this) 218*b1cdbd2cSJim Jagielski { 219*b1cdbd2cSJim Jagielski if ((m_nOut & SHOWSTATUS_LOG) == SHOWSTATUS_LOG) 220*b1cdbd2cSJim Jagielski //m_aProtocol.log("\t["+m_nValue+"/"+m_nRange+"] "+m_sText+"\n"); 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski //if ((m_nOut & SHOWSTATUS_DIALOG) == SHOWSTATUS_DIALOG) 223*b1cdbd2cSJim Jagielski // not supported yet! 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski //if ((m_nOut & SHOWSTATUS_LINK) == SHOWSTATUS_LINK) 226*b1cdbd2cSJim Jagielski // not supported yet! 227*b1cdbd2cSJim Jagielski } */ 228*b1cdbd2cSJim Jagielski } 229*b1cdbd2cSJim Jagielski wasUsed()230*b1cdbd2cSJim Jagielski public boolean wasUsed() { 231*b1cdbd2cSJim Jagielski return m_bWasUsed; 232*b1cdbd2cSJim Jagielski } 233*b1cdbd2cSJim Jagielski } 234