Re: [gxpatterns-l] CustomTypes

Matías,
 
hice una clase en el proyecto del patrón derivando como indicas con los dos métodos definidos según muestra de código que adjunto al final.
 
El problema es que me sigue pasando que si bien compila sin errores al hacer debug del patrón y ejecutar GX no aparece el patrón nuevo (que antes si aparecía hasta que incluí un customtype).
 
Alcanza solo con definir la clase como lo indicas? no hay que registrarla en algún lado o vincularla a algún dato de alguna otra clase en algún momento de configuración?
 
Gracias y saludos
 
Gabriel
 

namespace Test.Patterns.Test.Custom

{

class TestCustomTypeSupport : PatternCustomTypeSupport

{

public override IPatternCustomTypeEditor GetTypeEditor(string typeId)

{

return base.GetTypeEditor(typeId);

}

public override IPatternCustomTypeConverter GetTypeConverter(string typeId)

{

return base.GetTypeConverter(typeId);

}

}

}

 

Sent: Thursday, July 28, 2011 12:18 PM
Subject: Re: [gxpatterns-l] CustomTypes

Gabriel,

En el assembly debe haber una clase (que hereda de PatternCustomTypeSupport) que es la que "centraliza el acceso a los custom types". Tiene dos métodos:
  • GetTypeEditor: devuelve, para un determinado tipo, el PatternCustomTypeEditor que se encarga de "la parte de UI" vinculada al tipo (por ejemplo, retornar los valores posibles).
  • GetTypeConverter: devuelve, para un determinado tipo, el PatternCustomTypeConverter que se encarga de "la parte de BL" vinculada al tipo (básicamente serialización en diferentes formatos).
El converter tiene dos métodos, FromString y ToString, para la conversión. Uno de los parámetros que recibe es el enumerado CustomTypeConversion, que describe el tipo de serialización pedida: UI (el valor que se ve/edita en el editor de propiedades), Storage (el valor que se salva/lee dentro de la KB) e ImportExport (el valor que se salva/lee en un XPZ). Estos pueden ser diferentes, por ejemplo, en caso que la propiedad haga referencia a datos que no tienen sentido fuera de la KB (ejemplo: el id de un KBObject).

Hay una limitación en la Ev1, que es que el tipo usado en runtime para el CustomType debe ser un tipo "conocido" (es decir, no puede ser definido en el mismo assembly del pattern). ¿Será por eso que estás teniendo problemas?

Saludos,
- Matías

2011/7/26 Gabriel Acosta <gabriel.acosta@asintotal.com>
Necesitaría si por favor me pueden enviar indicaciones de como tratar con los CustomTypes.
 
Lo que creo tener claro es:
 
*) en el archivo .pattern en la seccion "Definition" tiene que haber una entrada del tipo "CustomTypeDefinitions" en donde se indica el xml que tiene las definiciones de los tipos de usuario.
 
*) en el archivo xml referenciado deben estar las definiciones de los tipos de la forma
 
    <CustomType>

        <

Id>UserType</Id>

        <

DataType>System.String</DataType>

    </

CustomType>

*) en el instance.xml como atributo de algún ElementType tengo Type="custom(UserType)"

Pero con esto no alcanza, en un mensaje del foro dice: "Luego en el assembly debe haber una clase que se encargue de las conversiones a string para almacenamiento y ui, así como editor específico si corresponde"

Que formalidades se deben cumplir en el código para que funcionen los CustomType? Que clases o interfaces hay que escribir/implementar?

En este momento lo que me pasa es que si el atributo usa un CustomType no me aparece el patrón que estoy haciendo entre los patrones disponibles de GX al hacer el debug, si pongo que utilice un tipo común como string si aparece el patrón en GX pero obviamente no es lo que necesito.

Desde ya agradezco la atención y la ayuda que me puedan brindar.

Saludos

Gabriel Acosta

Asintotal S.A.

 


0 Response to "Re: [gxpatterns-l] CustomTypes"

Publicar un comentario