2011-11-04 5 views
0

Je veux créer une cellule modifiable avec un type de données booléen.GWT celltable Comment créer selectioncell dans edittextcell?

Je ne veux pas utiliser selectioncell pour le type de données booléen

Ma cellule de colonne testBooleanColumn contient la chaîne avec la valeur true, false ..........

quand je clique sur cellule présente dans testBooleanColumn alors cette cellule doit être modifiable et dans cette cellule éditable je veux montrer la cellule de sélection avec la valeur (vrai, faux). lorsque l'utilisateur modifie la valeur de la cellule de sélection soit vrai soit faux cette valeur définie sur cellule modifiable dans testBooleanColumn

Comment faire? un indice? ou un exemple de code pour ce cas d'utilisation?

+0

Votre question est vraiment difficile à comprendre. Peut-être que vous pouvez clarifier. Vous avez une cellule avec un groupe de colonnes. Une colonne (testBooleanColumn) doit être modifiable mais vous ne voulez pas utiliser SelectionCell? Je suppose que ce que vous voulez réaliser est d'afficher le SelectionCell quand vous cliquez dans la cellule et affichez une autre cellule en mode de lecture (quand la cellule n'a aucun foyer). Est-ce exact? –

+0

@timeu Merci pour la réponse, vous avez raison. Je veux afficher le SelectionCell lorsque l'utilisateur clique dans editableTextCell et affiche une autre cellule (editableTextCell) en mode lecture (lorsque la cellule n'a pas de focus). – StackOverFlow

+0

voir ma réponse pour les détails –

Répondre

0

Il y a trois façons de le faire:

  1. Utilisez un CompositeCell avec un ClickTextCell et un SelectionCell et redéfinissent la méthode render du CompositeCell pour rendre seul le ClickTextCell.
    Lorsque vous cliquez sur le ClickTextCell, il appelle automatiquement le ValueUpdater.
    Dans la fonction de mise à jour de ValueUpdater, vous devez définir une valeur booléenne dans votre ClickTextCell. Ensuite, vous devez vérifier dans la méthode render de votre CompositeCell cette valeur booléenne et si elle est définie, alors rendre le SelectionCell au lieu de ClickTextCell.

  2. Créez une cellule personnalisée qui étend AbstractEditableCell par exemple (voir tutorial) et implémentez la fonctionnalité vous-même. Vous pouvez consulter le code pour SelectionCell et EditTextCell et copier la plupart de celui-ci. Fondamentalement, vous devez avoir une sorte de drapeau qui est défini lorsque la cellule obtient le focus. Dans la méthode de rendu, vous devez afficher une liste déroulante ou simplement un texte. Étendre soit EditTextCell ou SelectionCell et implémenter la fonctionnalité manquante.

  3. L'avantage est que vous pouvez probablement réutiliser certaines des méthodes de rendu et vous n'avez pas besoin d'écrire le code de rendu complet vous-même.

+0

Merci pour votre réponse. Avez-vous créé un tel CustomeCell? un exemple de code pour le même? – StackOverFlow

+0

Je n'en ai pas vraiment créé mais vous pouvez juste regarder le code pour SelectionCell ou EditTextCell. Cela devrait être le même. –