20 |
20 |
21 import org.eclipse.core.runtime.CoreException; |
21 import org.eclipse.core.runtime.CoreException; |
22 import org.eclipse.core.runtime.IProgressMonitor; |
22 import org.eclipse.core.runtime.IProgressMonitor; |
23 import org.eclipse.core.runtime.IStatus; |
23 import org.eclipse.core.runtime.IStatus; |
24 import org.eclipse.jface.resource.ImageDescriptor; |
24 import org.eclipse.jface.resource.ImageDescriptor; |
|
25 import org.eclipse.swt.graphics.FontData; |
|
26 import org.eclipse.swt.graphics.RGB; |
25 import org.eclipse.ui.IMemento; |
27 import org.eclipse.ui.IMemento; |
26 import org.eclipse.ui.model.IWorkbenchAdapter; |
28 import org.eclipse.ui.model.IWorkbenchAdapter; |
27 import org.eclipse.ui.model.WorkbenchAdapter; |
29 import org.eclipse.ui.model.IWorkbenchAdapter2; |
28 import org.symbian.tools.mtw.core.projects.IMTWProject; |
30 import org.symbian.tools.mtw.core.projects.IMTWProject; |
29 import org.symbian.tools.mtw.core.runtimes.IMobileWebRuntime; |
31 import org.symbian.tools.mtw.core.runtimes.IMobileWebRuntime; |
30 import org.symbian.tools.mtw.ui.deployment.IDeploymentTarget; |
32 import org.symbian.tools.mtw.ui.deployment.IDeploymentTarget; |
31 import org.symbian.tools.mtw.ui.deployment.IDeploymentTargetProvider; |
33 import org.symbian.tools.mtw.ui.deployment.IDeploymentTargetType; |
32 |
34 |
33 public class DeploymentTargetWrapper implements IDeploymentTarget { |
35 public class DeploymentTargetWrapper implements IDeploymentTarget { |
34 public class TargetWorkbenchAdapter extends WorkbenchAdapter { |
36 public class WorkbenchAdapter2Wrapper implements IWorkbenchAdapter2 { |
35 @Override |
37 private final IWorkbenchAdapter2 adapter; |
36 public String getLabel(Object object) { |
38 |
37 return getName(); |
39 public WorkbenchAdapter2Wrapper(IWorkbenchAdapter2 adapter) { |
|
40 this.adapter = adapter; |
38 } |
41 } |
39 |
42 |
40 @Override |
43 public RGB getForeground(Object element) { |
41 public ImageDescriptor getImageDescriptor(Object object) { |
44 return adapter.getForeground(((DeploymentTargetWrapper) element).getActualTarget()); |
42 return provider.getImageDescriptor(); |
45 } |
|
46 |
|
47 public RGB getBackground(Object element) { |
|
48 return adapter.getBackground(((DeploymentTargetWrapper) element).getActualTarget()); |
|
49 } |
|
50 |
|
51 public FontData getFont(Object element) { |
|
52 return adapter.getFont(((DeploymentTargetWrapper) element).getActualTarget()); |
43 } |
53 } |
44 } |
54 } |
45 |
55 |
46 private final DeploymentTargetProviderDescriptor provider; |
56 public class WorkbenchAdapterWrapper implements IWorkbenchAdapter { |
|
57 private final IWorkbenchAdapter adapter; |
|
58 |
|
59 public WorkbenchAdapterWrapper(IWorkbenchAdapter adapter) { |
|
60 this.adapter = adapter; |
|
61 } |
|
62 |
|
63 public Object[] getChildren(Object o) { |
|
64 return adapter.getChildren(((DeploymentTargetWrapper) o).getActualTarget()); |
|
65 } |
|
66 |
|
67 public ImageDescriptor getImageDescriptor(Object object) { |
|
68 return adapter.getImageDescriptor(((DeploymentTargetWrapper) object).getActualTarget()); |
|
69 } |
|
70 |
|
71 public String getLabel(Object o) { |
|
72 return adapter.getLabel(((DeploymentTargetWrapper) o).getActualTarget()); |
|
73 } |
|
74 |
|
75 public Object getParent(Object o) { |
|
76 return adapter.getParent(((DeploymentTargetWrapper) o).getActualTarget()); |
|
77 } |
|
78 } |
|
79 final DeploymentTargetTypeDescriptor type; |
47 private final IDeploymentTarget target; |
80 private final IDeploymentTarget target; |
48 |
81 |
49 public DeploymentTargetWrapper(IDeploymentTarget target, DeploymentTargetProviderDescriptor provider) { |
82 public DeploymentTargetWrapper(IDeploymentTarget target, DeploymentTargetTypeDescriptor type) { |
50 this.target = target; |
83 this.target = target; |
51 this.provider = provider; |
84 this.type = type; |
52 } |
85 } |
53 |
86 |
54 public IStatus deploy(IMTWProject project, IMobileWebRuntime runtime, IProgressMonitor monitor) |
87 public IStatus deploy(IMTWProject project, IMobileWebRuntime runtime, IProgressMonitor monitor) |
55 throws CoreException { |
88 throws CoreException { |
56 return target.deploy(project, runtime, monitor); |
89 return target.deploy(project, runtime, monitor); |
77 } |
110 } |
78 return true; |
111 return true; |
79 } |
112 } |
80 |
113 |
81 public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) { |
114 public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) { |
82 Object ad = target.getAdapter(adapter); |
115 Object a = target.getAdapter(adapter); |
83 if (ad == null && adapter.equals(IWorkbenchAdapter.class)) { |
116 if (IWorkbenchAdapter.class.isAssignableFrom(adapter)) { |
84 return new TargetWorkbenchAdapter(); |
117 return a == null ? new TargetWorkbenchAdapter(this) : new WorkbenchAdapterWrapper((IWorkbenchAdapter) a); |
|
118 } else if (IWorkbenchAdapter2.class.isAssignableFrom(adapter)) { |
|
119 return a == null ? new TargetWorkbenchAdapter(this) : new WorkbenchAdapter2Wrapper((IWorkbenchAdapter2) a); |
|
120 } else { |
|
121 return a; |
85 } |
122 } |
86 return ad; |
|
87 } |
123 } |
88 |
124 |
89 public int getCategory() { |
125 public int getCategory() { |
90 return provider.getPriority() * 0xFFFF + (provider.getId().hashCode() & 0xFFFF); |
126 return type.getPriority() * 0xFFFF + (type.getId().hashCode() & 0xFFFF); |
91 } |
127 } |
92 |
128 |
93 public String getId() { |
129 public String getId() { |
94 return target.getId(); |
130 return target.getId(); |
95 } |
131 } |