private void initializeListeners() {
   ITargetChangedListener listener =
       new ITargetChangedListener() {
         public void contentsChanged(
             ITargetDefinition definition, Object source, boolean resolve, boolean forceResolve) {
           boolean setCancelled = false;
           if (forceResolve || (resolve && !definition.isResolved())) {
             try {
               getContainer()
                   .run(
                       true,
                       true,
                       new IRunnableWithProgress() {
                         public void run(IProgressMonitor monitor)
                             throws InvocationTargetException, InterruptedException {
                           getTargetDefinition().resolve(new ResolutionProgressMonitor(monitor));
                           if (monitor.isCanceled()) {
                             throw new InterruptedException();
                           }
                         }
                       });
             } catch (InvocationTargetException e) {
               PDECore.log(e);
             } catch (InterruptedException e) {
               setCancelled = true;
             }
           }
           if (fContentTree != source) {
             if (setCancelled) {
               fContentTree
                   .setCancelled(); // If the user cancelled the resolve, change the text to say it
                                    // was cancelled
             } else {
               fContentTree.setInput(definition);
             }
           }
           if (fLocationTree != source) {
             fLocationTree.setInput(definition);
           }
           if (definition.isResolved() && definition.getStatus().getSeverity() == IStatus.ERROR) {
             fLocationTab.setImage(
                 PlatformUI.getWorkbench()
                     .getSharedImages()
                     .getImage(ISharedImages.IMG_OBJS_ERROR_TSK));
           } else {
             fLocationTab.setImage(null);
           }
         }
       };
   fContentTree.addTargetChangedListener(listener);
   fLocationTree.addTargetChangedListener(listener);
 }