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
.util
.ArrayList
;
16 import java
.util
.List
;
18 import org
.eclipse
.core
.resources
.IProject
;
19 import org
.eclipse
.core
.resources
.IProjectNature
;
20 import org
.eclipse
.core
.resources
.IWorkspaceRoot
;
21 import org
.eclipse
.core
.resources
.ResourcesPlugin
;
22 import org
.eclipse
.core
.runtime
.CoreException
;
23 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.project
.ProjectView
;
24 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.project
.TmfProjectNature
;
27 * <b><u>TmfProjectRoot</u></b>
29 * TODO: Implement me. Please.
31 public class TmfProjectRoot
extends TmfProjectTreeNode
{
33 private final ProjectView fView
;
35 // ------------------------------------------------------------------------
37 // ------------------------------------------------------------------------
39 public TmfProjectRoot(ProjectView view
) {
46 public void refresh() {
50 // ------------------------------------------------------------------------
52 // ------------------------------------------------------------------------
55 public String
getName() {
60 public void refreshChildren() {
61 IWorkspaceRoot root
= ResourcesPlugin
.getWorkspace().getRoot();
62 IProject
[] projects
= root
.getProjects();
63 for (IProject project
: projects
) {
64 if (!project
.isOpen() || isTmfProject(project
)) {
65 TmfProjectNode node
= find(project
.getName());
67 node
= new TmfProjectNode(this, project
);
74 List
<ITmfProjectTreeNode
> toRemove
= new ArrayList
<ITmfProjectTreeNode
>();
75 for (ITmfProjectTreeNode node
: fChildren
) {
76 if (exists(node
.getName(), projects
)) {
77 node
.refreshChildren();
82 for (ITmfProjectTreeNode node
: toRemove
) {
83 fChildren
.remove(node
);
87 private TmfProjectNode
find(String name
) {
88 for (ITmfProjectTreeNode node
: fChildren
) {
89 if (node
instanceof TmfProjectNode
&& node
.getName().equals(name
)) {
90 return (TmfProjectNode
) node
;
96 private boolean exists(String name
, IProject
[] projects
) {
97 for (IProject project
: projects
) {
98 if (project
.getName().equals(name
) && (!project
.isOpen() || isTmfProject(project
)))
104 private boolean isTmfProject(IProject project
) {
105 if (project
.isOpen()) {
106 IProjectNature nature
;
108 nature
= project
.getNature(TmfProjectNature
.ID
);
109 if (nature
instanceof TmfProjectNature
) {
112 } catch (CoreException e
) {
This page took 0.032939 seconds and 5 git commands to generate.