Task #2045

Updated by Matthieu Decorde over 2 years ago

Mutualize and clarify TXMResult, Function, TXMObject, HasResults. It will also permit to avoid cyclic dependencies in plug-ins.

Locations:
http://svn.code.sf.net/p/txm/code/trunk/Toolbox/trunk/org.textometrie.toolbox/src/java/org/txm/functions/TXMResult.java
MD: permet d'identifier un résulat parmis d'autres objets. Pas bcp exploité
http://svn.code.sf.net/p/txm/code/trunk/Toolbox/trunk/org.textometrie.toolbox/src/java/org/txm/functions/Function.java
MD: permet de gérer un ProgressDialog depuis la Toolbox.
MD: mais il y a aussi une embrouille entre une Function qui produit un résultat mais qui est aussi le résultat
http://svn.code.sf.net/p/txm/code/trunk/Toolbox/trunk/org.textometrie.toolbox/src/java/org/txm/objects/TxmObject.java
MD: m'a servi à implémenter la logique de Workspace qui contient des Projets, qui contiennent des Bases qui contiennent des Corpus qui contiennent des Text qui contiennent des Edition qui contiennent des Page. Et de généraliser la sauvegarde et le chargement de tous objets depuis le fichier default.xml qui se trouve dans le dossier "workspaces" du répertoire de travail de TXM (~/TXM)
http://svn.code.sf.net/p/txm/code/trunk/Toolbox/trunk/org.textometrie.toolbox/src/java/org/txm/objects/Result.java
MD: tentative de généralisation d'un résultat TXM qui :
* est relié à un Objet parent, peut être supprimé, s'exporte dans un fichier TXT... La classe n'est pas utilisée et peut être supprimée ou Mergée avec TXMResult
http://svn.code.sf.net/p/txm/code/trunk/Toolbox/trunk/org.textometrie.toolbox/src/java/org/txm/HasResults.java

MD: pour conclure, 2 choses à faire
MD: 1) repenser les objets Project, Base, Corpus, Text, Edition et Page et leur sauvegarde
MD: 2) choisir si une Function créé un Result ou si la Function contient un résult ou si la Function est aussi le Result

WIP (Framapad):

Define what is a result, what is an object ans what is a function. Remove and merge useless code.

Define:

* getName()
* getSimpleName()
* getAdvancedName()?
* getDetails()?
* toString()

Uses these and which methods to display in these possible locations:
* Corpora view
** tree node label (AdapterFactory) (I think this node should be updated when some parameters of the command change, eg. for Wordcloud I did that and display the fmin/vmax in the node : Worcloud (20/200))
** status bar (when clicking on a node result)
* Editor
** tab title
** tab tool tip
** chart title
** chart subtitle
** add some extra legend in chart with more details?
* Log
** console
* Export
** prefilled file name when exporting a result (could be the editor tab title, it is not uniformed at this moment)

getAdvancedName() could return a string dedicated to "advanced users" following XML pattern with @ showing what is SU and what is SUP, eg.:

* partition name: DISCOURS_text@loc

h3. .h3 Solution

* define abstract methods in TXMResult
* checks that all results extend TXMResult
* create a class TXMEditorInput that stores the TXMResult object as in the ChartEditorInput (checks and reuse the source code of CustomizableEditor)
* use one of these methods in TXMEditorPart.init() to set part name with: setPartName(editorInput.getResult().getName())
** see here if we can use public Object getAdapter(Class adapter) of the editor input to set the title and the icon of the EditorPArt, I tried but didn't manage to do it
* use one of these methods in the CorporaView click listener to update the status bar (location: org/txm/rcpapplication/views/CorporaView.java)
* use one of these methods in the export dialog to fill the file name
* define methods Log.info(TXMResult), severe(TXMResult), etc. that call TXMResult.toString() and use them for logging. This methods should also call the stack to display the method name in log.

Back