Liste de liens :
Liste de liens :
Définir l'API des Commandes (Core et UI) de TXM :
Cette API doit permettre d'implémenter :
http://portal.textometrie.org/demo/rest?command=Concordance&path=/DISCOURS&query=%22je%22
http://portal.textometrie.org/demo/rest?command=Edition&path=/GRAAL&text=qgraal_cm&edition=ms-colonne,courante&idpage=192b&match=w_qgraal_cm_1234,w_qgraal_cm_1235
Concordance(DISCOURS, "je")
La documentation de l'API doit être synchronisée avec la déclaration des commandes (ou l'inverse ?)
Politique des paramètres incomplets et incorrect:
Autres points :
L'API doit permettre homogénéiser :
Éléments de solution
Les objets résultats de TXM doivent être repensés pour pouvoir répondre à une API de commande de type cmd_id + param1 + param2 …
Dump du framapad mensuel (d5ohraCKOc)
2 scénarios : TXMFunction + TXMParam -> TXMResult TXMResult Pas de TXMFunction Regle No1 : Faire des compute() dans EditorPart only Regle No2 : Les params de TXMResult sont stockés dans les TXMPreferences (en utilisant un node_id construit sur la classe du TXMResult) Ouverture d'un éditeur avec un input générique : * new TXMResultEditorInput(TXMResult result) + editor_id -> ouvre editor avec le result * new TXMResultEditorInput(TXMResult parent , TXMParam params) + editor_id ouvre l'éditor, pré-rempli les champs et calcul si il y a assez de params Pensez à l'API des commandes (début d'implémentation dans le portail) TXMParam : interface à des paramètres new TXMResultEditorInput(TXMResult result) // jamais null -> this(result.getParent(), result, result.getParent()) new TXMResultEditorInput(TxmResult parent, TXMParam params) + editor_id -> ouvre editor, créé un noeud de pref -> editor.compute() // permet au plugin qui appelle de ne pas connaitre le plugin du résultat Exemple avec conc -> cooc // Dans Commande Conc2Cooc appelée par le menu contextuel de la vue Corpus Commands.open(corpus, ["cmd":"Cooccurrences", "query":"je", left:5, right:10] // Dans Commands : void open(TXMResult parent, params) { String editor_id = getEditorID(params.cmd); def editor_input = new input(parent, params); openEditor(id, input); } // Dans editor part // Apres avoir créé l'UI de l'éditeur dans createPart() , on trouve : void init(def input) { this.input = input } void createPart() { this.result = input.getResult() this.parent = input.getParent() this.params = input.getParams() input.get ConcordanceInput input (Corpus)(input.getParent()). // TXMResult // parent. if (result != null) { // udpate params and show result updateEditorFormArea(); // lit TXMPreferences pour remplir les champs du formulaire updateEditorResultArea(); // affiche le résultat } else { // compute result and show result compute(result, params); } } /org.txm.partition.core/src/org/txm/partition/core/preferences/PartitionDimensionsPreferences.java : chart_dimensions_display_parts_count_in_title -> display_parts_count_in_title // réglage d'affichage void compute() { } "left_context":[size:5, prop:"word"] key : left_conccordance_text_size -> left_context_size -> ?
Qui Quand Quoi