| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| package complex.loadAllDocuments; |
| |
| // __________ Imports __________ |
| |
| // structs, const, ... |
| import com.sun.star.beans.PropertyValue; |
| |
| // exceptions |
| import com.sun.star.uno.Exception; |
| import com.sun.star.uno.RuntimeException; |
| |
| // interfaces |
| import com.sun.star.task.XStatusIndicator; |
| |
| // helper |
| import com.sun.star.uno.UnoRuntime; |
| |
| // others |
| //import java.lang.*; |
| |
| // __________ Implementation __________ |
| |
| /** |
| * Implemets a simple status indicator, which |
| * provide informations about state of a load request. |
| * It can be used as an argument e.g. for loadComponentFromURL(). |
| */ |
| public class StatusIndicator implements com.sun.star.task.XStatusIndicator |
| { |
| // ____________________ |
| |
| /** |
| * @const SHOWSTATUS_NO don't show the status - but save information about using of this indicator object |
| * @const SHOWSTATUS_LOG the possible set protocol object will be used (it covers STDOUT, STDERR automaticly too) |
| * @const SHOWSTATUS_DIALOG the status will be shown inside a java dialog |
| * @const SHOWSTATUS_LINK the status will be notified to interested listener (one listener only!) |
| */ |
| public static final int SHOWSTATUS_NO = 0; |
| public static final int SHOWSTATUS_LOG = 1; |
| public static final int SHOWSTATUS_DIALOG = 4; |
| public static final int SHOWSTATUS_LINK = 8; |
| |
| // ____________________ |
| |
| /** |
| * @member m_sText text, which describe the current status |
| * @member m_nRange max value for any progress |
| * @member m_nValue the progress value |
| * @member m_nOut regulate, how the status will be shown |
| * @member m_aProtocol used for logging and transport information about used interface of this object |
| */ |
| private String m_sText ; |
| private int m_nRange ; |
| private int m_nValue ; |
| private int m_nOut ; |
| // private Protocol m_aProtocol ; |
| private boolean m_bWasUsed ; |
| |
| // ____________________ |
| |
| /** |
| * ctor |
| * It's initialize an object of this class with default values. |
| */ |
| public StatusIndicator( int nOut) |
| { |
| m_sText = new String() ; |
| m_nRange = 100 ; |
| m_nValue = 0 ; |
| m_nOut = nOut ; |
| //m_aProtocol = aProtocol ; |
| m_bWasUsed = false; |
| // aProtocol.resetUsingState(); |
| } |
| |
| // ____________________ |
| |
| /** |
| * It starts the progress and set the initial text and range. |
| * |
| * @param sText |
| * the initial text for showing |
| * |
| * @param nRange |
| * the new range for following progress |
| */ |
| public void start( /*IN*/String sText, /*IN*/int nRange ) |
| { |
| synchronized(this) |
| { |
| //m_aProtocol.log("start("+sText+","+nRange+")\n"); |
| m_bWasUsed = true; |
| // m_aProtocol.itWasUsed(); |
| |
| m_sText = sText ; |
| m_nRange = nRange; |
| m_nValue = 0 ; |
| } |
| impl_show(); |
| } |
| |
| // ____________________ |
| |
| /** |
| * Finish the progress and reset internal members. |
| */ |
| public void end() |
| { |
| synchronized(this) |
| { |
| //m_aProtocol.log("end()\n"); |
| m_bWasUsed = true; |
| // m_aProtocol.itWasUsed(); |
| |
| m_sText = new String(); |
| m_nRange = 100; |
| m_nValue = 0; |
| } |
| impl_show(); |
| } |
| |
| // ____________________ |
| |
| /** |
| * Set the new description text. |
| * |
| * @param sText |
| * the new text for showing |
| */ |
| public void setText( /*IN*/String sText ) |
| { |
| synchronized(this) |
| { |
| //m_aProtocol.log("setText("+sText+")\n"); |
| m_bWasUsed = true; |
| // m_aProtocol.itWasUsed(); |
| |
| m_sText = sText; |
| } |
| impl_show(); |
| } |
| |
| // ____________________ |
| |
| /** |
| * Set the new progress value. |
| * |
| * @param nValue |
| * the new progress value |
| * Must fit the range! |
| */ |
| public void setValue( /*IN*/int nValue ) |
| { |
| synchronized(this) |
| { |
| //m_aProtocol.log("setValue("+nValue+")\n"); |
| m_bWasUsed = true; |
| // m_aProtocol.itWasUsed(); |
| |
| if (nValue<=m_nRange) |
| m_nValue = nValue; |
| } |
| impl_show(); |
| } |
| |
| // ____________________ |
| |
| /** |
| * Reset text and progress value to her defaults. |
| */ |
| public void reset() |
| { |
| synchronized(this) |
| { |
| //m_aProtocol.log("reset()\n"); |
| m_bWasUsed = true; |
| // m_aProtocol.itWasUsed(); |
| |
| m_sText = new String(); |
| m_nValue = 0; |
| } |
| impl_show(); |
| } |
| |
| // ____________________ |
| |
| /** |
| * Internal helper to show the status. |
| * Currently it's implement as normal text out on stdout. |
| * But of course other thimngs are possible here too. |
| * e.g. a dialog |
| */ |
| private void impl_show() |
| { |
| /* synchronized(this) |
| { |
| if ((m_nOut & SHOWSTATUS_LOG) == SHOWSTATUS_LOG) |
| //m_aProtocol.log("\t["+m_nValue+"/"+m_nRange+"] "+m_sText+"\n"); |
| |
| //if ((m_nOut & SHOWSTATUS_DIALOG) == SHOWSTATUS_DIALOG) |
| // not supported yet! |
| |
| //if ((m_nOut & SHOWSTATUS_LINK) == SHOWSTATUS_LINK) |
| // not supported yet! |
| } */ |
| } |
| |
| public boolean wasUsed() { |
| return m_bWasUsed; |
| } |
| } |