forked from amazingfate/loongoffice
FDO:60724 Change-Id: I73ad9f1c37cbbcf28d996ed73c75cf09553e499b Reviewed-on: https://gerrit.libreoffice.org/2479 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
178 lines
4.6 KiB
Java
178 lines
4.6 KiB
Java
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* 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 .
|
|
*/
|
|
package complex.loadAllDocuments;
|
|
|
|
// __________ Imports __________
|
|
|
|
|
|
|
|
// __________ Implementation __________
|
|
|
|
/**
|
|
* Implemets a simple status indicator, which
|
|
* provide information 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_nRange max value for any progress
|
|
*/
|
|
private int m_nRange ;
|
|
private boolean m_bWasUsed ;
|
|
|
|
// ____________________
|
|
|
|
/**
|
|
* ctor
|
|
* It's initialize an object of this class with default values.
|
|
*/
|
|
public StatusIndicator( int nOut)
|
|
{
|
|
m_nRange = 100 ;
|
|
m_bWasUsed = false;
|
|
}
|
|
|
|
// ____________________
|
|
|
|
/**
|
|
* 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_bWasUsed = true;
|
|
m_nRange = nRange;
|
|
}
|
|
impl_show();
|
|
}
|
|
|
|
// ____________________
|
|
|
|
/**
|
|
* Finish the progress and reset internal members.
|
|
*/
|
|
public void end()
|
|
{
|
|
synchronized(this)
|
|
{
|
|
m_bWasUsed = true;
|
|
m_nRange = 100;
|
|
}
|
|
impl_show();
|
|
}
|
|
|
|
// ____________________
|
|
|
|
/**
|
|
* Set the new description text.
|
|
*
|
|
* @param sText
|
|
* the new text for showing
|
|
*/
|
|
public void setText( /*IN*/String sText )
|
|
{
|
|
synchronized(this)
|
|
{
|
|
m_bWasUsed = true;
|
|
}
|
|
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_bWasUsed = true;
|
|
}
|
|
impl_show();
|
|
}
|
|
|
|
// ____________________
|
|
|
|
/**
|
|
* Reset text and progress value to her defaults.
|
|
*/
|
|
public void reset()
|
|
{
|
|
synchronized(this)
|
|
{
|
|
m_bWasUsed = true;
|
|
}
|
|
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;
|
|
}
|
|
}
|