Loading plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/hover/TDLtxHoverProvider.java +62 −2 Original line number Diff line number Diff line package org.etsi.mts.tdl.ui.hover; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import org.eclipse.emf.ecore.ENamedElement; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature.Setting; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.xtext.ui.editor.hover.html.DefaultEObjectHoverProvider; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.MemberAssignment; import org.etsi.mts.tdl.NamedElement; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterBinding; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.TestDescription; import org.etsi.mts.tdl.TestObjective; Loading @@ -15,6 +23,9 @@ import org.etsi.mts.tdl.TestObjective; public class TDLtxHoverProvider extends DefaultEObjectHoverProvider { protected String getHoverInfoAsHtml(EObject o) { String html = super.getHoverInfoAsHtml(o); if (o instanceof NamedElement) { html = "<b>"+o.eClass().getName()+" : "+((NamedElement) o).getName()+"</b>"; } if (o instanceof TestObjective) { //TODO: search within resource set? //TODO: basic PoC, elaborate further, e.g. links, other info Loading @@ -26,12 +37,61 @@ public class TDLtxHoverProvider extends DefaultEObjectHoverProvider { html+="<br/></br>Referenced in: <b><ul><li>"+targets+"</li></ul></b></br</br>"; } if (o instanceof StructuredDataType) { String members = ((StructuredDataType) o).allMembers().stream().map(e -> e.getName() + " : "+e.getDataType().getName()).collect(Collectors.joining("</li><li>")); html+="<br/></br>Members: <b><ul><li>"+members+"</li></ul></b></br</br>"; String members = getListOfMembers((StructuredDataType) o); html+="<br/></br>Members: <b>"+members+"</b></br</br>"; } if (o instanceof StructuredDataInstance) { StructuredDataInstance instance = (StructuredDataInstance) o; html+="<br/><br/>Type: <b>"+instance.getDataType().getName()+"</b>"; String members = getListOfMembers((StructuredDataType) instance.getDataType()); html+="<br/></br>Members: <b>"+members+"</b></br</br>"; //TODO: merge assignments above? String unassigned = getListOfUnassignedMembers((StructuredDataType) instance.getDataType(), instance.getMemberAssignment()); if (!unassigned.equals("<ul><li></li></ul>")) { html+="Unassigned Members: <b>"+unassigned+"</b></br</br>"; } } if (o instanceof Parameter) { html+="<br/><br/>Type: <b>"+((Parameter) o).getDataType().getName()+"</b>"; if (((Parameter) o).getDataType() instanceof StructuredDataType) { String members = getListOfMembers((StructuredDataType) ((Parameter) o).getDataType()); html+="<br/></br>Members: <b>"+members+"</b></br</br>"; //not really possible to determine // String unbound = getListOfUnboundParameters(((StructuredDataType) ((Parameter) o).getDataType()), o); // html+="<br/></br>Unbound Parameters: <b>"+unbound+"</b></br</br>"; } } //TODO: data use return html; } //TODO: move to label providers? private String getListOfMembers(StructuredDataType o) { String members = o.allMembers().stream() .map(e -> e.getName() + " : "+e.getDataType().getName() + (e.isIsOptional() ? " (optional)" : "")) .collect(Collectors.joining("</li><li>")); return "<ul><li>"+members+"</li></ul>"; } private String getListOfUnassignedMembers(StructuredDataType o, List<MemberAssignment> m) { List<Member> assigned = m.stream().map(e->e.getMember()).collect(Collectors.toList()); String members = o.allMembers().stream() .filter(e->!assigned.contains(e)) .map(e -> e.getName() + " : "+e.getDataType().getName() + (e.isIsOptional() ? " (optional)" : "")) .collect(Collectors.joining("</li><li>")); return "<ul><li>"+members+"</li></ul>"; } private String getListOfUnboundParameters(StructuredDataType o, List<ParameterBinding> m) { List<Parameter> assigned = m.stream().map(e->e.getParameter()).collect(Collectors.toList()); String members = o.allMembers().stream() .filter(e->!assigned.contains(e)) .map(e -> e.getName() + " : "+e.getDataType().getName() + (e.isIsOptional() ? " (optional)" : "")) .collect(Collectors.joining("</li><li>")); return "<ul><li>"+members+"</li></ul>"; } protected String getHoverInfoAsHtml(TestObjective o) { String html = super.getHoverInfoAsHtml(o); System.out.println(html); Loading Loading
plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/hover/TDLtxHoverProvider.java +62 −2 Original line number Diff line number Diff line package org.etsi.mts.tdl.ui.hover; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import org.eclipse.emf.ecore.ENamedElement; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature.Setting; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.xtext.ui.editor.hover.html.DefaultEObjectHoverProvider; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.MemberAssignment; import org.etsi.mts.tdl.NamedElement; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterBinding; import org.etsi.mts.tdl.StructuredDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.TestDescription; import org.etsi.mts.tdl.TestObjective; Loading @@ -15,6 +23,9 @@ import org.etsi.mts.tdl.TestObjective; public class TDLtxHoverProvider extends DefaultEObjectHoverProvider { protected String getHoverInfoAsHtml(EObject o) { String html = super.getHoverInfoAsHtml(o); if (o instanceof NamedElement) { html = "<b>"+o.eClass().getName()+" : "+((NamedElement) o).getName()+"</b>"; } if (o instanceof TestObjective) { //TODO: search within resource set? //TODO: basic PoC, elaborate further, e.g. links, other info Loading @@ -26,12 +37,61 @@ public class TDLtxHoverProvider extends DefaultEObjectHoverProvider { html+="<br/></br>Referenced in: <b><ul><li>"+targets+"</li></ul></b></br</br>"; } if (o instanceof StructuredDataType) { String members = ((StructuredDataType) o).allMembers().stream().map(e -> e.getName() + " : "+e.getDataType().getName()).collect(Collectors.joining("</li><li>")); html+="<br/></br>Members: <b><ul><li>"+members+"</li></ul></b></br</br>"; String members = getListOfMembers((StructuredDataType) o); html+="<br/></br>Members: <b>"+members+"</b></br</br>"; } if (o instanceof StructuredDataInstance) { StructuredDataInstance instance = (StructuredDataInstance) o; html+="<br/><br/>Type: <b>"+instance.getDataType().getName()+"</b>"; String members = getListOfMembers((StructuredDataType) instance.getDataType()); html+="<br/></br>Members: <b>"+members+"</b></br</br>"; //TODO: merge assignments above? String unassigned = getListOfUnassignedMembers((StructuredDataType) instance.getDataType(), instance.getMemberAssignment()); if (!unassigned.equals("<ul><li></li></ul>")) { html+="Unassigned Members: <b>"+unassigned+"</b></br</br>"; } } if (o instanceof Parameter) { html+="<br/><br/>Type: <b>"+((Parameter) o).getDataType().getName()+"</b>"; if (((Parameter) o).getDataType() instanceof StructuredDataType) { String members = getListOfMembers((StructuredDataType) ((Parameter) o).getDataType()); html+="<br/></br>Members: <b>"+members+"</b></br</br>"; //not really possible to determine // String unbound = getListOfUnboundParameters(((StructuredDataType) ((Parameter) o).getDataType()), o); // html+="<br/></br>Unbound Parameters: <b>"+unbound+"</b></br</br>"; } } //TODO: data use return html; } //TODO: move to label providers? private String getListOfMembers(StructuredDataType o) { String members = o.allMembers().stream() .map(e -> e.getName() + " : "+e.getDataType().getName() + (e.isIsOptional() ? " (optional)" : "")) .collect(Collectors.joining("</li><li>")); return "<ul><li>"+members+"</li></ul>"; } private String getListOfUnassignedMembers(StructuredDataType o, List<MemberAssignment> m) { List<Member> assigned = m.stream().map(e->e.getMember()).collect(Collectors.toList()); String members = o.allMembers().stream() .filter(e->!assigned.contains(e)) .map(e -> e.getName() + " : "+e.getDataType().getName() + (e.isIsOptional() ? " (optional)" : "")) .collect(Collectors.joining("</li><li>")); return "<ul><li>"+members+"</li></ul>"; } private String getListOfUnboundParameters(StructuredDataType o, List<ParameterBinding> m) { List<Parameter> assigned = m.stream().map(e->e.getParameter()).collect(Collectors.toList()); String members = o.allMembers().stream() .filter(e->!assigned.contains(e)) .map(e -> e.getName() + " : "+e.getDataType().getName() + (e.isIsOptional() ? " (optional)" : "")) .collect(Collectors.joining("</li><li>")); return "<ul><li>"+members+"</li></ul>"; } protected String getHoverInfoAsHtml(TestObjective o) { String html = super.getHoverInfoAsHtml(o); System.out.println(html); Loading