/** Disposes all resources allocated by this library manager. */
  public void dispose() {
    if (preferenceStoreChangeListener != null) {
      IPreferenceStoreWrapper prefStoreWrapper = LibraryPlugin.getDefault().getPreferenceStore();

      if (prefStoreWrapper != null) {
        prefStoreWrapper.removePropertyChangeListener(preferenceStoreChangeListener);
      }
    }

    if (libraryChangedListeners.size() > 0) {
      libraryChangedListeners.clear();
    }

    //		if (detachedLibraryChangedListeners.size() > 0) {
    //			detachedLibraryChangedListeners.clear();
    //		}

    if (resourceChangeListeners.size() > 0) {
      resourceChangeListeners.clear();
    }
    if (editingDomain != null) {
      unregisterEditingDomain(editingDomain);
      editingDomain = null;
    }
    library = null;
  }
Пример #2
0
  public int describe(Reader contents, IContentDescription description) throws IOException {
    try {
      final Field documentReaderField = contents.getClass().getDeclaredField("in");

      documentReaderField.setAccessible(true);

      final Object documentReader = documentReaderField.get(contents);

      final Field fDocumentField = documentReader.getClass().getDeclaredField("fDocument");

      fDocumentField.setAccessible(true);

      final Object fDocument = fDocumentField.get(documentReader);

      final Field fDocumentListenersField =
          fDocument
              .getClass()
              .getSuperclass()
              .getSuperclass()
              .getDeclaredField("fDocumentListeners");

      fDocumentListenersField.setAccessible(true);

      final ListenerList fDocumentListeners = (ListenerList) fDocumentListenersField.get(fDocument);

      final Object[] listeners = fDocumentListeners.getListeners();

      for (Object listener : listeners) {
        try {
          final Field fFileField =
              listener.getClass().getEnclosingClass().getSuperclass().getDeclaredField("fFile");

          fFileField.setAccessible(true);

          // get enclosing instance of listener

          final Field thisField = listener.getClass().getDeclaredField("this$0");

          thisField.setAccessible(true);

          Object enclosingObject = thisField.get(listener);

          Object fFile = fFileField.get(enclosingObject);

          if (fFile instanceof IFile) {
            IFile file = (IFile) fFile;

            if (isValidFile(file)) {
              return VALID;
            }
          }
        } catch (Exception e) {
        }
      }
    } catch (Exception e) {
      // ignore errors
    }

    return INVALID;
  }
Пример #3
0
 /** Adds a listener for problem marker changes. */
 public void addListener(IProblemChangedListener listener) {
   if (fListeners.isEmpty()) {
     CUIPlugin.getWorkspace().addResourceChangeListener(this);
     CUIPlugin.getDefault().getDocumentProvider().addGlobalAnnotationModelListener(this);
   }
   fListeners.add(listener);
 }
Пример #4
0
 /** Removes a <code>IProblemChangedListener</code>. */
 public void removeListener(IProblemChangedListener listener) {
   fListeners.remove(listener);
   if (fListeners.isEmpty()) {
     CUIPlugin.getWorkspace().removeResourceChangeListener(this);
     CUIPlugin.getDefault().getDocumentProvider().removeGlobalAnnotationModelListener(this);
   }
 }
Пример #5
0
  private Object[] getListeners() {
    final ListenerList list = listenerList;
    if (list == null) {
      return new Object[0];
    }

    return list.getListeners();
  }
 /* (non-Javadoc)
  * @see net.sourceforge.eclipsetrader.ats.core.IMarketManager#addBarListener(net.sourceforge.eclipsetrader.core.db.Security, net.sourceforge.eclipsetrader.ats.core.events.IBarListener)
  */
 public void addBarListener(Security security, IBarListener l) {
   ListenerList list = (ListenerList) securityBarListeners.get(security);
   if (list == null) {
     list = new ListenerList();
     securityBarListeners.put(security, list);
   }
   list.add(l);
 }
 public void removeContactsListener(IContactsListener listener) {
   if (parent != null) parent.removeContactsListener(listener);
   else {
     if (listeners != null) {
       listeners.remove(listener);
       if (listeners.isEmpty()) listeners = null;
     }
   }
 }
Пример #8
0
 @Override
 public void removeListener(ILabelProviderListener listener) {
   if (listenerList != null) {
     listenerList.remove(listener);
     if (listenerList.isEmpty()) {
       listenerList = null;
     }
   }
 }
Пример #9
0
 private void fireProblemsChanged(IResource[] changedResources, boolean isMarkerChange) {
   if (fListeners != null && !fListeners.isEmpty()) {
     LabelProviderChangedEvent event =
         new ProblemsLabelChangedEvent(this, changedResources, isMarkerChange);
     Object[] listeners = fListeners.getListeners();
     for (int i = 0; i < listeners.length; i++) {
       ((ILabelProviderListener) listeners[i]).labelProviderChanged(event);
     }
   }
 }
