83 lines
2.5 KiB
Java
83 lines
2.5 KiB
Java
/*
|
|
* Copyright (C) 2010 Ken Ellinwood.
|
|
*
|
|
* Licensed 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 kellinwood.security.zipsigner;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
public class ProgressHelper {
|
|
|
|
private int progressTotalItems = 0;
|
|
private int progressCurrentItem = 0;
|
|
private ProgressEvent progressEvent = new ProgressEvent();
|
|
|
|
public void initProgress()
|
|
{
|
|
progressTotalItems = 10000;
|
|
progressCurrentItem = 0;
|
|
}
|
|
|
|
public int getProgressTotalItems() {
|
|
return progressTotalItems;
|
|
}
|
|
|
|
public void setProgressTotalItems(int progressTotalItems) {
|
|
this.progressTotalItems = progressTotalItems;
|
|
}
|
|
|
|
public int getProgressCurrentItem() {
|
|
return progressCurrentItem;
|
|
}
|
|
|
|
public void setProgressCurrentItem(int progressCurrentItem) {
|
|
this.progressCurrentItem = progressCurrentItem;
|
|
}
|
|
|
|
public void progress( int priority, String message) {
|
|
|
|
progressCurrentItem += 1;
|
|
|
|
int percentDone;
|
|
if (progressTotalItems == 0) percentDone = 0;
|
|
else percentDone = (100 * progressCurrentItem) / progressTotalItems;
|
|
|
|
// Notify listeners here
|
|
for (ProgressListener listener : listeners) {
|
|
progressEvent.setMessage(message);
|
|
progressEvent.setPercentDone(percentDone);
|
|
progressEvent.setPriority(priority);
|
|
listener.onProgress( progressEvent);
|
|
}
|
|
}
|
|
|
|
private ArrayList<ProgressListener> listeners = new ArrayList<ProgressListener>();
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public synchronized void addProgressListener( ProgressListener l)
|
|
{
|
|
ArrayList<ProgressListener> list = (ArrayList<ProgressListener>)listeners.clone();
|
|
list.add(l);
|
|
listeners = list;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public synchronized void removeProgressListener( ProgressListener l)
|
|
{
|
|
ArrayList<ProgressListener> list = (ArrayList<ProgressListener>)listeners.clone();
|
|
list.remove(l);
|
|
listeners = list;
|
|
}
|
|
}
|