/**
* Copyright (c) 2012 BMW Car IT 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
*/
package org.jnario.suite.ui.hover;
import com.google.inject.Inject;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.text.IRegion;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Extension;
import org.jnario.Specification;
import org.jnario.suite.jvmmodel.SpecResolver;
import org.jnario.suite.jvmmodel.SuiteClassNameProvider;
import org.jnario.suite.suite.PatternReference;
import org.jnario.ui.doc.JnarioHoverProvider;
@SuppressWarnings("all")
public class SuiteHoverProvider extends JnarioHoverProvider {
@Inject
@Extension
private SpecResolver _specResolver;
@Inject
@Extension
private SuiteClassNameProvider _suiteClassNameProvider;
public String getHoverInfoAsHtml(final EObject call, final EObject objectToView, final IRegion hoverRegion) {
String comment = null;
if ((objectToView instanceof PatternReference)) {
final PatternReference spec = ((PatternReference) objectToView);
List<Specification> _resolveSpecs = this._specResolver.resolveSpecs(spec);
CharSequence _document = this.document(_resolveSpecs);
String _string = _document.toString();
comment = _string;
} else {
String _hoverInfoAsHtml = super.getHoverInfoAsHtml(call, objectToView, hoverRegion);
comment = _hoverInfoAsHtml;
}
return comment;
}
public CharSequence document(final List<Specification> specs) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<ul>");
_builder.newLine();
{
for(final Specification spec : specs) {
_builder.append("\t");
_builder.append("<li>");
String _describe = this._suiteClassNameProvider.describe(spec);
_builder.append(_describe, "\t");
_builder.append("</li>");
_builder.newLineIfNotEmpty();
}
}
_builder.append("</ul>");
_builder.newLine();
return _builder;
}
}