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 java.util.ArrayList;
16
import java.util.Arrays;
17
import java.util.List;
19
import org.eclipse.core.resources.IFolder;
20
import org.eclipse.ui.views.properties.IPropertyDescriptor;
21
import org.eclipse.ui.views.properties.IPropertySource2;
22
import org.eclipse.ui.views.properties.TextPropertyDescriptor;
25
* Implementation of trace folder model element representing the trace folder in the project.
28
* @author Francois Chouinard
30
public class TmfTraceFolder extends TmfProjectModelElement implements IPropertySource2 {
32
// ------------------------------------------------------------------------
34
// ------------------------------------------------------------------------
36
* The name of the trace folder
38
public static final String TRACE_FOLDER_NAME = "Traces"; //$NON-NLS-1$
40
// Property View stuff
41
private static final String sfInfoCategory = "Info"; //$NON-NLS-1$
42
private static final String sfName = "name"; //$NON-NLS-1$
43
private static final String sfPath = "path"; //$NON-NLS-1$
44
private static final String sfLocation = "location"; //$NON-NLS-1$
46
private static final TextPropertyDescriptor sfNameDescriptor = new TextPropertyDescriptor(sfName, sfName);
47
private static final TextPropertyDescriptor sfPathDescriptor = new TextPropertyDescriptor(sfPath, sfPath);
48
private static final TextPropertyDescriptor sfLocationDescriptor = new TextPropertyDescriptor(sfLocation,
51
private static final IPropertyDescriptor[] sfDescriptors = { sfNameDescriptor, sfPathDescriptor,
52
sfLocationDescriptor };
55
sfNameDescriptor.setCategory(sfInfoCategory);
56
sfPathDescriptor.setCategory(sfInfoCategory);
57
sfLocationDescriptor.setCategory(sfInfoCategory);
60
// ------------------------------------------------------------------------
62
// ------------------------------------------------------------------------
65
* Creates trace folder model element under the project.
66
* @param name The name of trace folder.
67
* @param resource The folder resource.
68
* @param parent The parent element (project).
70
public TmfTraceFolder(String name, IFolder resource, TmfProjectElement parent) {
71
super(name, resource, parent);
72
parent.addChild(this);
75
// ------------------------------------------------------------------------
76
// TmfProjectModelElement
77
// ------------------------------------------------------------------------
81
* @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#getResource()
84
public IFolder getResource() {
85
return (IFolder) fResource;
90
* @see org.eclipse.linuxtools.tmf.ui.project.model.ITmfProjectModelElement#getProject()
93
public TmfProjectElement getProject() {
94
return (TmfProjectElement) getParent();
99
* @see org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectModelElement#refresh()
102
public void refresh() {
103
TmfProjectElement project = (TmfProjectElement) getParent();
107
// ------------------------------------------------------------------------
109
// ------------------------------------------------------------------------
111
* Returns a list of trace model elements under the traces folder.
112
* @return list of trace model elements
114
public List<TmfTraceElement> getTraces() {
115
List<ITmfProjectModelElement> children = getChildren();
116
List<TmfTraceElement> traces = new ArrayList<TmfTraceElement>();
117
for (ITmfProjectModelElement child : children) {
118
if (child instanceof TmfTraceElement) {
119
traces.add((TmfTraceElement) child);
125
// ------------------------------------------------------------------------
127
// ------------------------------------------------------------------------
131
* @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
134
public Object getEditableValue() {
140
* @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
143
public IPropertyDescriptor[] getPropertyDescriptors() {
144
return (sfDescriptors != null) ? Arrays.copyOf(sfDescriptors, sfDescriptors.length) : null;
149
* @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
152
public Object getPropertyValue(Object id) {
154
if (sfName.equals(id)) {
158
if (sfPath.equals(id)) {
159
return getPath().toString();
162
if (sfLocation.equals(id)) {
163
return getLocation().toString();
171
* @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
174
public void resetPropertyValue(Object id) {
179
* @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
182
public void setPropertyValue(Object id, Object value) {
187
* @see org.eclipse.ui.views.properties.IPropertySource2#isPropertyResettable(java.lang.Object)
190
public boolean isPropertyResettable(Object id) {
196
* @see org.eclipse.ui.views.properties.IPropertySource2#isPropertySet(java.lang.Object)
199
public boolean isPropertySet(Object id) {