Exemplo n.º 1
0
 protected Object convertValue(EStructuralFeature feature, Object value) {
   String constantName = String.valueOf(value).toUpperCase();
   Class<?> constants = SWT.class;
   String constantClass =
       EcoreUtil.getAnnotation(feature, SwtBuilder.getAnnotationUri(), "constantClass");
   if (constantClass != null) {
     try {
       constants = context.convert(constantClass, Class.class);
     } catch (Exception e) {
       throw new IllegalArgumentException(
           "Conversion from " + value + " failed: " + e.getMessage(), e);
     }
   }
   if (feature.getEType() == EcorePackage.eINSTANCE.getEString()) {
     String type = EcoreUtil.getAnnotation(feature, SwtBuilder.getAnnotationUri(), "type");
     if ("int".equals(type)) {
       value = SwtBuilder.getStaticField(constants, constantName, Integer.class, SWT.DEFAULT);
     } else if (type != null) {
       try {
         Class<?> typeClass = context.convert(type, Class.class);
         value = SwtBuilder.getStaticField(constants, constantName, typeClass, null);
       } catch (Exception e) {
         throw new IllegalArgumentException(
             "Conversion from " + value + " to " + type + " failed: " + e.getMessage(), e);
       }
     }
   } else if (feature.getEType()
       == org.eclipse.e4.tm.swt.styles.StylesPackage.eINSTANCE.getSwtConstant()) {
     value = SwtBuilder.getStaticField(constants, constantName, Integer.class, SWT.DEFAULT);
   }
   return value;
 }