org.symbian.tools.mtw.ui/src/org/symbian/tools/mtw/internal/deployment/DeploymentTargetWrapper.java
changeset 456 12b549765c34
parent 455 5da55957c779
child 457 f1087591ff71
equal deleted inserted replaced
455:5da55957c779 456:12b549765c34
    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     }
    97     public String getName() {
   133     public String getName() {
    98         return target.getName();
   134         return target.getName();
    99     }
   135     }
   100 
   136 
   101     public String getProviderId() {
   137     public String getProviderId() {
   102         return provider.getId();
   138         return type.getId();
   103     }
   139     }
   104 
   140 
   105     @Override
   141     @Override
   106     public int hashCode() {
   142     public int hashCode() {
   107         final int prime = 31;
   143         final int prime = 31;
   116 
   152 
   117     public void load(IMemento child) {
   153     public void load(IMemento child) {
   118         target.load(child);
   154         target.load(child);
   119     }
   155     }
   120 
   156 
   121     public IDeploymentTargetProvider getProvider() {
   157     public IDeploymentTargetType getType() {
   122         return provider;
   158         return type;
   123     }
   159     }
   124 
   160 
   125     public IDeploymentTarget getActualTarget() {
   161     public IDeploymentTarget getActualTarget() {
   126         return target;
   162         return target;
   127     }
   163     }