package com.hundsun.ares.studio.jres.basicdata.logic.util;
import org.eclipse.core.databinding.UpdateValueStrategy;
import com.hundsun.ares.studio.core.ARESModelException;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.IARESProjectProperty;
import com.hundsun.ares.studio.jres.basicdata.constant.IBasicDataEpacakgeConstant;
import com.hundsun.ares.studio.jres.basicdata.logic.epackage.extensionpoint.EpackageFactoryItem;
import com.hundsun.ares.studio.jres.basicdata.logic.epackage.extensionpoint.EpackageFactoryManager;
public class EPackageUtil {
/**
* ͨ��չʾ��ȡID
* @param name
* @return
*/
public static String getEpackageFactoryItemID(String name) {
for( EpackageFactoryItem item: EpackageFactoryManager.getInstance().getFactoryList()){
if(item.name.equals(name)){
return item.id;
}
}
return name;
}
/**
* ͨ��ID��ȡչʾ
* @param id
* @return
*/
public static String getEpackageFactoryItemName(String id) {
for( EpackageFactoryItem item: EpackageFactoryManager.getInstance().getFactoryList()){
if(item.id.equals(id)){
return item.name;
}
}
return id;
}
/**
* ��ȡ���浽ģ���²���
* @return
*/
public static UpdateValueStrategy getTypeTargetToModelStrategy(){
return new UpdateValueStrategy(){
@Override
public Object convert(Object value) {
if(value instanceof String){
return getEpackageFactoryItemID((String) value);
}
return super.convert(value);
}
};
}
/**
* ��ȡģ�͵�����ĸ��²���
* @return
*/
public static UpdateValueStrategy getTypeModelToTargetStrategy(){
return new UpdateValueStrategy(){
@Override
public Object convert(Object value) {
if(value instanceof String){
return getEpackageFactoryItemName((String) value);
}
return super.convert(value);
}
};
}
/**
* ��ȡ�������ݵ�ģ�Ͷ�������Դ������
* @param project
* @return
*/
public static String getBasicDataType(IARESProject project){
try {
IARESProjectProperty properties = project.getProjectProperty();
String name = properties.getString(IBasicDataEpacakgeConstant.Property_Basic_Data_type_ID);
if(name != null){
return getEpackageFactoryItemID(name);
}
} catch (ARESModelException e) {
e.printStackTrace();
}
return "";
}
}