1 /*******************************************************************************
2 * Copyright (c) 2011, 2012 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
.project
.model
;
15 import org
.eclipse
.core
.resources
.IProject
;
16 import org
.eclipse
.core
.resources
.IResourceChangeEvent
;
17 import org
.eclipse
.swt
.widgets
.Display
;
18 import org
.eclipse
.ui
.IViewPart
;
19 import org
.eclipse
.ui
.IViewReference
;
20 import org
.eclipse
.ui
.IWorkbench
;
21 import org
.eclipse
.ui
.IWorkbenchPage
;
22 import org
.eclipse
.ui
.IWorkbenchWindow
;
23 import org
.eclipse
.ui
.PlatformUI
;
24 import org
.eclipse
.ui
.navigator
.CommonNavigator
;
25 import org
.eclipse
.ui
.navigator
.CommonViewer
;
28 * The implementation of TMF project model element.
31 * @author Francois Chouinard
33 public class TmfProjectElement
extends TmfProjectModelElement
{
35 // ------------------------------------------------------------------------
37 // ------------------------------------------------------------------------
39 private TmfTraceFolder fTraceFolder
= null;
40 private TmfExperimentFolder fExperimentFolder
= null;
42 // ------------------------------------------------------------------------
44 // ------------------------------------------------------------------------
48 * Creates the TMF project model element.
49 * @param name The name of the project.
50 * @param project The project reference.
51 * @param parent The parent element
53 public TmfProjectElement(String name
, IProject project
, ITmfProjectModelElement parent
) {
54 super(name
, project
, parent
);
57 // ------------------------------------------------------------------------
58 // TmfProjectModelElement
59 // ------------------------------------------------------------------------
63 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#getResource()
66 public IProject
getResource() {
67 return (IProject
) fResource
;
72 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#addChild(org.eclipse.linuxtools.tmf.ui.project.model.ITmfProjectModelElement)
75 public void addChild(ITmfProjectModelElement child
) {
76 super.addChild(child
);
77 if (child
instanceof TmfTraceFolder
) {
78 fTraceFolder
= (TmfTraceFolder
) child
;
81 if (child
instanceof TmfExperimentFolder
) {
82 fExperimentFolder
= (TmfExperimentFolder
) child
;
87 // ------------------------------------------------------------------------
89 // ------------------------------------------------------------------------
91 * Returns the containing trace folder element.
92 * @return the TMF trace folder element.
94 public TmfTraceFolder
getTracesFolder() {
99 * Returns the containing experiment folder element.
100 * @return the TMF experiment folder element.
102 public TmfExperimentFolder
getExperimentsFolder() {
103 return fExperimentFolder
;
106 // ------------------------------------------------------------------------
108 // ------------------------------------------------------------------------
112 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#refresh()
115 public void refresh() {
116 Display
.getDefault().asyncExec(new Runnable(){
119 IWorkbench wb
= PlatformUI
.getWorkbench();
120 IWorkbenchWindow wbWindow
= wb
.getActiveWorkbenchWindow();
121 if (wbWindow
== null) {
124 IWorkbenchPage activePage
= wbWindow
.getActivePage();
125 if (activePage
== null) {
129 for (IViewReference viewReference
: activePage
.getViewReferences()) {
130 IViewPart viewPart
= viewReference
.getView(false);
131 if (viewPart
instanceof CommonNavigator
) {
132 CommonViewer commonViewer
= ((CommonNavigator
) viewPart
).getCommonViewer();
133 commonViewer
.refresh();
141 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
144 public void resourceChanged(IResourceChangeEvent event
) {
145 if (event
.getType() == IResourceChangeEvent
.POST_CHANGE
) {
152 * @see org.eclipse.linuxtools.tmf.ui.project.model.ITmfProjectModelElement#getProject()
155 public TmfProjectElement
getProject() {