tmf: Specify extended trace properties with an interface
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui / src / org / eclipse / linuxtools / internal / lttng2 / ui / views / control / model / ITraceControlComponent.java
CommitLineData
eb1bab5b
BH
1/**********************************************************************
2 * Copyright (c) 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 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
115b4a01 12package org.eclipse.linuxtools.internal.lttng2.ui.views.control.model;
eb1bab5b
BH
13
14import java.util.List;
15
16import org.eclipse.core.runtime.IAdaptable;
9315aeee 17import org.eclipse.linuxtools.internal.lttng2.core.control.model.TargetNodeState;
115b4a01 18import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.ILttngControlService;
eb1bab5b
BH
19import org.eclipse.swt.graphics.Image;
20
21/**
eb1bab5b
BH
22 * <p>
23 * Interface for trace control components that can be displayed in the
24 * trace control tree viewer.
25 * </p>
dbd4432d
BH
26 *
27 * @author Bernd Hufmann
eb1bab5b
BH
28 */
29public interface ITraceControlComponent extends IAdaptable {
6503ae0f 30
eb1bab5b
BH
31 // ------------------------------------------------------------------------
32 // Accessors
33 // ------------------------------------------------------------------------
34
35 /**
36 * @return the name of the component
37 */
38 public String getName();
eb1bab5b
BH
39 /**
40 * Sets the name of the component to the given value.
41 * @param name - name to set
42 */
43 public void setName(String name);
44
45 /**
46 * @return the image representing the component.
47 */
48 public Image getImage();
49 /**
50 * Sets the image path of the component.
51 * @param path - path to the image location
52 */
53 public void setImage(String path);
54 /**
55 * Sets the image the component.
56 * @param image - image to the image location
57 */
58 public void setImage(Image image);
6503ae0f 59
eb1bab5b
BH
60 /**
61 * @return tool tip with information about the component.
62 */
63 public String getToolTip();
eb1bab5b
BH
64 /**
65 * Sets the tool tip with information about the component.
66 * @param toolTip - the tool tip to set.
67 */
68 public void setToolTip(String toolTip);
69
70 /**
71 * @return the node's connection state
72 */
73 public TargetNodeState getTargetNodeState();
74 /**
75 * Sets the node's connection state.
76 * @param state - the state to set
77 */
78 public void setTargetNodeState(TargetNodeState state);
79
80 /**
81 * @return returns the parent component.
82 */
83 public ITraceControlComponent getParent();
eb1bab5b
BH
84 /**
85 * Sets the parent component.
86 * @param parent - the parent to set.
87 */
88 public void setParent(ITraceControlComponent parent);
89
90 /**
91 * @return the children components
92 */
93 public ITraceControlComponent[] getChildren();
eb1bab5b
BH
94 /**
95 * Sets the children components.
96 * @param children - the children to set.
97 */
98 public void setChildren(List<ITraceControlComponent> children);
eb1bab5b
BH
99 /**
100 * Returns the child component with given name.
101 * @param name - name of child to find.
102 * @return child component or null.
103 */
104 public ITraceControlComponent getChild(String name);
6503ae0f
BH
105 /**
106 * Gets children for given class type.
107 * @param clazz - a class type to get
108 * @return list of trace control components matching given class type.
109 */
110 public List<ITraceControlComponent> getChildren(Class<? extends ITraceControlComponent> clazz);
eb1bab5b
BH
111
112 /**
113 * @return the LTTng control service implementation.
114 */
115 public ILttngControlService getControlService();
6503ae0f 116
eb1bab5b
BH
117 /**
118 * Sets the LTTng control service implementation.
119 * @param service - the service to set.
120 */
121 public void setControlService(ILttngControlService service);
6503ae0f 122
eb1bab5b
BH
123 // ------------------------------------------------------------------------
124 // Operations
125 // ------------------------------------------------------------------------
126 /**
127 * Dispose any resource.
128 */
129 public void dispose();
130
131 /**
132 * Adds a child component.
133 * @param component - child to add.
134 */
135 public void addChild(ITraceControlComponent component);
136
b957fb8c
BH
137 /**
138 * Adds several components.
139 * @param components - array of components to add.
140 */
141// public void addChildren(ITraceControlComponent[] components);
142
eb1bab5b
BH
143 /**
144 * Removes the given child component.
145 * @param component - the child to remove.
146 */
147 public void removeChild(ITraceControlComponent component);
148
149 /**
150 * Removes all children.
151 */
152 public void removeAllChildren();
153
154 /**
155 * Checks if child with given name exists.
156 * @param name - child name to search for.
157 * @return - true if exists else false.
158 */
159 public boolean containsChild(String name);
160
161 /**
162 * Checks for children.
163 * @return true if one or more children exist else false
164 */
165 public boolean hasChildren();
166
167 /**
168 * Adds a component listener for notification of component changes.
169 * @param listener - listener interface implementation to add.
170 */
171 public void addComponentListener(ITraceControlComponentChangedListener listener);
172
173 /**
174 * Removes a component listener for notification of component changes.
175 * @param listener - listener interface implementation to remove.
176 */
177 public void removeComponentListener(ITraceControlComponentChangedListener listener);
178
179 /**
180 * Notifies listeners about the addition of a child.
181 * @param parent - the parent where the child was added.
182 * @param component - the child that was added.
183 */
4775bcbf 184 public void fireComponentAdded(ITraceControlComponent parent, ITraceControlComponent component);
eb1bab5b
BH
185
186 /**
187 * Notifies listeners about the removal of a child.
188 * @param parent - the parent where the child was removed.
189 * @param component - the child that was removed.
190 */
4775bcbf 191 public void fireComponentRemoved(ITraceControlComponent parent, ITraceControlComponent component);
eb1bab5b
BH
192
193 /**
194 * Notifies listeners about the change of a component.
195 * @param component - the component that was changed.
196 */
4775bcbf 197 public void fireComponentChanged(ITraceControlComponent component);
eb1bab5b 198}
This page took 0.040634 seconds and 5 git commands to generate.