Пример #10
0
 @Override
 public void removeListener(ILabelProviderListener listener) {
   if (fListeners != null) {
     fListeners.remove(listener);
     if (fListeners.isEmpty() && fProblemChangedListener != null) {
       LangUIPlugin.getDefault().getProblemMarkerManager().removeListener(fProblemChangedListener);
       fProblemChangedListener = null;
     }
   }
 }
  protected void fireBarCloseEvent(BarEvent e) {
    ListenerList list = (ListenerList) securityBarListeners.get(e.security);
    if (list != null) {
      Object[] l = list.getListeners();
      for (int i = 0; i < l.length; i++) ((IBarListener) l[i]).barClose(e);
    }

    Object[] l = barListeners.getListeners();
    for (int i = 0; i < l.length; i++) ((IBarListener) l[i]).barClose(e);
  }
Пример #12
0
 /**
  * Removes the given help listener from this viewer. Has no effect if an identical listener is not
  * registered.
  *
  * @param listener a help listener
  */
 public void removeHelpListener(HelpListener listener) {
   helpListeners.remove(listener);
   if (helpListeners.size() == 0) {
     Control control = getControl();
     if (control != null && !control.isDisposed()) {
       control.removeHelpListener(this.helpListener);
       helpHooked = false;
     }
   }
 }
 /* (non-Javadoc)
  * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
  */
 public void removeListener(ILabelProviderListener listener) {
   if (fListeners != null) {
     fListeners.remove(listener);
     if (fListeners.isEmpty() && fProblemChangedListener != null) {
       // TODO RMF reenable
       //
       //	JavaPlugin.getDefault().getProblemMarkerManager().removeListener(fProblemChangedListener);
       fProblemChangedListener = null;
     }
   }
 }
 @Override
 public void addSetPVValueListener(ISetPVValueListener listener) {
   if (setPVValueListeners == null) {
     setPVValueListeners = new ListenerList();
   }
   setPVValueListeners.add(listener);
 }
Пример #15
0
 /** Sends a selection changed event to all listeners. */
 public void fireSelectionChanged() {
   ISelection selection = getSelection();
   SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
   Object[] selectionChangedListeners = fListeners.getListeners();
   for (int i = 0; i < selectionChangedListeners.length; i++)
     ((ISelectionChangedListener) selectionChangedListeners[i]).selectionChanged(event);
 }
  /*
   * Consult the IOperationApprovers to see if the proposed execution should
   * be allowed.
   *
   * @since 3.2
   */
  private IStatus getExecuteApproval(IUndoableOperation operation, IAdaptable info) {

    final Object[] approverArray = approvers.getListeners();

    for (int i = 0; i < approverArray.length; i++) {
      if (approverArray[i] instanceof IOperationApprover2) {
        IOperationApprover2 approver = (IOperationApprover2) approverArray[i];
        IStatus approval = approver.proceedExecuting(operation, this, info);
        if (!approval.isOK()) {
          if (DEBUG_OPERATION_HISTORY_APPROVAL) {
            Tracing.printTrace(
                "OPERATIONHISTORY", //$NON-NLS-1$
                "Execute not approved by "
                    + approver //$NON-NLS-1$
                    + "for operation "
                    + operation //$NON-NLS-1$
                    + " with status "
                    + approval); //$NON-NLS-1$
          }
          return approval;
        }
      }
    }
    return Status.OK_STATUS;
  }
 public void addContactsListener(IContactsListener listener) {
   if (parent != null) parent.addContactsListener(listener);
   else {
     if (listeners == null) listeners = new ListenerList();
     listeners.add(listener);
   }
 }
Пример #18
0
 public void removeSelectionChangedListener(ISelectionChangedListener listener) {
   if (getTreeViewer() == null) {
     selectionChangedListeners.remove(listener);
   } else {
     getTreeViewer().removeSelectionChangedListener(listener);
   }
 }
  /**
   * Fires a property changed event.
   *
   * @param propertyId the id of the changed property
   */
  protected void firePropertyChange(final Object source, final int propertyId) {
    if (debug) {
      DebugTrace.print(this, "firePropertyChange", "source=" + source); // $NON-NLS-1$ //$NON-NLS-2$
    }

    Object[] array = resourceChangeListeners.getListeners();
    for (int i = 0; i < array.length; i++) {
      final IPropertyListener listener = (IPropertyListener) array[i];

      // This operation will cause an UI update. It must be executed in
      // the main UI to aoid an Invalid Thread Access exception.
      SafeUpdateController.asyncExec(
          new Runnable() {
            public void run() {
              if (debug) {
                DebugTrace.print(
                    this,
                    "firePropertyChange",
                    "listener=" + listener); // $NON-NLS-1$ //$NON-NLS-2$
              }
              listener.propertyChanged(source, propertyId);
            }
          });
    }
  }
