private void pushButton(final int buttonId) {
   try {
     findButton(getShell().getChildren(), buttonId).notifyListeners(SWT.Selection, new Event());
   } catch (Exception e) {
     CatalogUIPlugin.log("", e); // $NON-NLS-1$
   }
 }
 List<IService> process(List<URL> urls, IProgressMonitor monitor) {
   List<IService> resources = new ArrayList<IService>();
   monitor.beginTask(Messages.get("OpenFilePage_1"), list.size());
   int worked = 0;
   for (URL url : urls) {
     if (monitor.isCanceled()) {
       return null;
     }
     try {
       monitor.subTask(url.toExternalForm());
       List<IService> acquire = CatalogPlugin.getDefault().getServiceFactory().createService(url);
       resources.addAll(acquire);
     } catch (Throwable e) {
       CatalogUIPlugin.log("error obtaining services from service factory", e); // $NON-NLS-1$
     }
     monitor.worked(worked++);
   }
   return resources;
 }
  /**
   * Generate text from the resolve.getURI()
   *
   * <p>Note this name is only used as a first try, the ResolveLabelDecorator is expected to provide
   * a label based on Name or Title information.
   *
   * @param element
   * @return label based on IResolve.getIdentifier
   */
  public String getText(Object element) {
    if (element instanceof IResolve) {
      IResolve resolve = (IResolve) element;
      try {
        if (resolve instanceof IGeoResource) {
          IGeoResource resource = (IGeoResource) resolve;
          String title = resource.getTitle();
          // This provider should be non-blocking
          //                    if (title == null) {
          //                        IGeoResourceInfo info = resource.getInfo(new
          // NullProgressMonitor());
          //                        if(info != null) {
          //                        	title = info.getTitle();
          //                        }
          //                    }
          ID id = resource.getID();
          if (title == null) {
            title = id.labelResource();
          }
          return title;

        } else if (resolve instanceof IService) {
          IService service = (IService) resolve;
          ID id = service.getID();

          String title = service.getTitle();
          //                    if (title == null) {
          //                        IServiceInfo info = service.getInfo(new NullProgressMonitor());
          //                        if (info != null) {
          //                            title = info.getTitle();
          //                        }
          //                    }
          if (title == null) {
            // we are going to fake something here
            String name = id.toString();
            name = name.replace('_', ' ');
            name = name.replace("%20", " "); // $NON-NLS-1$ //$NON-NLS-2$
            return name;
          }
          if (id.getTypeQualifier() != null) {
            return title + "(" + id.getTypeQualifier() + ")";
          } else {
            return title;
          }
        } else if (resolve instanceof IProcess) {
          IProcess proc = (IProcess) element;
          return proc.getInfo(new NullProgressMonitor()).getTitle();
        } else if (resolve instanceof ISearch) {
          ISearch search = (ISearch) element;
          return search.getInfo(new NullProgressMonitor()).getTitle();
        } else if (resolve instanceof IResolveFolder) {
          IResolveFolder folder = (IResolveFolder) element;
          return folder.getID().toString();
        } else {
          return resolve.getID().toString();
        }
      } catch (IOException e) {
        CatalogUIPlugin.trace("Error fetching the Title for the resource", e); // $NON-NLS-1$
      }
    }
    return super.getText(element);
  }
 /**
  * Obtain image for the provided element.
  *
  * <p>To accomplish this quickly we simply make use of constants from CatalogUIPlugin. We need a
  * second pass that makes use of the real icon from the real resource.
  *
  * @param element is expected to be IResolve
  * @return the image used to label the element, or <code>null</code> if there is no image for the
  *     given object
  * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
  */
 public Image getImage(Object element) {
   if (element instanceof IResolve) {
     return CatalogUIPlugin.image((IResolve) element);
   }
   return super.getImage(element);
 }