diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/Monitor.java')
-rw-r--r-- | plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/Monitor.java | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/Monitor.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/Monitor.java index 929afea5bb..0e8fe2140a 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/Monitor.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/Monitor.java @@ -9,22 +9,38 @@ public abstract class Monitor { private static final int UNINITIALIZED = 0; + private Monitor parent; + + private int workFromParent; + private int totalWork = UNINITIALIZED; private int work; private String task; - public Monitor() + public Monitor(Monitor parent, int workFromParent) + { + this.parent = parent; + this.workFromParent = workFromParent; + } + + public Monitor getParent() + { + return parent; + } + + public int getWorkFromParent() { + return workFromParent; } - public final String getTask() + public String getTask() { return task; } - public final void setTask(String task, int level) + public void setTask(String task, int level) { this.task = task; message(task, level); @@ -68,7 +84,22 @@ public abstract class Monitor } } - public abstract void message(String msg, int level); + public void message(String msg, int level) + { + if (parent != null) + { + parent.message(msg, level + 1); + } + else + { + for (int i = 0; i < level; i++) + { + System.out.print(" "); + } + + System.out.println(msg); + } + } - public abstract SubMonitor newSubMonitor(int workFromParent); + public abstract Monitor subMonitor(int workFromParent); }
\ No newline at end of file |