1 /*******************************************************************************
2 * Copyright (c) 2009, 2010 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.ui
.views
.project
.model
;
15 import java
.lang
.reflect
.Array
;
16 import java
.util
.Iterator
;
18 import org
.eclipse
.core
.resources
.IFolder
;
19 import org
.eclipse
.core
.resources
.IResource
;
20 import org
.eclipse
.core
.runtime
.CoreException
;
21 import org
.eclipse
.core
.runtime
.IPath
;
24 * <b><u>TmfTraceFolderNode</u></b>
26 * TODO: Implement me. Please.
28 public class TmfTraceFolderNode
extends TmfProjectTreeNode
{
30 private final IFolder fTraceFolder
;
32 // ------------------------------------------------------------------------
34 // ------------------------------------------------------------------------
36 public TmfTraceFolderNode(IFolder folder
) {
40 public TmfTraceFolderNode(ITmfProjectTreeNode parent
, IFolder folder
) {
42 fTraceFolder
= folder
;
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
49 public String
getName() {
50 return fTraceFolder
.getName();
54 public void refreshChildren() {
56 IResource
[] resources
= fTraceFolder
.members();
57 for (IResource resource
: resources
) {
58 TmfTraceNode node
= find(resource
.getName());
60 node
= new TmfTraceNode(this, resource
);
64 Iterator
<ITmfProjectTreeNode
> iterator
= fChildren
.iterator();
65 while (iterator
.hasNext()) {
66 ITmfProjectTreeNode node
= iterator
.next();
67 if (!exists(node
.getName(), resources
)) {
71 } catch (CoreException e
) {
75 private TmfTraceNode
find(String name
) {
76 for (ITmfProjectTreeNode node
: fChildren
) {
77 if (node
instanceof TmfTraceNode
&& node
.getName().equals(name
)) {
78 return (TmfTraceNode
) node
;
84 private boolean exists(String name
, IResource
[] resources
) {
85 for (IResource resource
: resources
) {
86 if (resource
.getName().equals(name
))
92 // ------------------------------------------------------------------------
94 // ------------------------------------------------------------------------
99 public TmfProjectNode
getProject() {
100 return (TmfProjectNode
) getParent();
106 public IFolder
getFolder() {
113 public TmfTraceNode
[] getTraces() {
114 TmfTraceNode
[] result
= (TmfTraceNode
[]) Array
.newInstance(TmfTraceNode
.class, fChildren
.size());
115 return fChildren
.toArray(result
);
121 public TmfTraceNode
getTraceForLocation(IPath location
) {
122 for (ITmfProjectTreeNode node
: fChildren
) {
123 TmfTraceNode trace
= (TmfTraceNode
) node
;
124 if (trace
.getResource().getLocation().equals(location
)) {
131 // ------------------------------------------------------------------------
133 // ------------------------------------------------------------------------
135 // No longer needed: handled by the IResourceChangeListener in the View
136 public void addTrace(IFolder trace
) {
137 // TmfTraceNode node = new TmfTraceNode(this, trace);
138 // fChildren.add(node);