Refresh project display asynchronously
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / project / model / TmfProjectElement.java
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
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.core.runtime.CoreException;
18 import org.eclipse.swt.widgets.Display;
19
20 /**
21 * <b><u>TmfProjectElement</u></b>
22 * <p>
23 */
24 public class TmfProjectElement extends TmfProjectModelElement {
25
26 // ------------------------------------------------------------------------
27 // Attributes
28 // ------------------------------------------------------------------------
29
30 TmfTraceFolder fTraceFolder = null;
31 TmfExperimentFolder fExperimentFolder = null;
32
33 // ------------------------------------------------------------------------
34 // Constructor
35 // ------------------------------------------------------------------------
36
37 public TmfProjectElement(String name, IProject project, ITmfProjectModelElement parent) {
38 super(name, project, parent);
39 }
40
41 // ------------------------------------------------------------------------
42 // TmfProjectModelElement
43 // ------------------------------------------------------------------------
44
45 @Override
46 public IProject getResource() {
47 return (IProject) fResource;
48 }
49
50 @Override
51 public void addChild(ITmfProjectModelElement child) {
52 super.addChild(child);
53 if (child instanceof TmfTraceFolder) {
54 fTraceFolder = (TmfTraceFolder) child;
55 return;
56 }
57 if (child instanceof TmfExperimentFolder) {
58 fExperimentFolder = (TmfExperimentFolder) child;
59 return;
60 }
61 }
62
63 // ------------------------------------------------------------------------
64 // Accessors
65 // ------------------------------------------------------------------------
66
67 public TmfTraceFolder getTracesFolder() {
68 return fTraceFolder;
69 }
70
71 public TmfExperimentFolder getExperimentsFolder() {
72 return fExperimentFolder;
73 }
74
75 // ------------------------------------------------------------------------
76 // TmfProjectElement
77 // ------------------------------------------------------------------------
78
79 @Override
80 public void refresh() {
81 if (!Display.getDefault().isDisposed()) {
82 Display.getDefault().asyncExec(new Runnable() {
83 @Override
84 public void run() {
85 try {
86 IProject project = getResource();
87 project.touch(null);
88 } catch (CoreException e) {
89 }
90 }
91
92 });
93 }
94 }
95
96 @Override
97 public void resourceChanged(IResourceChangeEvent event) {
98 if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
99 refresh();
100 }
101 }
102
103 @Override
104 public TmfProjectElement getProject() {
105 return this;
106 }
107
108 }
This page took 0.032949 seconds and 6 git commands to generate.