2009-09-23 26 views
11

Mi aplicación GWT crea áreas de texto, cada una de las cuales debe tener una ID para ser útil a una biblioteca de JavaScript de terceros. Sé cómo asignar una identificación a un widget de GWT; Estoy buscando una buena forma de generar esos ID únicos.Cómo asignar ID de elemento DOM único

Respuesta

16

Para GWT, echar un vistazo a HTMLPanel.createUniqueId

String id = HTMLPanel.createUniqueId(); 
+14

El método en HTMLPanel llama a la versión más genérica: 'Document.get(). CreateUniqueId();', que es probablemente lo que quiere usar y no crea una dependencia en el widget HTMLPanel si no lo necesita. –

1

Creo que esto es lo que necesita para los identificadores únicos (utilizando una marca de tiempo y el espacio de nombres 'widget-').

'widget-' + (new Date).valueOf() 
1

Java tiene una clase incorporada para la creación única ID: http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html

Otra forma común es mediante el uso de una marca de tiempo, es decir System.currentTimeMillis()

+2

UUID no se ha implementado por GWT, pero me pareció una guía para saber cómo proporcionar una implementación de su propia: http://code.google.com/webtoolkit/ doc/1.6/DevGuideOrganizingProjects.html # DevGuideModuleXml También encontré una implementación: http://2ality.blogspot.com/2009/01/uuids-for-gwt.html Gracias por la cabecera. – David

+0

¡Sin preocupaciones! Por cierto, parece que la respuesta de Chi podría ser aún más adecuada para tus propósitos. – harto

+0

Sí, creo que estás en lo cierto: HTMLPanel.createUniqueId parece ser exactamente lo que busco. – David

1

Javascript:

var idIndex = 0; 

function getNewId() { 
    return "textGWT"+(idIndex++); 
} 

Java:

class IdMaker { 

    private static int idIndex = 0; 

    public static String generate() { 
     return "textGWT"+(idIndex++); 
    } 
} 
Cuestiones relacionadas