diff options
author | Marc-Andre Laperle | 2014-11-04 21:59:08 +0000 |
---|---|---|
committer | Marc-Andre Laperle | 2014-11-06 18:02:16 +0000 |
commit | 574bfd9e47c1166591f5113bbd13d54f96eb2fd5 (patch) | |
tree | 6813a4c77782d8e1ae27bc426361a45d933b6024 | |
parent | 155878fb6db46039f70b1ee83f428e6cabc22462 (diff) | |
download | org.eclipse.linuxtools-574bfd9e47c1166591f5113bbd13d54f96eb2fd5.tar.gz org.eclipse.linuxtools-574bfd9e47c1166591f5113bbd13d54f96eb2fd5.tar.xz org.eclipse.linuxtools-574bfd9e47c1166591f5113bbd13d54f96eb2fd5.zip |
tmf: Add element to its parent's children automatically and remove setChildren
Also, add a few useful setters.
Change-Id: I8ae7cff34d9a066d0ce9d17ef555e5539a3dc55c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/35916
Tested-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
6 files changed, 64 insertions, 23 deletions
diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageElement.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageElement.java index 4792f2e962..23110a6673 100644 --- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageElement.java +++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageElement.java @@ -24,8 +24,8 @@ import org.eclipse.ui.model.WorkbenchAdapter; * @author Marc-Andre Laperle */ public abstract class TracePackageElement extends WorkbenchAdapter { - private TracePackageElement[] fChildren; - private final TracePackageElement fParent; + private final List<TracePackageElement> fChildren; + private TracePackageElement fParent; private boolean fEnabled; private boolean fChecked; private boolean fVisible; @@ -39,7 +39,32 @@ public abstract class TracePackageElement extends WorkbenchAdapter { fParent = parent; fEnabled = true; fVisible = true; - fChildren = new TracePackageElement[0]; + fChildren = new ArrayList<>(); + if (parent != null) { + parent.addChild(this); + } + } + + /** + * Add a child to the element. + * + * @param child + * the element to add as a child + */ + public void addChild(TracePackageElement child) { + child.setParent(this); + fChildren.add(child); + } + + /** + * Remove a child from the element. + * + * @param child + * the child to remove + */ + public void removeChild(TracePackageElement child) { + fChildren.remove(child); + child.setParent(null); } /** @@ -49,6 +74,10 @@ public abstract class TracePackageElement extends WorkbenchAdapter { return fParent; } + private void setParent(TracePackageElement parent) { + fParent = parent; + } + /** * Get the text representation of this element to be displayed in the tree. * @@ -62,7 +91,7 @@ public abstract class TracePackageElement extends WorkbenchAdapter { * @return the children of this element */ public TracePackageElement[] getChildren() { - return fChildren; + return fChildren.toArray(new TracePackageElement[fChildren.size()]); } /** @@ -81,16 +110,6 @@ public abstract class TracePackageElement extends WorkbenchAdapter { } /** - * Set the children of this element - * - * @param children - * the children of this element - */ - public void setChildren(TracePackageElement[] children) { - this.fChildren = children; - } - - /** * Get the total size of the element including its children * * @param checkedOnly diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageFilesElement.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageFilesElement.java index 881a9cfa6a..7f686548d0 100644 --- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageFilesElement.java +++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageFilesElement.java @@ -26,7 +26,7 @@ import org.eclipse.swt.graphics.Image; public class TracePackageFilesElement extends TracePackageElement { private static final String TRACE_ICON_PATH = "icons/elcl16/trace.gif"; //$NON-NLS-1$ - private final String fFileName; + private String fFileName; private final IResource fResource; private long fSize = -1; @@ -104,4 +104,13 @@ public class TracePackageFilesElement extends TracePackageElement { return fFileName; } + /** + * Set the file name for this trace file or folder + * + * @param fileName the file name for this trace file or folder + */ + public void setFileName(String fileName) { + fFileName = fileName; + } + } diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageTraceElement.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageTraceElement.java index a17ed2c070..2df8b74fa3 100644 --- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageTraceElement.java +++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/TracePackageTraceElement.java @@ -27,8 +27,8 @@ import org.eclipse.swt.graphics.Image; public class TracePackageTraceElement extends TracePackageElement { private final TmfTraceElement fTraceElement; - private final String fImportName; - private final String fTraceType; + private String fImportName; + private String fTraceType; /** * Construct an instance associated to a TmfTraceElement. For exporting. @@ -128,6 +128,15 @@ public class TracePackageTraceElement extends TracePackageElement { } /** + * Set the import name. + * + * @param importName the import name. + */ + public void setImportName(String importName) { + fImportName = importName; + } + + /** * @return the import name */ public String getImportName() { @@ -141,6 +150,15 @@ public class TracePackageTraceElement extends TracePackageElement { return fTraceType; } + /** + * Set the trace type of this trace. + * + * @param traceType the trace type of this trace + */ + public void setTraceType(String traceType) { + fTraceType = traceType; + } + @Override public Image getImage() { TmfNavigatorLabelProvider tmfNavigatorLabelProvider = new TmfNavigatorLabelProvider(); diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ExportTracePackageWizardPage.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ExportTracePackageWizardPage.java index 05cd4b92c6..d071339ea5 100644 --- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ExportTracePackageWizardPage.java +++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ExportTracePackageWizardPage.java @@ -314,7 +314,6 @@ public class ExportTracePackageWizardPage extends AbstractTracePackageWizardPage for (IResource res : supplementaryResources) { suppFilesChildren.add(new TracePackageSupplFileElement(res, suppFilesElement)); } - suppFilesElement.setChildren(suppFilesChildren.toArray(new TracePackageElement[] {})); // Bookmarks IFile bookmarksFile = tmfTraceElement.getBookmarksFile(); @@ -331,8 +330,6 @@ public class ExportTracePackageWizardPage extends AbstractTracePackageWizardPage } } - traceElement.setChildren(children.toArray(new TracePackageElement[] {})); - traceElements.add(traceElement); } diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ManifestReader.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ManifestReader.java index 4d72b58e32..136d537abb 100644 --- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ManifestReader.java +++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/ManifestReader.java @@ -162,7 +162,6 @@ public class ManifestReader { } if (!suppFiles.isEmpty()) { - supplFilesElement.setChildren(suppFiles.toArray(EMPTY_ARRAY)); children.add(supplFilesElement); } @@ -192,7 +191,6 @@ public class ManifestReader { children.add(new TracePackageBookmarkElement(element, bookmarkAttribs)); } - element.setChildren(children.toArray(EMPTY_ARRAY)); packageElements.add(element); } } diff --git a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java index 1596872726..20ee641138 100644 --- a/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java +++ b/lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java @@ -132,7 +132,7 @@ public class TracePackageExtractManifestOperation extends AbstractTracePackageOp List<TracePackageElement> packageElements = new ArrayList<>(); for (String traceFileName : traceFileNames) { TracePackageTraceElement traceElement = new TracePackageTraceElement(null, traceFileName, null); - traceElement.setChildren(new TracePackageElement[] { new TracePackageFilesElement(traceElement, traceFileName) }); + new TracePackageFilesElement(traceElement, traceFileName); packageElements.add(traceElement); } |