/** * <copyright> * </copyright> * * */ package org.feature.multi.perspective.mapping.viewmapping.resource.mtext.ui; public class MtextDefaultHoverTextProvider implements org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextHoverTextProvider { public String getHoverText(org.eclipse.emf.ecore.EObject container, org.eclipse.emf.ecore.EObject referencedObject) { return getHoverText(referencedObject); } public String getHoverText(org.eclipse.emf.ecore.EObject object) { if (object == null) { return null; } org.eclipse.emf.ecore.EClass eClass = object.eClass(); String label = "<strong>" + eClass.getName() + "</strong>"; String documentation = org.eclipse.emf.ecore.util.EcoreUtil.getDocumentation(eClass); String documentationHTML = documentation == null ? "" : " (" + documentation +")"; label += documentationHTML; for (org.eclipse.emf.ecore.EAttribute attribute : eClass.getEAllAttributes()) { Object value = null; try { value = object.eGet(attribute); } catch (Exception e) { // Exception in eGet, do nothing } if (value != null && value.toString() != null && !value.toString().equals("[]")) { label += "<br />" + attribute.getName() + ": " + object.eGet(attribute).toString(); } } return label; } }