Merge branch 'master' into lttng_2_0_control_dev
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / project / model / TmfProjectElement.java
CommitLineData
12c155f5
FC
1/*******************************************************************************
2 * Copyright (c) 2011 Ericsson
3 *
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
8 *
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.ui.project.model;
14
12c155f5
FC
15import org.eclipse.core.resources.IProject;
16import org.eclipse.core.resources.IResourceChangeEvent;
f523352d
PT
17import org.eclipse.swt.widgets.Display;
18import org.eclipse.ui.IViewPart;
19import org.eclipse.ui.IViewReference;
20import org.eclipse.ui.IWorkbench;
21import org.eclipse.ui.IWorkbenchPage;
eb319a80 22import org.eclipse.ui.IWorkbenchWindow;
f523352d
PT
23import org.eclipse.ui.PlatformUI;
24import org.eclipse.ui.navigator.CommonNavigator;
25import org.eclipse.ui.navigator.CommonViewer;
12c155f5
FC
26
27/**
28 * <b><u>TmfProjectElement</u></b>
29 * <p>
30 */
31public class TmfProjectElement extends TmfProjectModelElement {
32
33 // ------------------------------------------------------------------------
34 // Attributes
35 // ------------------------------------------------------------------------
36
37 TmfTraceFolder fTraceFolder = null;
38 TmfExperimentFolder fExperimentFolder = null;
39
40 // ------------------------------------------------------------------------
41 // Constructor
42 // ------------------------------------------------------------------------
43
44 public TmfProjectElement(String name, IProject project, ITmfProjectModelElement parent) {
45 super(name, project, parent);
46 }
47
48 // ------------------------------------------------------------------------
49 // TmfProjectModelElement
50 // ------------------------------------------------------------------------
51
52 @Override
53 public IProject getResource() {
54 return (IProject) fResource;
55 }
56
57 @Override
58 public void addChild(ITmfProjectModelElement child) {
59 super.addChild(child);
60 if (child instanceof TmfTraceFolder) {
61 fTraceFolder = (TmfTraceFolder) child;
62 return;
63 }
64 if (child instanceof TmfExperimentFolder) {
65 fExperimentFolder = (TmfExperimentFolder) child;
66 return;
67 }
68 }
69
70 // ------------------------------------------------------------------------
71 // Accessors
72 // ------------------------------------------------------------------------
73
74 public TmfTraceFolder getTracesFolder() {
75 return fTraceFolder;
76 }
77
78 public TmfExperimentFolder getExperimentsFolder() {
79 return fExperimentFolder;
80 }
81
82 // ------------------------------------------------------------------------
83 // TmfProjectElement
84 // ------------------------------------------------------------------------
85
86 @Override
87 public void refresh() {
f523352d
PT
88 Display.getDefault().asyncExec(new Runnable(){
89 @Override
90 public void run() {
91 IWorkbench wb = PlatformUI.getWorkbench();
eb319a80
PT
92 IWorkbenchWindow wbWindow = wb.getActiveWorkbenchWindow();
93 if (wbWindow == null) {
94 return;
95 }
96 IWorkbenchPage activePage = wbWindow.getActivePage();
f523352d
PT
97 for (IViewReference viewReference : activePage.getViewReferences()) {
98 IViewPart viewPart = viewReference.getView(false);
99 if (viewPart instanceof CommonNavigator) {
100 CommonViewer commonViewer = ((CommonNavigator) viewPart).getCommonViewer();
101 commonViewer.refresh();
102 }
12c155f5 103 }
f523352d 104 }});
12c155f5
FC
105 }
106
107 @Override
108 public void resourceChanged(IResourceChangeEvent event) {
109 if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
110 refresh();
111 }
112 }
113
114 @Override
115 public TmfProjectElement getProject() {
116 return this;
117 }
118
119}
This page took 0.031872 seconds and 5 git commands to generate.