1 /*******************************************************************************
2 * Copyright (c) 2011, 2013 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 // ------------------------------------------------------------------------
62 public IProject
getResource() {
63 return (IProject
) fResource
;
67 public void addChild(ITmfProjectModelElement child
) {
68 super.addChild(child
);
69 if (child
instanceof TmfTraceFolder
) {
70 fTraceFolder
= (TmfTraceFolder
) child
;
73 if (child
instanceof TmfExperimentFolder
) {
74 fExperimentFolder
= (TmfExperimentFolder
) child
;
79 // ------------------------------------------------------------------------
81 // ------------------------------------------------------------------------
84 * Returns the containing trace folder element.
85 * @return the TMF trace folder element.
87 public TmfTraceFolder
getTracesFolder() {
92 * Returns the containing experiment folder element.
93 * @return the TMF experiment folder element.
95 public TmfExperimentFolder
getExperimentsFolder() {
96 return fExperimentFolder
;
99 // ------------------------------------------------------------------------
101 // ------------------------------------------------------------------------
104 public void refresh() {
105 Display
.getDefault().asyncExec(new Runnable(){
108 IWorkbench wb
= PlatformUI
.getWorkbench();
109 IWorkbenchWindow wbWindow
= wb
.getActiveWorkbenchWindow();
110 if (wbWindow
== null) {
113 IWorkbenchPage activePage
= wbWindow
.getActivePage();
114 if (activePage
== null) {
118 for (IViewReference viewReference
: activePage
.getViewReferences()) {
119 IViewPart viewPart
= viewReference
.getView(false);
120 if (viewPart
instanceof CommonNavigator
) {
121 CommonViewer commonViewer
= ((CommonNavigator
) viewPart
).getCommonViewer();
122 commonViewer
.refresh();
129 public void resourceChanged(IResourceChangeEvent event
) {
130 if (event
.getType() == IResourceChangeEvent
.POST_CHANGE
) {
136 public TmfProjectElement
getProject() {