/**
  * Return all of the properties page contributors for an element.
  *
  * @param element
  * @return {@link IPreferenceNode}[]
  * @since 3.4
  */
 public static IPreferenceNode[] propertiesContributorsFor(Object element) {
   PropertyPageManager pageManager = new PropertyPageManager();
   if (element == null) {
     return null;
   }
   // load pages for the selection
   // fill the manager with contributions from the matching contributors
   PropertyPageContributorManager.getManager().contribute(pageManager, element);
   // testing if there are pages in the manager
   List pages = pageManager.getElements(PreferenceManager.PRE_ORDER);
   IPreferenceNode[] nodes = new IPreferenceNode[pages.size()];
   pages.toArray(nodes);
   return nodes;
 }
 /**
  * Indicates whether the specified element has at least one property page contributor.
  *
  * @param element an adapter element of a property page
  * @return true for having at least one contributor; false otherwise
  * @since 3.4
  */
 public static boolean hasPropertiesContributors(Object element) {
   if (element == null || !(element instanceof IAdaptable)) return false;
   Collection contributors =
       PropertyPageContributorManager.getManager().getApplicableContributors(element);
   return contributors != null && contributors.size() > 0;
 }