[bugzilla 404624] Improving HTML export for external content references
diff --git a/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/main/generateHTMLContent.mtl b/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/main/generateHTMLContent.mtl
index 08a0487..c8a7425 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/main/generateHTMLContent.mtl
+++ b/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/main/generateHTMLContent.mtl
@@ -133,6 +133,18 @@
</li>
[/template]
+[template public generateHTMLContent(externalContent : ExternalContentReference)]
+<li class="jstree-open">
+ [if (externalContent.externalContent->size() >0)]
+ <img src="[getQualifiedImageId(externalContent.externalContent)/]"/>
+ [/if]
+
+ [if externalContent.uri->isEmpty()._not()]
+ (<i>Reference to</i> <code style="color:blue; border:0px solid black;">[externalContent.uri.toString()/])</code>
+ [/if]
+</li>
+[/template]
+
[template public generateHTMLContent(resourceDeclaration : ResourceDeclaration)]
<li class="jstree-open">
<img src="../icons/modelingunit_resource.gif"/>
diff --git a/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/CopyImageUtils.java b/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/CopyImageUtils.java
index afcae1d..c1c8e66 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/CopyImageUtils.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/CopyImageUtils.java
@@ -16,7 +16,6 @@
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
-import java.nio.channels.FileChannel;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.ResourcesPlugin;
@@ -68,21 +67,28 @@
// Step 1: getting the image URL thanks to the item delegator
Object imageURL = getImageURL(any);
- if (imageURL instanceof URL && any instanceof EClassifier) {
+ if (imageURL instanceof URL) {
try {
// Step 2: resolve URL
URL resolvedURL = FileLocator.resolve((URL)imageURL);
+ EClassifier classifier = null;
+ if (any instanceof EClassifier) {
+ classifier = (EClassifier)any;
+ } else {
+ classifier = any.eClass();
+ }
+
// If default "Item" image has been
if (resolvedURL.toString().contains("org.eclipse.emf.edit")
&& resolvedURL.toString().endsWith("/icons/full/obj16/Item.gif")) {
// we search for an "edit" plugin in the workspace
- if ((imageURL = getImageFromWorkspace((EClassifier)any, repositoryAdapter)) != null) {
+ if ((imageURL = getImageFromWorkspace(classifier, repositoryAdapter)) != null) {
resolvedURL = (URL)imageURL;
}
}
// Step 3: copy image in the exported documentation
- qualifiedImageID = copyImageIfNeeded((EClassifier)any, outputFolder, resolvedURL,
+ qualifiedImageID = copyImageIfNeeded(classifier, outputFolder, resolvedURL,
resolvedURL.openStream());
} catch (IOException e) {
IntentUiLogger.logError(e);
@@ -155,7 +161,7 @@
if (any instanceof EClass) {
EObject instance = ((EClassifier)any).getEPackage().getEFactoryInstance().create((EClass)any);
imageURL = getItemDelegator(any).getImage(instance);
- } else if (any instanceof EClassifier) {
+ } else {
imageURL = getItemDelegator(any).getImage(any);
}
diff --git a/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/IntentAcceleoServices.java b/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/IntentAcceleoServices.java
index 33cb03a..6482d0c 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/IntentAcceleoServices.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.exporter/src/org/eclipse/mylyn/docs/intent/exporter/services/IntentAcceleoServices.java
@@ -106,7 +106,10 @@
}
public static String getIndex(IntentStructuredElement structuredElement) {
- String index = structuredElement.getCompleteLevel().replace(".", "_");
+ String index = "";
+ if (structuredElement.getCompleteLevel() != null) {
+ index = structuredElement.getCompleteLevel().replace(".", "_");
+ }
return index;
}