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
) {