forked from amazingfate/loongoffice
238 lines
6.5 KiB
Java
238 lines
6.5 KiB
Java
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
* only, as published by the Free Software Foundation.
|
|
*
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License version 3 for more details
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
* <http://www.openoffice.org/license.html>
|
|
* for a copy of the LGPLv3 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;
|
|
}
|
|
}
|