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
;
17 import org
.eclipse
.core
.resources
.IFolder
;
18 import org
.eclipse
.core
.resources
.IResource
;
19 import org
.eclipse
.core
.runtime
.CoreException
;
22 * <b><u>TmfExperimentFolderNode</u></b>
24 * TODO: Implement me. Please.
26 public class TmfExperimentFolderNode
extends TmfProjectTreeNode
{
28 private final IFolder fExperimentFolder
;
30 // ------------------------------------------------------------------------
32 // ------------------------------------------------------------------------
34 public TmfExperimentFolderNode(IFolder folder
) {
38 public TmfExperimentFolderNode(ITmfProjectTreeNode parent
, IFolder folder
) {
40 fExperimentFolder
= folder
;
43 // ------------------------------------------------------------------------
45 // ------------------------------------------------------------------------
48 public String
getName() {
49 return fExperimentFolder
.getName();
53 public void refreshChildren() {
55 IResource
[] resources
= fExperimentFolder
.members();
56 for (IResource resource
: resources
) {
57 if (resource
instanceof IFolder
) {
58 TmfExperimentNode node
= find(resource
.getName());
60 node
= new TmfExperimentNode(this, (IFolder
) resource
);
65 for (ITmfProjectTreeNode node
: fChildren
) {
66 if (exists(node
.getName(), resources
)) {
67 node
.refreshChildren();
70 fChildren
.remove(node
);
73 } catch (CoreException e
) {
77 private TmfExperimentNode
find(String name
) {
78 for (ITmfProjectTreeNode node
: fChildren
) {
79 if (node
instanceof TmfExperimentNode
&& node
.getName().equals(name
)) {
80 return (TmfExperimentNode
) node
;
86 private boolean exists(String name
, IResource
[] resources
) {
87 for (IResource resource
: resources
) {
88 if (resource
.getName().equals(name
))
94 // ------------------------------------------------------------------------
96 // ------------------------------------------------------------------------
101 public TmfProjectNode
getProject() {
102 return (TmfProjectNode
) getParent();
108 public IFolder
getFolder() {
109 return fExperimentFolder
;
115 public TmfExperimentNode
[] getExperiments() {
116 TmfExperimentNode
[] result
= (TmfExperimentNode
[]) Array
.newInstance(TmfExperimentNode
.class, fChildren
.size());
117 return fChildren
.toArray(result
);
120 // ------------------------------------------------------------------------
122 // ------------------------------------------------------------------------
124 // No longer needed: handled by the IResourceChangeListener in the View
125 public void addExperiment(IFolder experiment
) {
126 // TmfExperimentNode node = new TmfExperimentNode(this, experiment);
127 // fChildren.add(node);