001: /*******************************************************************************
002: * Copyright (c) 2003, 2007 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.ui.internal.progress;
011:
012: import org.eclipse.swt.graphics.Image;
013:
014: /**
015: * The JobTreeElement is the abstract superclass of items displayed in the tree.
016: */
017: abstract class JobTreeElement implements Comparable {
018:
019: /**
020: * Return the parent of this object.
021: *
022: * @return Object
023: */
024: abstract Object getParent();
025:
026: /**
027: * Return whether or not the receiver has children.
028: *
029: * @return boolean
030: */
031: abstract boolean hasChildren();
032:
033: /**
034: * Return the children of the receiver.
035: *
036: * @return Object[]
037: */
038: abstract Object[] getChildren();
039:
040: /**
041: * Return the displayString for the receiver.
042: *
043: * @return String
044: */
045: abstract String getDisplayString();
046:
047: /**
048: * Return the displayString for the receiver.
049: *
050: * @param showProgress
051: * Whether or not progress is being shown (if relevant).
052: * @return String
053: */
054: String getDisplayString(boolean showProgress) {
055: return getDisplayString();
056: }
057:
058: /**
059: * Get the image for the reciever. By default there is no image.
060: *
061: * @return Image or <code>null</code>.
062: */
063: public Image getDisplayImage() {
064: return null;
065: }
066:
067: /**
068: * Return the condensed version of the display string
069: *
070: * @return String
071: */
072: String getCondensedDisplayString() {
073: return getDisplayString();
074: }
075:
076: /**
077: * Return whether or not the receiver is an info.
078: *
079: * @return boolean
080: */
081: abstract boolean isJobInfo();
082:
083: /*
084: * (non-Javadoc)
085: *
086: * @see java.lang.Comparable#compareTo(java.lang.Object)
087: */
088: public int compareTo(Object arg0) {
089: if (arg0 instanceof JobTreeElement)
090: return getDisplayString().compareTo(
091: ((JobTreeElement) arg0).getDisplayString());
092: return 0;
093: }
094:
095: /**
096: * Return whether or not this is currently active.
097: *
098: * @return boolean
099: */
100: abstract boolean isActive();
101:
102: /**
103: * Return whether or not the receiver can be cancelled.
104: *
105: * @return boolean
106: */
107: public boolean isCancellable() {
108: return false;
109: }
110:
111: /**
112: * Cancel the receiver.
113: */
114: public void cancel() {
115: // By default do nothing.
116: }
117: }
|