diff options
| author | pguilet | 2017-06-09 15:36:36 +0000 |
|---|---|---|
| committer | pguilet | 2017-06-21 16:05:19 +0000 |
| commit | b2117126f051d78ef337c309807a61e08ba78dbe (patch) | |
| tree | 4ede0786a03dbaef20d4605a3bb79e22bbacc6d3 | |
| parent | ccca0ee47c478d60e7b7615c7239b00e181b38e6 (diff) | |
| download | org.eclipse.sirius-b2117126f051d78ef337c309807a61e08ba78dbe.tar.gz org.eclipse.sirius-b2117126f051d78ef337c309807a61e08ba78dbe.tar.xz org.eclipse.sirius-b2117126f051d78ef337c309807a61e08ba78dbe.zip | |
[517551] Update documentation shown in representations block
Now if the selected element in representations block is a representation
description, the corresponding user documentation is shown if such
documentation exists. Otherwise, the associated viewpoint documentation
is shown if such documentation exists. Otherwise a default documentation
is shown.
Bug: 517551
Change-Id: Iec2ee45ea80ed04925412f510913c87aee375837
Signed-off-by: pguilet <pierre.guilet@obeo.fr>
3 files changed, 55 insertions, 33 deletions
diff --git a/plugins/org.eclipse.sirius.ui/plugin.properties b/plugins/org.eclipse.sirius.ui/plugin.properties index c2c703fbd0..14c63eb95e 100644 --- a/plugins/org.eclipse.sirius.ui/plugin.properties +++ b/plugins/org.eclipse.sirius.ui/plugin.properties @@ -375,7 +375,7 @@ ViewpointSelection_viewpointColumn = Viewpoint ViewpointSelection_viewpointsMapNotReused = Original and new lists of viewpoints should not be 'different' ViewpointSelection_wizardTitle = Viewpoints selection ViewpointsFolderItemImpl_representationsPerCategory_title = Representations per category -ViewpointsSelectionWizardPage_documentation_none = no documentation for this viewpoint +ViewpointsSelectionWizardPage_documentation_none = No documentation available ViewpointsSelectionWizardPage_documentation_title = Documentation ViewpointsSelectionWizardPage_message = Select viewpoints to activate ViewpointsSelectionWizardPage_title = Select viewpoints diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java index 6027c2482f..8ccb98b9fe 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java @@ -1194,11 +1194,13 @@ public class GraphicalRepresentationHandler implements SessionManagerListener { viewpointsSelectionGraphicalHandler.setBrowserInput(((ViewpointItemImpl) firstElement).getViewpoint()); } else if (firstElement instanceof RepresentationDescriptionItemImpl) { RepresentationDescriptionItemImpl representationDescriptionItemImpl = (RepresentationDescriptionItemImpl) firstElement; - viewpointsSelectionGraphicalHandler.setBrowserInput(representationDescriptionItemImpl.getViewpoint()); + viewpointsSelectionGraphicalHandler.setBrowserInput(representationDescriptionItemImpl.getViewpoint(), + (RepresentationDescription) representationDescriptionItemImpl.getWrappedObject()); } else if (firstElement instanceof RepresentationItemImpl) { RepresentationItemImpl representationItem = (RepresentationItemImpl) firstElement; RepresentationDescriptionItemImpl representationDescriptionItemImpl = (RepresentationDescriptionItemImpl) representationItem.getParent(); - viewpointsSelectionGraphicalHandler.setBrowserInput(representationDescriptionItemImpl.getViewpoint()); + viewpointsSelectionGraphicalHandler.setBrowserInput(representationDescriptionItemImpl.getViewpoint(), + (RepresentationDescription) representationDescriptionItemImpl.getWrappedObject()); } } } diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/viewpoint/ViewpointsSelectionGraphicalHandler.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/viewpoint/ViewpointsSelectionGraphicalHandler.java index b2baca33ab..a2317d5be6 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/viewpoint/ViewpointsSelectionGraphicalHandler.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/viewpoint/ViewpointsSelectionGraphicalHandler.java @@ -43,6 +43,7 @@ import org.eclipse.sirius.business.api.query.IdentifiedElementQuery; import org.eclipse.sirius.business.api.session.Session; import org.eclipse.sirius.common.tools.api.util.StringUtil; import org.eclipse.sirius.ui.tools.api.views.ViewHelper; +import org.eclipse.sirius.viewpoint.description.RepresentationDescription; import org.eclipse.sirius.viewpoint.description.Viewpoint; import org.eclipse.sirius.viewpoint.provider.Messages; import org.eclipse.swt.SWT; @@ -334,38 +335,63 @@ public class ViewpointsSelectionGraphicalHandler { public void setBrowserInput(final Viewpoint viewpoint) { /* browser may be null if its creation fail */ - if (browser != null) { + if (browser != null && viewpoint != null) { String content = null; - if (containsHTMLDocumentation(viewpoint)) { - content = getContentWhenHtml(viewpoint); + if (containsHTMLDocumentation(viewpoint.getEndUserDocumentation())) { + content = getContentWhenHtml(viewpoint.getEndUserDocumentation(), viewpoint.eResource().getURI()); } else { - content = getContentWhenNoHtml(viewpoint); + content = getContentWhenNoHtml(viewpoint.getEndUserDocumentation()); } browser.setText(content); + } else if (browser != null) { + browser.setText("<br><br><center><b>" + Messages.ViewpointsSelectionWizardPage_documentation_title + "</b></center>"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + /*** + * Set the browser input from given representation description. * @param viewpoint the viewpoint to document + * + * @param representationDescription + * the representation description to document + */ + public void setBrowserInput(final Viewpoint viewpoint, final RepresentationDescription representationDescription) { + + /* browser may be null if its creation fail */ + if (browser != null && representationDescription != null && viewpoint != null) { + String userDocumentation; + if (!StringUtil.isEmpty(representationDescription.getEndUserDocumentation())) { + userDocumentation = representationDescription.getEndUserDocumentation(); + } else { + userDocumentation = viewpoint.getEndUserDocumentation(); + } + String content = null; + if (containsHTMLDocumentation(userDocumentation)) { + content = getContentWhenHtml(userDocumentation, representationDescription.eResource().getURI()); + } else { + content = getContentWhenNoHtml(userDocumentation); + } + browser.setText(content); + } else if (browser != null) { + browser.setText("<br><br><center><b>" + Messages.ViewpointsSelectionWizardPage_documentation_title + "</b></center>"); //$NON-NLS-1$ //$NON-NLS-2$ } } /* * The following code (HTML handling ) and methods could move to another class. */ - private boolean containsHTMLDocumentation(Viewpoint viewpoint) { - if (viewpoint != null) { - final String doc = viewpoint.getEndUserDocumentation(); - if (!StringUtil.isEmpty(doc)) { - return doc.startsWith("<html>"); //$NON-NLS-1$ - } + private boolean containsHTMLDocumentation(String endUserDocumentation) { + if (!StringUtil.isEmpty(endUserDocumentation)) { + return endUserDocumentation.startsWith("<html>"); //$NON-NLS-1$ } return false; } - private String getContentWhenHtml(Viewpoint viewpoint) { - - final String document = viewpoint.getEndUserDocumentation(); + private String getContentWhenHtml(String endUserDocumentation, URI uri) { Set<String> urlToRewrite = Sets.newLinkedHashSet(); - extractUrlToRewrite(document, urlToRewrite); + extractUrlToRewrite(endUserDocumentation, urlToRewrite); - return rewriteURLs(viewpoint, document, urlToRewrite); + return rewriteURLs(uri, endUserDocumentation, urlToRewrite); } private void extractUrlToRewrite(String document, Set<String> urlToRewrite) { @@ -382,12 +408,12 @@ public class ViewpointsSelectionGraphicalHandler { } } - private String rewriteURLs(Viewpoint viewpoint, String document, Set<String> urls) { + private String rewriteURLs(URI uri, String document, Set<String> urls) { String newDocument = document; for (final String url : urls) { - newDocument = newDocument.replace(url, rewriteURL(viewpoint, url)); + newDocument = newDocument.replace(url, rewriteURL(uri, url)); } StringBuilder css = new StringBuilder(); @@ -398,8 +424,7 @@ public class ViewpointsSelectionGraphicalHandler { return newDocument; } - private String rewriteURL(Viewpoint viewpoint, String url) { - final URI uri = viewpoint.eResource().getURI(); + private String rewriteURL(URI uri, String url) { String pluginId = uri.segment(1); String rewrittenURL = ""; //$NON-NLS-1$ @@ -429,9 +454,9 @@ public class ViewpointsSelectionGraphicalHandler { return rewrittenURL; } - private String getContentWhenNoHtml(Viewpoint viewpoint) { + private String getContentWhenNoHtml(String endUserDocumentation) { StringBuilder content = new StringBuilder(); - return begin(content).head(content).body(content, viewpoint).end(content); + return begin(content).head(content).body(content, endUserDocumentation).end(content); } private ViewpointsSelectionGraphicalHandler begin(StringBuilder content) { @@ -446,18 +471,13 @@ public class ViewpointsSelectionGraphicalHandler { return this; } - private ViewpointsSelectionGraphicalHandler body(StringBuilder content, Viewpoint viewpoint) { + private ViewpointsSelectionGraphicalHandler body(StringBuilder content, String endUserDocumentation) { content.append("<body>"); //$NON-NLS-1$ - if (viewpoint == null) { - content.append("<br><br><center><b>").append(Messages.ViewpointsSelectionWizardPage_documentation_title).append("</b></center>"); //$NON-NLS-1$ //$NON-NLS-2$ + if (!StringUtil.isEmpty(endUserDocumentation)) { + content.append(endUserDocumentation); } else { - final String endUserDocumentation = viewpoint.getEndUserDocumentation(); - if (!StringUtil.isEmpty(endUserDocumentation)) { - content.append(viewpoint.getEndUserDocumentation()); - } else { - content.append(Messages.ViewpointsSelectionWizardPage_documentation_none); - } + content.append(Messages.ViewpointsSelectionWizardPage_documentation_none); } content.append("</body>"); //$NON-NLS-1$ return this; |
