/******************************************************************************* * Copyright (c) 2012-2015 Red Hat Inc. 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: * Red Hat Inc. - Initial implementation * Eric Williams <ericwill@redhat.com> - modification for Javadocss *******************************************************************************/ package org.eclipse.linuxtools.internal.javadocs.ui; import java.util.ArrayList; import java.util.List; import org.eclipse.core.expressions.IEvaluationContext; import org.eclipse.help.ITopic; import org.eclipse.help.IUAElement; /** * The Topic class is for the subtopics within the root topic. In this case, * topics generated will correspond to directories within /usr/share/javadoc * (or JAVADOCS_DIRECTORY is set to). */ public class JavaDocTopic implements ITopic { private String name; private String label; private String link; private List<ITopic> subTopics; JavaDocTopic(String name) { this.name = name; this.subTopics = new ArrayList<>(); this.label = name; // For Javadocs, every directory is only one level deep, so we can hard // code the link of this directory to index.html. link = "index.html"; //$NON-NLS-1$ } @Override public boolean isEnabled(IEvaluationContext context) { // Must always be true, otherwise it will not be displayed return true; } @Override public IUAElement[] getChildren() { return getSubtopics(); } @Override public String getHref() { // WARNING: the documentation for this method allows for a "string // representation of URI to an external document", such as: // jar:file:/c:/my%20sources/src.zip!/mypackage/MyClass.html // However providing an absolute path to the file system will cause // errors due to a bug! // Follow the format of pluginID/path_to_file.html for now. return JavaDocPlugin.PLUGIN_ID + "/" + name + "/" + link; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @Override public String getLabel() { return label; } @Override public ITopic[] getSubtopics() { return subTopics.toArray(new ITopic[0]); } }