1 /*******************************************************************************
2 * Copyright (c) 2011 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 * Polytechnique Montréal - Initial API and implementation
11 * Bernd Hufmann - Productification, enhancements and fixes
13 *******************************************************************************/
14 package org
.eclipse
.linuxtools
.lttng
.ui
.tracecontrol
.model
;
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
.TargetResource
;
21 import org
.eclipse
.linuxtools
.lttng
.ui
.LTTngUiPlugin
;
22 import org
.eclipse
.linuxtools
.lttng
.ui
.tracecontrol
.Messages
;
23 import org
.eclipse
.linuxtools
.lttng
.ui
.tracecontrol
.TraceControlConstants
;
24 import org
.eclipse
.rse
.ui
.SystemMenuManager
;
25 import org
.eclipse
.rse
.ui
.view
.AbstractSystemViewAdapter
;
26 import org
.eclipse
.rse
.ui
.view
.ISystemRemoteElementAdapter
;
27 import org
.eclipse
.swt
.widgets
.Shell
;
28 import org
.eclipse
.ui
.views
.properties
.IPropertyDescriptor
;
31 * <b><u>TargetResourceAdapter</u></b>
33 * This is the adapter which enables us to work with our remote target resources.
36 public class TargetResourceAdapter
extends AbstractSystemViewAdapter
implements ISystemRemoteElementAdapter
{
38 // ------------------------------------------------------------------------
40 // ------------------------------------------------------------------------
42 // ------------------------------------------------------------------------
44 // ------------------------------------------------------------------------
49 public TargetResourceAdapter() {
53 // ------------------------------------------------------------------------
55 // ------------------------------------------------------------------------
59 * @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)
62 public void addActions(SystemMenuManager menu
, IStructuredSelection selection
, Shell parent
, String menuGroup
) {
67 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getImageDescriptor(java.lang.Object)
70 public ImageDescriptor
getImageDescriptor(Object object
) {
71 return LTTngUiPlugin
.getDefault().getImageDescriptor(LTTngUiPlugin
.ICON_ID_TARGET
);
76 * @see org.eclipse.rse.ui.view.ISystemViewElementAdapter#getText(java.lang.Object)
79 public String
getText(Object element
) {
80 return ((TargetResource
) element
).getName();
85 * @see org.eclipse.rse.core.subsystems.IRemoteObjectIdentifier#getAbsoluteName(java.lang.Object)
88 public String
getAbsoluteName(Object object
) {
89 TargetResource tar
= (TargetResource
) object
;
95 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getType(java.lang.Object)
98 public String
getType(Object element
) {
99 return Messages
.Lttng_Resource_Target
;
104 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getParent(java.lang.Object)
107 public Object
getParent(Object object
) {
108 return ((TargetResource
) object
).getParent(); // not really used, which is good because it is ambiguous
113 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#getChildren(org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IProgressMonitor)
116 public Object
[] getChildren(IAdaptable element
, IProgressMonitor monitor
) {
117 return ((TargetResource
) element
).getTraces();
122 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#internalGetPropertyDescriptors()
125 protected IPropertyDescriptor
[] internalGetPropertyDescriptors() {
131 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#internalGetPropertyValue(java.lang.Object)
134 protected Object
internalGetPropertyValue(Object key
) {
138 // --------------------------------------
139 // ISystemRemoteElementAdapter methods...
140 // --------------------------------------
144 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getAbsoluteParentName(java.lang.Object)
147 public String
getAbsoluteParentName(Object element
) {
148 return Messages
.Lttng_Resource_Root
; // not really applicable as we have no unique hierarchy
153 * @see org.eclipse.rse.core.subsystems.ISystemRemoteObjectMatchProvider#getSubSystemConfigurationId(java.lang.Object)
156 public String
getSubSystemConfigurationId(Object element
) {
157 return "org.eclipse.linuxtools.lttng.ui.tracecontrol.subsystems.factory"; // as declared in extension in plugin.xml //$NON-NLS-1$
162 * @see org.eclipse.rse.core.subsystems.ISystemRemoteObjectMatchProvider#getRemoteTypeCategory(java.lang.Object)
165 public String
getRemoteTypeCategory(Object element
) {
166 return TraceControlConstants
.Rse_Target_Resource_Remote_Type_Category
; // Course grained. Same for all our remote resources.
171 * @see org.eclipse.rse.core.subsystems.ISystemRemoteObjectMatchProvider#getRemoteType(java.lang.Object)
174 public String
getRemoteType(Object element
) {
175 return TraceControlConstants
.Rse_Target_Resource_Remote_Type
; // Fine grained. Unique to this resource type.
180 * @see org.eclipse.rse.core.subsystems.ISystemRemoteObjectMatchProvider#getRemoteSubType(java.lang.Object)
183 public String
getRemoteSubType(Object element
) {
184 return null; // Very fine grained. We don't use it.
189 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#refreshRemoteObject(java.lang.Object, java.lang.Object)
192 public boolean refreshRemoteObject(Object oldElement
, Object newElement
) {
193 TargetResource oldDevr
= (TargetResource
) oldElement
;
194 TargetResource newDevr
= (TargetResource
) newElement
;
195 newDevr
.setName(oldDevr
.getName());
199 public boolean supportsUserDefinedActions(Object object
) {
205 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#hasChildren(org.eclipse.core.runtime.IAdaptable)
208 public boolean hasChildren(IAdaptable element
) {
209 return ((((TargetResource
) element
).getTraces() != null) && (((TargetResource
) element
).getTraces().length
> 0));
214 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteParent(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
217 public Object
getRemoteParent(Object element
, IProgressMonitor monitor
) throws Exception
{
223 * @see org.eclipse.rse.ui.view.ISystemRemoteElementAdapter#getRemoteParentNamesInUse(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
226 public String
[] getRemoteParentNamesInUse(Object element
, IProgressMonitor monitor
) throws Exception
{
232 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#showDelete(java.lang.Object)
235 public boolean showDelete(Object element
) {
241 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#showRefresh(java.lang.Object)
244 public boolean showRefresh(Object element
) {
250 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#showRename(java.lang.Object)
253 public boolean showRename(Object element
) {
259 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#saveExpansionState(java.lang.Object)
262 public boolean saveExpansionState(Object element
) {
268 * @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter#testAttribute(java.lang.Object, java.lang.String, java.lang.String)
271 public boolean testAttribute(Object target
, String name
, String value
) {
273 if (target
instanceof TargetResource
) {
274 if ((name
.compareTo("canCreateNewTrace") == 0) && (((TargetResource
)target
).getCanCreateNewTrace().compareTo(value
) == 0)) { //$NON-NLS-1$
279 return super.testAttribute(target
, name
, value
);