Update bookmarks file API, link to editor and delete & rename handlers
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / project / model / TmfProjectElement.java
1 /*******************************************************************************
2 * Copyright (c) 2011, 2012 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
13 package org.eclipse.linuxtools.tmf.ui.project.model;
14
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;
26
27 /**
28 * The implementation of TMF project model element.
29 *
30 * @version 1.0
31 * @author Francois Chouinard
32 */
33 public class TmfProjectElement extends TmfProjectModelElement {
34
35 // ------------------------------------------------------------------------
36 // Attributes
37 // ------------------------------------------------------------------------
38
39 private TmfTraceFolder fTraceFolder = null;
40 private TmfExperimentFolder fExperimentFolder = null;
41
42 // ------------------------------------------------------------------------
43 // Constructor
44 // ------------------------------------------------------------------------
45 /**
46 * Constructor.
47 *
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
52 */
53 public TmfProjectElement(String name, IProject project, ITmfProjectModelElement parent) {
54 super(name, project, parent);
55 }
56
57 // ------------------------------------------------------------------------
58 // TmfProjectModelElement
59 // ------------------------------------------------------------------------
60
61 /*
62 * (non-Javadoc)
63 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#getResource()
64 */
65 @Override
66 public IProject getResource() {
67 return (IProject) fResource;
68 }
69
70 /*
71 * (non-Javadoc)
72 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#addChild(org.eclipse.linuxtools.tmf.ui.project.model.ITmfProjectModelElement)
73 */
74 @Override
75 public void addChild(ITmfProjectModelElement child) {
76 super.addChild(child);
77 if (child instanceof TmfTraceFolder) {
78 fTraceFolder = (TmfTraceFolder) child;
79 return;
80 }
81 if (child instanceof TmfExperimentFolder) {
82 fExperimentFolder = (TmfExperimentFolder) child;
83 return;
84 }
85 }
86
87 // ------------------------------------------------------------------------
88 // Accessors
89 // ------------------------------------------------------------------------
90 /**
91 * Returns the containing trace folder element.
92 * @return the TMF trace folder element.
93 */
94 public TmfTraceFolder getTracesFolder() {
95 return fTraceFolder;
96 }
97
98 /**
99 * Returns the containing experiment folder element.
100 * @return the TMF experiment folder element.
101 */
102 public TmfExperimentFolder getExperimentsFolder() {
103 return fExperimentFolder;
104 }
105
106 // ------------------------------------------------------------------------
107 // TmfProjectElement
108 // ------------------------------------------------------------------------
109
110 /*
111 * (non-Javadoc)
112 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#refresh()
113 */
114 @Override
115 public void refresh() {
116 Display.getDefault().asyncExec(new Runnable(){
117 @Override
118 public void run() {
119 IWorkbench wb = PlatformUI.getWorkbench();
120 IWorkbenchWindow wbWindow = wb.getActiveWorkbenchWindow();
121 if (wbWindow == null) {
122 return;
123 }
124 IWorkbenchPage activePage = wbWindow.getActivePage();
125 if (activePage == null) {
126 return;
127 }
128
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();
134 }
135 }
136 }});
137 }
138
139 /*
140 * (non-Javadoc)
141 * @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
142 */
143 @Override
144 public void resourceChanged(IResourceChangeEvent event) {
145 if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
146 refresh();
147 }
148 }
149
150 /*
151 * (non-Javadoc)
152 * @see org.eclipse.linuxtools.tmf.ui.project.model.ITmfProjectModelElement#getProject()
153 */
154 @Override
155 public TmfProjectElement getProject() {
156 return this;
157 }
158 }
This page took 0.041146 seconds and 5 git commands to generate.