public Menu getMenu(Control parent) {
    XMLPlugin plugin = XMLPlugin.getDefault();
    Menu menu = new Menu(parent);
    addActionToMenu(menu, new SelectMatcherAction(XMLStructureCreator.USE_UNORDERED, fViewer));
    addActionToMenu(menu, new SelectMatcherAction(XMLStructureCreator.USE_ORDERED, fViewer));
    new MenuItem(menu, SWT.SEPARATOR);
    HashMap IdMaps = plugin.getIdMaps();
    HashMap IdMapsInternal = plugin.getIdMapsInternal();

    Set keySetIdMaps = IdMaps.keySet();
    Set keySetIdMapsInternal = IdMapsInternal.keySet();
    ArrayList internalIdMapsAL = new ArrayList();
    for (Iterator iter_internal = keySetIdMapsInternal.iterator(); iter_internal.hasNext(); ) {
      String idmap_name = (String) iter_internal.next();
      internalIdMapsAL.add(idmap_name);
    }
    Object[] internalIdMapsA = internalIdMapsAL.toArray();
    Arrays.sort(internalIdMapsA);
    for (int i = 0; i < internalIdMapsA.length; i++) {
      addActionToMenu(menu, new SelectMatcherAction((String) internalIdMapsA[i], fViewer));
    }
    new MenuItem(menu, SWT.SEPARATOR);

    ArrayList userIdMapsAL = new ArrayList();
    for (Iterator iter_idmaps = keySetIdMaps.iterator(); iter_idmaps.hasNext(); ) {
      String idmap_name = (String) iter_idmaps.next();
      userIdMapsAL.add(idmap_name);
    }

    HashMap OrderedElements = plugin.getOrderedElements();
    Set keySetOrdered = OrderedElements.keySet();
    for (Iterator iter_orderedElements = keySetOrdered.iterator();
        iter_orderedElements.hasNext(); ) {
      String idmap_name = (String) iter_orderedElements.next();
      if (!keySetIdMaps.contains(idmap_name)) {
        userIdMapsAL.add(idmap_name);
      }
    }

    Object[] userIdMapsA = userIdMapsAL.toArray();
    Arrays.sort(userIdMapsA);
    for (int i = 0; i < userIdMapsA.length; i++) {
      addActionToMenu(menu, new SelectMatcherAction((String) userIdMapsA[i], fViewer));
    }

    return menu;
  }
 public ChooseMatcherDropDownAction(XMLStructureViewer viewer) {
   fViewer = viewer;
   setText(XMLCompareMessages.ChooseMatcherDropDownAction_text);
   setImageDescriptor(
       XMLPlugin.getDefault().getImageDescriptor("obj16/smartmode_co.gif")); // $NON-NLS-1$
   setToolTipText(XMLCompareMessages.ChooseMatcherDropDownAction_tooltip);
   setMenuCreator(this);
 }
  public XMLComparePreferencePage() {
    super();

    fIdMaps = new HashMap();
    XMLPlugin plugin = XMLPlugin.getDefault();
    HashMap PluginIdMaps = plugin.getIdMaps();
    Set keySet = PluginIdMaps.keySet();
    for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
      String key = (String) iter.next();
      fIdMaps.put(key, ((HashMap) PluginIdMaps.get(key)).clone());
    }
    fIdMapsInternal = plugin.getIdMapsInternal();

    fIdExtensionToName = new HashMap();
    HashMap PluginIdExtensionToName = plugin.getIdExtensionToName();
    keySet = PluginIdExtensionToName.keySet();
    for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
      String key = (String) iter.next();
      fIdExtensionToName.put(key, PluginIdExtensionToName.get(key));
    }

    fOrderedElements = new HashMap();
    HashMap PluginOrderedElements = plugin.getOrderedElements();
    keySet = PluginOrderedElements.keySet();
    for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
      String key = (String) iter.next();
      fOrderedElements.put(key, ((ArrayList) PluginOrderedElements.get(key)).clone());
    }

    fOrderedElementsInternal = plugin.getOrderedElementsInternal();
  }
 /*
  * @see IWorkbenchPreferencePage#performDefaults
  */
 public boolean performOk() {
   XMLPlugin plugin = XMLPlugin.getDefault();
   if (!plugin.getIdMaps().equals(fIdMaps)
       || !plugin.getIdExtensionToName().equals(fIdExtensionToName)
       || !plugin.getOrderedElements().equals(fOrderedElements))
     plugin.setIdMaps(fIdMaps, fIdExtensionToName, fOrderedElements, true);
   // XMLPlugin.getDefault().setIdMaps(fIdMaps,fIdExtensionToName,null);
   return super.performOk();
 }
Beispiel #5
0
 /**
  * Returns null when no match found! Assumes the document has been partitioned via HTML partition
  * scanner
  *
  * @param document
  * @param offset
  * @param partitionsToSearch A collection of the string partition names to search for tags.
  *     Optimization to avoid looking in non HTML/XML tags!
  * @return
  */
 public static IRegion findMatchingTag(
     IDocument document, int offset, Collection<String> partitionsToSearch) {
   try {
     ITypedRegion region = document.getPartition(offset);
     if (!partitionsToSearch.contains(region.getType())) {
       return null;
     }
     String src = document.get(region.getOffset(), region.getLength());
     if (src.startsWith("</")) // $NON-NLS-1$
     {
       return findMatchingOpen(document, region, partitionsToSearch);
     }
     // Handle self-closing tags!
     if (src.endsWith("/>")) // $NON-NLS-1$
     {
       return null;
     }
     return findMatchingClose(document, region, partitionsToSearch);
   } catch (BadLocationException e) {
     XMLPlugin.logError(e.getMessage(), e);
   }
   return null;
 }
 public boolean performCancel() {
   fIdMaps = (HashMap) XMLPlugin.getDefault().getIdMaps().clone();
   return super.performCancel();
 }