org.symbian.tools.mtw.ui/src/org/symbian/tools/mtw/internal/deployment/DeploymentTargetTypeDescriptor.java
changeset 458 5ff93668b08c
parent 457 f1087591ff71
child 460 c0bff5ed874c
equal deleted inserted replaced
457:f1087591ff71 458:5ff93668b08c
    73         final DeploymentTargetWrapper[] targets = wrap(getProvider().getTargets(project));
    73         final DeploymentTargetWrapper[] targets = wrap(getProvider().getTargets(project));
    74         return targets != null ? targets : NO_TARGETS;
    74         return targets != null ? targets : NO_TARGETS;
    75     }
    75     }
    76 
    76 
    77     private DeploymentTargetWrapper[] wrap(IDeploymentTarget[] targets) {
    77     private DeploymentTargetWrapper[] wrap(IDeploymentTarget[] targets) {
    78         final DeploymentTargetWrapper[] w = new DeploymentTargetWrapper[targets.length];
    78         if (targets == null) {
    79         for (int i = 0; i < targets.length; i++) {
    79             return new DeploymentTargetWrapper[0];
    80             final IDeploymentTarget target = targets[i];
    80         } else {
    81             DeploymentTargetWrapper wrapper = wrappers.get(target);
    81             final DeploymentTargetWrapper[] w = new DeploymentTargetWrapper[targets.length];
    82             if (wrapper == null) {
    82             for (int i = 0; i < targets.length; i++) {
    83                 wrapper = new DeploymentTargetWrapper(target, this);
    83                 w[i] = wrap(targets[i]);
    84                 wrappers.put(target, wrapper);
       
    85             }
    84             }
    86             w[i] = wrapper;
    85             return w;
    87         }
    86         }
    88         return w;
    87     }
       
    88 
       
    89     private DeploymentTargetWrapper wrap(final IDeploymentTarget target) {
       
    90         DeploymentTargetWrapper wrapper = wrappers.get(target);
       
    91         if (wrapper == null) {
       
    92             wrapper = new DeploymentTargetWrapper(target, this);
       
    93             wrappers.put(target, wrapper);
       
    94         }
       
    95         return wrapper;
    89     }
    96     }
    90 
    97 
    91     public void discoverTargets(IProgressMonitor monitor) throws CoreException {
    98     public void discoverTargets(IProgressMonitor monitor) throws CoreException {
    92         getProvider().discoverTargets(monitor);
    99         getProvider().discoverTargets(monitor);
    93     }
   100     }
    94 
   101 
    95     public IDeploymentTarget findTarget(IMTWProject project, String id) {
   102     public IDeploymentTarget findTarget(IMTWProject project, String id) {
    96         return getProvider().findTarget(project, id);
   103         return wrap(getProvider().findTarget(project, id));
    97     }
   104     }
    98 
   105 
    99     private synchronized IDeploymentTargetType getProvider() {
   106     private synchronized IDeploymentTargetType getProvider() {
   100         if (type == null) {
   107         if (type == null) {
   101             try {
   108             try {