Re-structure LTTng sub-project as per the Linux Tools guidelines
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / tracecontrol / model / ProviderResourceAdapter.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 * Polytechnique Montréal - Initial API and implementation
11 * Bernd Hufmann - Productification, enhancements and fixes
12 *
13 *******************************************************************************/
14 package org.eclipse.linuxtools.lttng.ui.tracecontrol.model;
15
16 import org.eclipse.core.runtime.IAdaptable;
17 import org.eclipse.core.runtime.IProgressMonitor;
18 import org.eclipse.jface.resource.ImageDescriptor;
19 import org.eclipse.jface.viewers.IStructuredSelection;
20 import org.eclipse.linuxtools.lttng.core.tracecontrol.model.ProviderResource;
21 import org.eclipse.linuxtools.lttng.ui.LTTngUiPlugin;
22 import org.eclipse.linuxtools.lttng.ui.tracecontrol.TraceControlConstants;
23 import org.eclipse.linuxtools.lttng.ui.tracecontrol.Messages;
24 import org.eclipse.linuxtools.lttng.ui.tracecontrol.subsystems.TraceSubSystem;
25 import org.eclipse.rse.ui.SystemMenuManager;
26 import org.eclipse.rse.ui.view.AbstractSystemViewAdapter;
27 import org.eclipse.rse.ui.view.ISystemRemoteElementAdapter;
28 import org.eclipse.swt.widgets.Shell;
29 import org.eclipse.ui.views.properties.IPropertyDescriptor;
30
31 /**
32 * <b><u>ProviderResourceAdapter</u></b>
33 * <p>
34 * This is the adapter which enables us to work with our remote provider resources.
35 * </p>
36 */
37 public class ProviderResourceAdapter extends AbstractSystemViewAdapter implements ISystemRemoteElementAdapter {
38
39 // ------------------------------------------------------------------------
40 // Attributes
41 // ------------------------------------------------------------------------
42
43 // ------------------------------------------------------------------------
44 // Constructors
45 // ------------------------------------------------------------------------
46 /**
47 * Default Constructor.
48 */
49 public ProviderResourceAdapter() {
50 super();
51 }
52
53 // ------------------------------------------------------------------------
54 // Operations
55 // ------------------------------------------------------------------------
56 /*
57 * (non-Javadoc)
58 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#addActions(org.eclipse.rse.ui.SystemMenuManager, org.eclipse.jface.viewers.IStructuredSelection, org.eclipse.swt.widgets.Shell, java.lang.String)
59 */
60 @Override
61 public void addActions(SystemMenuManager menu, IStructuredSelection selection, Shell parent, String menuGroup) {
62 }
63
64 /*
65 * (non-Javadoc)
66 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getImageDescriptor(java.lang.Object)
67 */
68 @Override
69 public ImageDescriptor getImageDescriptor(Object element) {
70 return LTTngUiPlugin.getDefault().getImageDescriptor(LTTngUiPlugin.ICON_ID_PROVIDER);
71 }
72
73 /*
74 * (non-Javadoc)
75 * @see org.eclipse.rse.ui.view.ISystemViewElementAdapter#getText(java.lang.Object)
76 */
77 @Override
78 public String getText(Object element) {
79 return ((ProviderResource) element).getName();
80 }
81
82 /*
83 * (non-Javadoc)
84 * @see org.eclipse.rse.core.subsystems.IRemoteObjectIdentifier#getAbsoluteName(java.lang.Object)
85 */
86 @Override
87 public String getAbsoluteName(Object object) {
88 ProviderResource provider = (ProviderResource) object;
89 return Messages.Lttng_Resource_Provider + "_" + provider.getName(); //$NON-NLS-1$
90 }
91
92 /*
93 * (non-Javadoc)
94 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getType(java.lang.Object)
95 */
96 @Override
97 public String getType(Object element) {
98 return Messages.Lttng_Resource_Provider;
99 }
100
101 /*
102 * (non-Javadoc)
103 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getParent(java.lang.Object)
104 */
105 @Override
106 public Object getParent(Object element) {
107 return null; // not really used, which is good because it is ambiguous
108 }
109
110 /*
111 * (non-Javadoc)
112 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getChildren(org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IProgressMonitor)
113 */
114 @Override
115 public Object[] getChildren(IAdaptable element, IProgressMonitor monitor) {
116 return ((ProviderResource) element).getTargets();
117 }
118
119 /*
120 * (non-Javadoc)
121 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#internalGetPropertyDescriptors()
122 */
123 @Override
124 protected IPropertyDescriptor[] internalGetPropertyDescriptors() {
125 return null;
126 }
127
128 /*
129 * (non-Javadoc)
130 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#internalGetPropertyValue(java.lang.Object)
131 */
132 @Override
133 protected Object internalGetPropertyValue(Object key) {
134 return null;
135 }
136
137 /*
138 * (non-Javadoc)
139 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#canRename(java.lang.Object)
140 *
141 * Intercept of parent method to indicate these objects can be renamed using the RSE-supplied rename action.
142 */
143 @Override
144 public boolean canRename(Object element) {
145 return false;
146 }
147
148 /*
149 * (non-Javadoc)
150 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#showDelete(java.lang.Object)
151 */
152 @Override
153 public boolean showDelete(Object element) {
154 return false;
155 }
156
157 /*
158 * (non-Javadoc)
159 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#showRefresh(java.lang.Object)
160 */
161 @Override
162 public boolean showRefresh(Object element) {
163 return false;
164 }
165
166 /*
167 * (non-Javadoc)
168 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#showRename(java.lang.Object)
169 */
170 @Override
171 public boolean showRename(Object element) {
172 return false;
173 }
174
175 // --------------------------------------
176 // ISystemRemoteElementAdapter methods...
177 // --------------------------------------
178
179 /*
180 * (non-Javadoc)
181 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getAbsoluteParentName(java.lang.Object)
182 */
183 @Override
184 public String getAbsoluteParentName(Object element) {
185 return Messages.Lttng_Resource_Root; // not really applicable as we have no unique hierarchy
186 }
187
188 /*
189 * (non-Javadoc)
190 * @see org.eclipse.rse.core.subsystems.ISystemRemoteObjectMatchProvider#getSubSystemConfigurationId(java.lang.Object)
191 */
192 @Override
193 public String getSubSystemConfigurationId(Object element) {
194 return "org.eclipse.linuxtools.lttng.ui.tracecontrol.subsystems.TraceSubSystemConfiguration"; // as declared in extension in plugin.xml //$NON-NLS-1$
195 }
196
197 /*
198 * (non-Javadoc)
199 *
200 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteTypeCategory(java.lang.Object)
201 */
202 @Override
203 public String getRemoteTypeCategory(Object element) {
204 return TraceControlConstants.Rse_Provider_Resource_Remote_Type_Category; // Course grained. Same for all our remote resources.
205 }
206
207 /*
208 * (non-Javadoc)
209 *
210 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteType(java.lang.Object)
211 */
212 @Override
213 public String getRemoteType(Object element) {
214 return TraceControlConstants.Rse_Provider_Resource_Remote_Type; // Fine grained. Unique to this resource type.
215 }
216
217 /*
218 * (non-Javadoc)
219 *
220 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteSubType(java.lang.Object)
221 */
222 @Override
223 public String getRemoteSubType(Object element) {
224 return null; // Very fine grained. We don't use it.
225 }
226
227 /*
228 * (non-Javadoc)
229 *
230 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#refreshRemoteObject(java.lang.Object, java.lang.Object)
231 */
232 @Override
233 public boolean refreshRemoteObject(Object oldElement, Object newElement) {
234 ProviderResource oldProvider = (ProviderResource) oldElement;
235 ProviderResource newProvider = (ProviderResource) newElement;
236 newProvider.setName(oldProvider.getName());
237 return false;
238 }
239
240 /*
241 * (non-Javadoc)
242 *
243 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteParentNamesInUse(org.eclipse.swt.widgets.Shell, java.lang.Object)
244 */
245 @Override
246 public String[] getRemoteParentNamesInUse(Object element, IProgressMonitor monitor) throws Exception {
247 TraceSubSystem ourSS = (TraceSubSystem) getSubSystem(element);
248 ProviderResource[] allProviders = ourSS.getAllProviders();
249 String[] allNames = new String[allProviders.length];
250 for (int idx = 0; idx < allProviders.length; idx++) {
251 allNames[idx] = allProviders[idx].getName();
252 }
253 return allNames; // Return list of all team names
254 }
255
256 /*
257 * (non-Javadoc)
258 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteParent(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
259 */
260 @Override
261 public Object getRemoteParent(Object element, IProgressMonitor monitor) throws Exception {
262 return null;
263 }
264
265 /*
266 * (non-Javadoc)
267 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#hasChildren(org.eclipse.core.runtime.IAdaptable)
268 */
269 @Override
270 public boolean hasChildren(IAdaptable element) {
271 return ((((ProviderResource) element).getTargets() != null) && (((ProviderResource) element).getTargets().length > 0));
272 }
273
274 }
This page took 0.041665 seconds and 5 git commands to generate.