/**
*
*/
package de.urszeidler.eclipse.shr5.util;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import de.urszeidler.eclipse.shr5.Beschreibbar;
import de.urszeidler.eclipse.shr5.Identifiable;
import de.urszeidler.eclipse.shr5.Localization;
/**
* @author urs
*
*/
public class Shr5EditingTools {
/**
* Provide a null safe reflective label for a eobject.
*
* @param factory
* @param defaultVaule
* @param eObject
* @return
*/
public static String getLabelForEObject(ComposeableAdapterFactory factory, String defaultVaule, EObject eObject) {
IItemLabelProvider labelprovider;
if (factory != null)
if (eObject != null) {
labelprovider = (IItemLabelProvider)factory.adapt(eObject, IItemLabelProvider.class);
if (labelprovider != null)
defaultVaule = labelprovider.getText(eObject);
}
return defaultVaule;
}
/**
* Localize the resource object when it is an Identifiable.
* @param object
* @param orgText
* @param iso3CountryCode
* @return
*/
public static String localizeText(Object object, String orgText, String iso3CountryCode) {
if (object instanceof Identifiable) {
Identifiable id = (Identifiable)object;
EObject eObject = (EObject)object;
EClass eClass = eObject.eClass();
String className = ModifikatorItemProvider.getEClassName(eClass);
EList<Localization> localizations = id.getLocalizations();
for (Localization localization : localizations) {
if (iso3CountryCode.equals(localization.getLocal())) {
if (id instanceof Beschreibbar) {
Beschreibbar b = (Beschreibbar)id;
if(localization.getName()!=null)
return orgText.replace(b.getName(), localization.getName());
}
return className + " " + localization.getName();
}
}
}
return orgText;
}
}