|
36 | 36 | import org.xwiki.rendering.listener.reference.DocumentResourceReference; |
37 | 37 | import org.xwiki.rendering.listener.reference.ResourceReference; |
38 | 38 | import org.xwiki.rendering.renderer.reference.link.LinkLabelGenerator; |
39 | | -import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; |
| 39 | +import org.xwiki.rendering.renderer.reference.link.WantedLinkTitleGenerator; |
40 | 40 | import org.xwiki.rendering.wiki.WikiModel; |
41 | 41 |
|
42 | 42 | /** |
@@ -72,7 +72,7 @@ public class DocumentXHTMLLinkTypeRenderer extends AbstractXHTMLLinkTypeRenderer |
72 | 72 | * Used to generate a link title. |
73 | 73 | */ |
74 | 74 | @Inject |
75 | | - private URITitleGenerator defaultTitleGenerator; |
| 75 | + private WantedLinkTitleGenerator defaultTitleGenerator; |
76 | 76 |
|
77 | 77 | @Override |
78 | 78 | public void initialize() throws InitializationException |
@@ -102,33 +102,35 @@ protected String computeLabel(ResourceReference reference) |
102 | 102 | return this.linkLabelGenerator.generate(reference); |
103 | 103 | } |
104 | 104 |
|
105 | | - private URITitleGenerator getTitleGenerator(ResourceReference reference) |
| 105 | + private WantedLinkTitleGenerator getTitleGenerator(ResourceReference reference) |
106 | 106 | { |
107 | | - URITitleGenerator titleGenerator = this.defaultTitleGenerator; |
108 | | - if (this.componentManager.hasComponent(URITitleGenerator.class, reference.getType().getScheme())) { |
109 | | - try { |
110 | | - titleGenerator = this.componentManager.getInstance(URITitleGenerator.class, |
111 | | - reference.getType().getScheme()); |
112 | | - } catch (Exception e) { |
113 | | - logger.warn("Error while loading component for generating URI title: [{}]", |
114 | | - ExceptionUtils.getRootCauseMessage(e)); |
115 | | - logger.debug("Full stack trace: ", e); |
| 107 | + WantedLinkTitleGenerator titleGenerator = this.defaultTitleGenerator; |
| 108 | + try { |
| 109 | + titleGenerator = this.componentManager.getInstance(WantedLinkTitleGenerator.class, |
| 110 | + reference.getType().getScheme()); |
| 111 | + } catch (Exception e) { |
| 112 | + String message = "Could not find a [WantedLinkTitleGenerator] component to generate the wanted " |
| 113 | + + "link title for [{}]."; |
| 114 | + if (logger.isDebugEnabled()) { |
| 115 | + logger.debug(message, reference, e); |
| 116 | + } else { |
| 117 | + logger.warn(String.format("%s: [{}]", message), reference, ExceptionUtils.getRootCauseMessage(e)); |
116 | 118 | } |
117 | 119 | } |
118 | 120 | return titleGenerator; |
119 | 121 | } |
120 | 122 |
|
121 | 123 | /** |
122 | | - * Implementation for computing a document link title when no title has been specified. |
123 | | - * Looks for a component implementing URITitleGenerator with a role hint matching the reference scheme. |
124 | | - * @param reference the reference of the link for which to compute the label |
125 | | - * @return the computed title |
126 | | - * @since 15.2RC1 |
| 124 | + * Implementation for computing a wanted link title. |
| 125 | + * Looks for a component implementing WantedLinkTitleGenerator with a role hint matching the reference scheme. |
| 126 | + * @param reference the reference for which to compute the title |
| 127 | + * @return the wanted link title |
| 128 | + * @since 15.3RC1 |
127 | 129 | */ |
128 | | - private String computeCreateTitle(ResourceReference reference) |
| 130 | + private String computeWantedLinkTitle(ResourceReference reference) |
129 | 131 | { |
130 | | - URITitleGenerator titleGenerator = getTitleGenerator(reference); |
131 | | - return titleGenerator.generateCreateTitle(reference); |
| 132 | + WantedLinkTitleGenerator titleGenerator = getTitleGenerator(reference); |
| 133 | + return titleGenerator.generateWantedLinkTitle(reference); |
132 | 134 | } |
133 | 135 |
|
134 | 136 | @Override |
@@ -167,7 +169,7 @@ private void beginInternalLink(ResourceReference reference, boolean freestanding |
167 | 169 | } else { |
168 | 170 | // The wiki document doesn't exist |
169 | 171 | spanAttributes.put(CLASS, "wikicreatelink"); |
170 | | - spanAttributes.put(TITLE, computeCreateTitle(reference)); |
| 172 | + spanAttributes.put(TITLE, computeWantedLinkTitle(reference)); |
171 | 173 | anchorAttributes.put(XHTMLLinkRenderer.HREF, this.wikiModel.getDocumentEditURL(reference)); |
172 | 174 | } |
173 | 175 |
|
|
0 commit comments