[Résolu] [Writer] Focus depuis une liste vers la page

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
ThierryM
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 439
Inscription : 26 nov. 2006 11:29
Localisation : Les Corbières

[Résolu] [Writer] Focus depuis une liste vers la page

Message par ThierryM »

Bonjour à tous,
Dans un document Writer, j'ai créé une ListBox alimentée par une base de donnée. J'ai créé une macro que j'assigne à l'évènement "Lors du déclenchement" de la listbox pour récupérer la valeur de la zone de liste et l'insérer dans ma page de texte. Ceci marche sans problème. Mais après avoir fait mon choix, il faut que je clique dans ma page de texte pour pouvoir continuer à taper mon texte, ce qui est assez fastidieux...

Donc je souhaiterais une fois que j'ai fait mon choix dans la listbox que celle-ci perde le focus et que ce soit ma zone de texte qui soit activée automatiquement. En fait je souhaiterais que le focus quitte ma DrawPage (endroit où se trouve ma Listbox qui fait partie d'un formulaire) pour revenir sur thisComponent.text .

J'ai vu la méthode SetFocus mais dans mon cas elle n'est pas appropriée.

Merci pour vos éclairages,
A+,
Dernière modification par ThierryM le 19 juil. 2007 08:18, modifié 3 fois.
LibreOffice Version: 24.8.4.2 / Linux Mint Mate Edition 21.3 / Pourquoi privilégier les formats de fichiers ouverts ?
ThierryM
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 439
Inscription : 26 nov. 2006 11:29
Localisation : Les Corbières

Message par ThierryM »

J'avance un petit peu...
D'après l'api, la solution devrait se trouver dans com.sun.star.frame mais pour l'instant je rame. Ma piste :
- getModel ?

D'après ce que j'ai compris dans le SDK chapitre 6 (Office Development) concernant les Frame-Controller-Model (OpenOffice.org_2.2_SDK/docs/DevelopersGuide/OfficeDev/...)

Un document writer est constitué de plusieurs couches :
- une couche principale : là où on tape son texte (il est appelé Model dans l'API)
- une couche de dessin DrawPage (est-ce le Frame ?) : qui contient les dessins mais aussi les contrôles de formulaire ( les controllers)

Donc ma zone de liste ayant le focus, il faudrait que le focus passe sur le model (partie qui contient le texte principal du document writer). Il doit y avoir une instruction simple qui permette de naviguer entre les différentes couches mais je ne l'ai pas trouvée...

Toutes les propositions seront les bienvenues ... :wink:
A+
LibreOffice Version: 24.8.4.2 / Linux Mint Mate Edition 21.3 / Pourquoi privilégier les formats de fichiers ouverts ?
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

Bonjour,
Un petit truc: si on ne t'a pas encore répondu, ne te fais pas une réponse pour ajouter des informations. Car on peut croire en listant les messages que tu as résolu ton problème... Fais plutôt l'édition du message initial.

Pour remettre le focus sur le document :

Code : Tout sélectionner

dim w as object
w = thisComponent.CurrentController.Frame.ContainerWindow
w.setFocus
______
Bernard
ThierryM
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 439
Inscription : 26 nov. 2006 11:29
Localisation : Les Corbières

Message par ThierryM »

Merci beaucoup Bernard, ça marche impeccable.
Je n'y serais pas arrivé tout seul, même si j'étais sur la piste.

En fait, je "me" fais une réponse (surtout pour les autres) pour montrer que j'avance dans mes recherches. Comme en général, je ne relis pas les messages initiaux, j'ai peur que mes avancées passent inaperçues si je modifie mon message initial. Par contre, quand je vois qu'un fil reçoit des réponses, je m'y intéresse pour voir les propositions qui sont faites.
Et puis j'utilise la balise [Résolu] quand la solution a été donnée.

Encore merci et à+
LibreOffice Version: 24.8.4.2 / Linux Mint Mate Edition 21.3 / Pourquoi privilégier les formats de fichiers ouverts ?