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