Пример #20
0
  /** This method is called when the plug-in is stopped */
  public void stop(BundleContext context) throws Exception {

    Object[] listeners = shutdownListeners.getListeners();
    for (int i = 0; i < listeners.length; ++i) {
      ((IShutdownListener) listeners[i]).shutdown();
    }
    shutdownListeners.clear();

    super.stop(context);

    ResourcesPlugin.getWorkspace().removeResourceChangeListener(projectConvertListener);

    ResourcesPlugin.getWorkspace().removeResourceChangeListener(reindexOperationListener);

    plugin = null;
  }
Пример #21
0
 public void reconciled() {
   // Notify listeners
   Object[] listeners = fReconcilingListeners.getListeners();
   for (int i = 0, length = listeners.length; i < length; ++i) {
     ((IReconcilingParticipant) listeners[i]).reconciled();
   }
 }
 /**
  * Notify the configuration processor listeners about changes with the configuration state.
  *
  * @param attributes A Set of attributes
  */
 protected void notifyListeners(Set<String> attributes) {
   Object[] processorListeners = listeners.getListeners();
   for (Object obj : processorListeners) {
     ((IConfigurationProcessorListener) obj)
         .configurationStateChanged(configurationStatus, attributes);
   }
 }
  public void swapOut() {
    if (fTestRoot == null) return;
    if (isRunning() || isStarting() || isKeptAlive()) return;

    Object[] listeners = fSessionListeners.getListeners();
    for (int i = 0; i < listeners.length; ++i) {
      ITestSessionListener registered = (ITestSessionListener) listeners[i];
      if (!registered.acceptsSwapToDisk()) return;
    }

    try {
      File swapFile = getSwapFile();

      DLTKTestingModel.exportTestRunSession(this, swapFile);
      fTestResult = fTestRoot.getTestResult(true);
      fTestRoot = null;
      fTestRunnerClient = null;
      fIdToTest = new HashMap<String, TestElement>();
      fCategoryMap = new HashMap<String, TestCategoryElement>();
      fIncompleteTestSuites = null;
      fUnrootedSuite = null;

    } catch (IllegalStateException e) {
      DLTKTestingPlugin.log(e);
    } catch (CoreException e) {
      DLTKTestingPlugin.log(e);
    }
  }
Пример #24
0
 /** Sends out notification that a change has occurred on the <code>ICompareInput</code>. */
 protected void fireChange() {
   if (fListener != null) {
     Object[] listeners = fListener.getListeners();
     for (int i = 0; i < listeners.length; i++)
       ((ICompareInputChangeListener) listeners[i]).compareInputChanged(this);
   }
 }
Пример #25
0
 public void addSelectionChangedListener(ISelectionChangedListener listener) {
   if (getTreeViewer() == null) {
     selectionChangedListeners.add(listener);
   } else {
     getTreeViewer().addSelectionChangedListener(listener);
   }
 }
  /**
   * Notify listeners when a job has changed.
   *
   * @param jobId ID of job that has changed
   * @since 5.0
   */
  protected void fireJobChanged(String jobId) {
    IJobChangedEvent e = new JobChangedEvent(getResourceManager(), jobId);

    for (Object listener : fJobListeners.getListeners()) {
      ((IJobListener) listener).handleEvent(e);
    }
  }
Пример #27
0
 protected void fireSelectionChangedEvent() {
   SelectionChangedEvent e = new SelectionChangedEvent(this, getSelection());
   for (Object listener : selectionChangedListeners.getListeners()) {
     ISelectionChangedListener l = (ISelectionChangedListener) listener;
     l.selectionChanged(e);
   }
 }
Пример #28
0
  /** This method is called when the plug-in is stopped */
  @Override
  public void stop(BundleContext context) throws Exception {

    ExecutionContexts.setManager(null);
    if (fMembersOrderPreferenceCache != null) {
      fMembersOrderPreferenceCache.dispose();
      fMembersOrderPreferenceCache = null;
    }
    Object[] listeners = shutdownListeners.getListeners();
    for (int i = 0; i < listeners.length; ++i) {
      ((IShutdownListener) listeners[i]).shutdown();
    }
    shutdownListeners.clear();
    super.stop(context);
    DLTKUIPlugin.plugin = null;
  }
 private void notifyPageChanged() {
   if (fPageChangeListeners != null && !fPageChangeListeners.isEmpty()) {
     // Fires the page change event
     final PageChangedEvent event = new PageChangedEvent(this, getSelectedPage());
     Object[] listeners = fPageChangeListeners.getListeners();
     for (int i = 0; i < listeners.length; ++i) {
       final IPageChangedListener l = (IPageChangedListener) listeners[i];
       SafeRunner.run(
           new SafeRunnable() {
             public void run() {
               l.pageChanged(event);
             }
           });
     }
   }
 }
 /** Informs the target content listeners that check state has changed */
 public void contentChanged() {
   Object[] listeners = fChangeListeners.getListeners();
   for (int i = 0; i < listeners.length; i++) {
     ((ITargetChangedListener) listeners[i])
         .contentsChanged(fTargetDefinition, this, false, false);
   }
 }