Index: editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchProgressMonitor.java |
=================================================================== |
--- editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchProgressMonitor.java (revision 0) |
+++ editor/tools/plugins/com.xored.glance.ui/src/com/xored/glance/internal/ui/search/SearchProgressMonitor.java (revision 0) |
@@ -0,0 +1,67 @@ |
+/******************************************************************************* |
+ * Copyright (c) 2012 xored software, Inc. All rights reserved. This program and the accompanying |
+ * materials are made available under the terms of the Eclipse Public License v1.0 which accompanies |
+ * this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: |
+ * xored software, Inc. - initial API and implementation (Yuri Strot) |
+ ******************************************************************************/ |
+package com.xored.glance.internal.ui.search; |
+ |
+import org.eclipse.core.runtime.IProgressMonitor; |
+ |
+import com.xored.glance.ui.panels.ISearchPanel; |
+ |
+public class SearchProgressMonitor implements IProgressMonitor { |
+ |
+ private final ISearchPanel panel; |
+ private double total = 1; |
+ private double current; |
+ private boolean cancel; |
+ |
+ public SearchProgressMonitor(ISearchPanel panel) { |
+ this.panel = panel; |
+ } |
+ |
+ public void beginTask(String name, int totalWork) { |
+ total = totalWork; |
+ panel.newTask(name); |
+ current = 0; |
+ } |
+ |
+ public void done() { |
+ if (isCanceled()) { |
+ return; |
+ } |
+ panel.setIndexingState(ISearchPanel.INDEXING_STATE_FINISHED); |
+ } |
+ |
+ public void internalWorked(double work) { |
+ if (isCanceled()) { |
+ return; |
+ } |
+ current += work / total; |
+ if (current > 1) { |
+ current = 1; |
+ } |
+ panel.updateIndexingPercent(current); |
+ } |
+ |
+ public boolean isCanceled() { |
+ return cancel || panel.getControl().isDisposed(); |
+ } |
+ |
+ public void setCanceled(boolean value) { |
+ this.cancel = value; |
+ panel.setIndexingState(ISearchPanel.INDEXING_STATE_FINISHED); |
+ } |
+ |
+ public void setTaskName(String name) { |
+ } |
+ |
+ public void subTask(String name) { |
+ } |
+ |
+ public void worked(int work) { |
+ internalWorked(work); |
+ } |
+ |
+} |