// RAP [if] Help system not supported ///******************************************************************************* // * Copyright (c) 2005, 2007 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.internal.cheatsheets; // //import java.util.HashSet; //import java.util.Set; // //import org.eclipse.core.runtime.IConfigurationElement; //import org.eclipse.core.runtime.Platform; //import org.eclipse.help.search.XMLSearchParticipant; //import org.eclipse.jface.action.Action; //import org.eclipse.ui.cheatsheets.OpenCheatSheetAction; //import org.eclipse.ui.internal.cheatsheets.composite.parser.ICompositeCheatsheetTags; //import org.eclipse.ui.internal.cheatsheets.data.IParserTags; //import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader; //import org.xml.sax.Attributes; // //public class CheatsheetSearchParticipant extends XMLSearchParticipant { // private static final String INTRO_DESC = "cheatsheet/intro/description"; //$NON-NLS-1$ // // private static final String ITEM_DESC = "cheatsheet/item/description"; //$NON-NLS-1$ // // private static final String CCS_DESC = "compositeCheatsheet/taskGroup/intro"; //$NON-NLS-1$ // // /** // * Returns all the documents that this participant knows about. This method // * is only used for participants that handle documents outside of the help // * system's TOC. // * // * @return a set of hrefs for documents managed by this participant. // */ // public Set getAllDocuments(String locale) { // HashSet set = new HashSet(); // IConfigurationElement[] elements = Platform.getExtensionRegistry() // .getConfigurationElementsFor( // ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID + '.' // + CheatSheetRegistryReader.CHEAT_SHEET_CONTENT); // for (int i = 0; i < elements.length; i++) { // IConfigurationElement element = elements[i]; // if (!element.getName().equals(CheatSheetRegistryReader.TAG_CHEATSHEET)) // continue; // String fileName = element.getAttribute(CheatSheetRegistryReader.ATT_CONTENTFILE); // String id = element.getAttribute("id"); //$NON-NLS-1$ // String pluginId = element.getContributor().getName(); // if (isExtensionValid(fileName, id, pluginId)) { // try { // fileName = resolveVariables(pluginId, fileName, locale); // set.add("/" + pluginId + "/" + fileName + "?id=" + id); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // } // catch (Throwable t) { // // log and skip // CheatSheetPlugin.logError("Error parsing cheat sheet extension from plug-in " + pluginId + ", id " + id + ", file " + fileName, t); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // } // } // } // return set; // } // // public Set getContributingPlugins() { // IConfigurationElement[] elements = Platform.getExtensionRegistry() // .getConfigurationElementsFor( // ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID + '.' // + CheatSheetRegistryReader.CHEAT_SHEET_CONTENT); // HashSet set = new HashSet(); // for (int i = 0; i < elements.length; i++) { // IConfigurationElement element = elements[i]; // if (element.getName().equals(CheatSheetRegistryReader.TAG_CHEATSHEET)) { // set.add(element.getContributor().getName()); // } // } // return set; // } // // protected void handleStartElement(String name, Attributes attributes, // IParsedXMLContent data) { // if (name.equals(IParserTags.CHEATSHEET)) { // data.setTitle(attributes.getValue(IParserTags.TITLE)); // data.addText(attributes.getValue(IParserTags.TITLE)); // } else if (name.equals(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET)) { // data.addText(attributes.getValue(ICompositeCheatsheetTags.NAME)); // data.setTitle(attributes.getValue(ICompositeCheatsheetTags.NAME)); // } else if (name.equals(IParserTags.ITEM)) { // data.addText(attributes.getValue(IParserTags.TITLE)); // } else if (name.equals(IParserTags.SUBITEM)) { // data.addText(attributes.getValue(IParserTags.LABEL)); // } else if (name.equals(ICompositeCheatsheetTags.TASK ) // || name.equals(ICompositeCheatsheetTags.TASK_GROUP)) { // data.addText(attributes.getValue(ICompositeCheatsheetTags.NAME)); // } // } // // protected void handleEndElement(String name, IParsedXMLContent data) { // } // // protected void handleText(String text, IParsedXMLContent data) { // String stackPath = getElementStackPath(); // String top = getTopElement(); // if (IParserTags.INTRO.equals(top)) { // data.addText(text); // if (stackPath.equalsIgnoreCase(CCS_DESC)) { // data.addToSummary(text); // } // } else if (IParserTags.ON_COMPLETION.equals(top)) { // data.addText(text); // } else if (stackPath.equalsIgnoreCase(INTRO_DESC)) { // data.addText(text); // data.addToSummary(text); // return; // } else if (stackPath.equalsIgnoreCase(ITEM_DESC)) { // data.addText(text); // return; // } // } // // public boolean open(String id) { // Action openAction = new OpenCheatSheetAction(id); // openAction.run(); // return true; // } // // private static boolean isExtensionValid(String fileName, String id, String pluginId) { // if (fileName.indexOf('\\') != -1) { // CheatSheetPlugin.logError("Error in cheat sheet extension id " + id + " from plug-in " + pluginId + ": path should not contain back-slashes (\\): " + fileName + ". This cheat sheet will not be indexed for searching.", null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ // return false; // } // return true; // } //}