Dev OImaging Sep-Oct 2021 ...

Q: question
A: Antoine
L: Laurent
G: Guillaume

dépôt GitHub Antoine : https://github.com/buthanoid/oimaging

Bugs / Features : OImagingFeatureList

Github board: https://github.com/orgs/JMMC-OpenDev/projects/3

Jeudi 21

  • AQ: Suite à la discussion de ce midi, je ne comprend plus très bien ce que je dois économiser dans ma copie de FitsImage. Il y a les données de l'image, qui vont changer pendant le resample de toutes façons, et il y a les mots clés, dont le type et la valeur peut être amenée à changer par la suite.

Mardi 19

  • A: confirmation des deux journées à grenoble.
  • A: bouger les boutons Compare, Delete et réglette de la classe MainPanel vers la classe ResultSetTablePanel (à côté de TableEditor) ?
  • A: fait deux pull request, je dois partir vite, pas le temps de commenter !

jeudi 14

Mercredi 13

  • A: Lier les pull request aux issues plutôt que de mettre les deux à la fois sur le tableau d'avancement ?
  • A: ajouter une issue pour retirer le panneau HTML de gauche ? On l'avait évoqué un jour

Jeudi 7

  • je continue (et termine) bsmem et rgl prio
  • L: pour netbeans code formatting, utiliser Right Margin = 120

Mercredi 6

  • A:Je me souviens pourquoi je n'ai pas le formattage on save sur netbeans. ça le fait planter quand j'active l'option..
    EDIT : il plante mais il a l'air de se souvenir de l'option quand même

Mardi 5

  • A: travaillé sur BSMEM RGL PRIO
  • A: séminaire 14h

Lundi 4

Jeudi 30

  • A: corrigé les classes pour les KEYWORD par rapport aux commentaires sur github

Mercredi 29

  • Pour le titre des images :
    • Ajouter un véritable identifiant représente bcp de travail
    • un simple label remplit la fonctionnalité de meilleure lisibilité pour l'utilisateur, sans prétendre à des propriétés d'unicité
    • différent de la colonne INDEX donc pas de besoin de créer un nouvel ordre numérolexicographique
    • nécessite quand même de modifier le viewer d'image, peut-être avec un nouveau champ optionnel, pour ne pas changer le comportement de la classe initial ?
    • L: topic moved to https://github.com/JMMC-OpenDev/oimaging/issues/8

Mardi 28

  • A: meilleur code pour persistance RATING.
  • A: pull request pour retirer la pop up demandant la permission pour changer le nom du hdu.
  • A: Fonctionnalité de l'INDEX:
    • Éditable par l'utilisateur
    • Type devient String au lieu de Integer. Sauf que c'est une chaîne particulière : quand on l'utilise on essaie toujours de voir si elle peut s'interpréter comme un Integer.
    • En l'absence de valeur, un numéro est attribué lors de la mise à jour de la liste des résultats. le numéro est le plus grand déjà présent dans le tableau + 1.
    • le nom INDEX devient ID
    • INDEX est utilisé au lieu du nom de fichier pour désigner les images. oiexplorer.[...].!FitsImagePanel.java l.1298 appelle la fonction FitsImage.getFitsImageIdentifier. FitsImage est dans oitools. Ça ne semble pas évident que cette classe doive connaître le champ ID. En tout cas dans la fonction actuelle où le champ est + décoratif qu'un véritable identifiant. Et la classe FitsImagePanel fait partie de oiexplorer donc ça ne fait pas sens de la modifier pour ajouter un titre spécifique à OImaging.
L: il faut séparer la gestion du champ ServiceResult.ID (string) => keywords (RESULT_ID ?) dans la table de son utilisation pour identifier les images; il faut revoir comment est donnée l'image au FitsImagePanel, en effet, il serait possible de founir l'image et son ID en meme temps pour qu'il soit affiché à la place. Cependant pour une image, il faut utiliser IMAGE_ID = RESULT_ID + HDU_NAME + (index / nb images) ? ou sinon, modifier image.setFitsImageIdentifier(filename + '#' + hduIndex + '-' + imageIndex + '/' + imgCount) pour remplacer sa valeur actuelle... à creuser.

L: topic moved to https://github.com/JMMC-OpenDev/oimaging/issues/8

  • A: explications sur la proposition de persistance des mots clés.
    • un KeywordMeta a été ajouté à IRModel.java (peut-être serait-il mieux ailleurs ?) oui, mieux ailleurs
    • Dans la fonction IRModel.addServiceResult, la fonction ImageOiInputParams.addKeywordMeta est appelée, ce qui a pour effet d'ajouter la description à la liste de la description des mots clés. Cette liste est utilisée pour parcourir les mots clés donc le nouveau mot clé doit en faire partie. De plus cette commande permet également de transformer les header card en keyword, au cas où notre mot clé aurait été interprété comme une header card (dans notre cas c'est toujours ainsi. pour que ce soit interprété comme mot clé il faudrait faire en sorte que la description du mot clé soit connue avant le parsing, et non après comme ici.)
    • L: pourquoi modifier les Inputs ? je pense que ces informations doivent être dans Output (post processing GUI), surtout que la table des Inputs est déjà compliquée (table dynamique avec mots-clés defaultKeywords / specificKeywords ...); par contre, ces méthodes ne sont pas dans la table output, il faut donc ajouter le minimum (addKeyword ...) dans oitools
    • le champ rating a été retiré de ServiceResult, et le cas RATING a été retiré de l'énumération HardCoded
    • dans ResultSetTableModel, dans la fonction setValueAt, la fonction FitsTable.setKeywordValue est appelée pour enregistrer le nouveau RATING dans l'objet parsé d'OifitsFile. Ensuite, la méthode OIFitsWriter.writeOIFits est appelée pour enregistrer l'objet parsé modifié dans le fichier.
    • L: non, il ne faut pas appeller writeOIFits() ici, il faut utiliser l'action 'save OIFITS'; ou alors seulement en devMode => méthode Devmode.saveResult() ?
    • Pour la lecture des données, il a suffit de retirer la récupération HardCoded, et ainsi on tombe dans le cas déjà existant de recherche des colonnes dans les input et output.

Lundi 27

Problèmes & solutions

NetBeans plante quand on sélectionne le formattage du code à la sauvegarde

A: il plante mais il enregistre quand même l'option et elle fonctionne. Il suffit de le tuer avec la commande kill. Recommencer pour chaque option.

Problème de component quand on clique sur Design dans Netbeans (et qu'il impose le ReadOnly)

A: Cliquer sur "éditer quand même", faire une modification bénine (exemple ajouter une lettre à un label), enregistrer, retirer la modification, enregistrer, et regarder le diff pour voir ce qui a changé dans le form et des les variables générées automatiquement.

A: Si le component n'est pas visible dans le Netbeans Navigator, clean&compile, fermer tous les fichiers ouverts sur NetBeans, fermer Netbeans, ouvrir Netbeans, ouvrir en premier le fichier concerné et aller voir si le component apparaît dans le Navigator.

Ne peut pas compiler après un pull d'OImaging par exemple, à cause d'un pb sur jmcs par exemple

A: Les autres dépôts (comme JMCS) ont sûrement été mis à jour, et la nouvelle version d'OImaging s'appuie dessus. aller dans le dossier jmmc-java-build, et lancer bash update_modules.sh et bash build_gui.sh

Plugin maven exec mojo : 501 HTTPS Required quand on clique sur Netbeans Run

A: NetBeans -> Tools -> Options -> Java -> Maven.
A: Le home de Maven est sûrement marqué "bundle" donc une ancienne version. Il faut pointer sur la version plus récente de Maven installée sur l'ordi, par exemple /usr/share/maven.

Vendredi 24

  • A: suggestion pour la nouvelle version des colonnes : quand on ouvre le TableEditorPanel, renommer :
    • "Hidden columns" en "Always hidden columns"
    • "Displayed columns" en "Displayable columns"
    • pour mettre en valeur le fait que les colonnes sont "affichables", c'est à dire qu'elles seront visibles si elles ont du contenu, sans quoi elles seront cachées.
    • L: je préfère Available / Visible columns, avoir les boutons up/down serait un petit plus, bien que le drag'n drop suffit.
  • A: fusionné les commits de Laurent, ajouté les boutons up&down (j'ai un peu galéré avec le layout, il faudra que je lise quelques trucs dessus pour être plus efficace..)
  • A: réflexion sur l'interface OImaging. maquette html à DL : maquette.tar ouvrir dans le navigateur. quelques boutons sont cliquables pour naviguer entre les pages.

Mercredi 22

  • A: envoyé un dernier commit pour DevMode, en attente de confirmation, ça semble correct de mon côté
  • AQ: pour le bug NetBeans, j'ai identifié jideToggleSplitButton1 dans fr/jmmc/oimaging/gui/SoftwareSettingsPanel.java qui pose problème. Souci : impossible de le retrouver dans l'onglet Design, je ne trouve pas de "recherche" de component. et côté source code c'est grisé je ne suis pas sensé l'éditer manuellement.
    Du coup je l'ai quand même édité manuellement avec XED. Dans le form il était noté comme "Non Visual Component".. le pb c'est que je n'ai pas trouvé comment gérer ces composants depuis NetBeans.
    Pour le bug de MainPanel, j'ai cliqué sur "éditer quand même", et ce qu'il a changé semble innofensif..
    tout est regroupé dans le commit de cette branche : https://github.com/buthanoid/oimaging/tree/design-edit-problem
    vous me direz ce que vous en pensez.
  • L: je vois ce champ inutile dans le Navigator/Non visual components => delete fonctionne bien. Je peux commiter ce fix: bien vu !
  • A: je te crois mais je ne trouve pas.. voir le screenshot suivant :

L: effectivement, cela buggue aussi sur nb 12.3 si on a déjà affiché un panel comme MainPanel. J'ai recompilé oimaging (clean & build), relancé netbeans et directement ouvert le SoftwareSettingPanel alors le navigator affiche bien le composant manquant => killed

Please update jmcs and your branch PR#3 (merged with oimaging master)

Mardi 21

  • A: effectué les corrections sur DevMode, envoyé sur la pull request. J'ai implémenté une fonction sommaire de devine de Service à partir des mots clés et header card.
  • A: pas eu le temps de regarder la pull request de Table Editor

Lundi 20

  • A: toujours le bug de MainPanel, recompiler n'a pas suffi
  • A: constaté qqes problèmes sur le craft de ServiceResult, voir le commentaire sur la pull request
  • A: réécrit le craft de ServiceResult dans DevMode
    • j'ai retiré le guess de Service, puisque c'est un concept qui appartient au lancement de Run, pas au chargement de fichier Result
    • j'ai attribué un Service par défaut, en attendant qu'on ait un KeyWord qui donne cette info.
Récapitulatif de ce qui se passe lors du Run :
  • un TaskSwingWorker est créé avec deux fonctions : computeInBackground qui exécute la tâche, et refreshUI qui est appelée quand la tâche est terminée
  • TaskSwingWorker.computeInBackground()
    1. récupère le Service (algorithme) sélectionné actuellement dans l'interface
    2. appelle reconstructsImage(Service,File) en local/distant avec le Service et le fichier d'entrée, en récupère un ServiceResult
      LocalExecutionMode.reconstructsImage(Service,File)
      1. créé un objet ServiceResult(File) avec le fichier d'entrée
      2. appelle la fonction exec(Service,File), qui exécute l'algo et remplir les fichiers output et log
      3. renvoie le ServiceResult dont les fichiers input et output ont maintenant du contenu
    3. appelle ServiceResult.setService(Service)
    4. appelle ServiceResult.setValid(Boolean)
  • TaskSwingWorker.refreshUI(ServiceResult)
    1. si le ServiceResult est non annulé, appelle IRModel.addServiceResult(ServiceResult)
      IRModel.addServiceResult(ServiceResult)
      1. appelle ServiceResult.loadExecutionLogFile() qui lit le fichier log et place son contenu dans le champ executionLog
      2. appelle ServiceResult.loadOIFitsFile()
        1. sauf si ça a déjà été fait, appelle OIFitsLoader.loadOIFits(File) sur le fichier output, qui va le lire et le parser, et place le résultat dans le champ oiFitsFile.
      3. ajoute le ServiceResult à l'ensemble des résultats, champ serviceResults
      4. si le ServiceResult est valide, appelle addFitsImageHDUs(HDUs) avec le contenu du champ oiFitsFile
        1. ajoute les HDU aux existants, en résolvant les conflits de nom (par user dialog), et choisit le premier HDU comme "image input"
      5. appelle fireIRModelUpdated

Vendredi 17

  • AQ: pour passer les champs de ServiceResult dans des paramètres d'output. Spécifiquement pour Rating et Comments par exemple, est-ce que je les ajoute en constantes dans fr.jmmc.oitools.image.ImageOiConstants, dans la partie// Algorithm results keywords, par exemple : public final static String KEYWORD_RATING = "RATING"; ?
    Ou bien plutôt dans fr.jmmc.oitools.image.ImageOiOutputParam ?
    Dans les deux j'ai l'impression.
  • L: dans Oimaging, comme dans les classes filles de SoftwareInputParam pour ne pas polluer OITools (standard ImageOI)
  • A: j'ai un problème avec mon fork de oitools, il utilise une nouvelle version de fr.jmmc.jmcs.util.NumberUtils. Le pb c'est qu'elle est utilisée pour la compilation mais pas pour l'exécution du coup NoSuchMethod exception.
    • L: just update jmcs, oitools

Jeudi 16

  • A: travail sur la pull request
  • A: créé une branche pour un devMode
  • Externalisé Column

  • AQ: quand j'essaie d'ouvrir l'éditeur graphique de MainPanel.java j'ai l'erreur suivante : Error in loading component property. voir image ci dessous
  • L: recompiler le module oimaging et cela devrait refonctionner.

Mercredi 15

  • A: réunion avec laurent et travail sur la pull request

Mardi 14

  • A: J'ai simplifié ColumnDesc, j'en ai fait une classe abstraite ce qui me permet de définir equals à un seul endroit pour + de sûreté.
  • A: Il faut faire attention, maintenant l'égalité de ColumnDesc est seulement sur le nom. Ainsi pour éliminer les doublons à l'aide d'un ensemble de ColumnDesc, il faut commencer à insérer les colonnes d'abord Output, puis Input, puis HardCoded. Ainsi, un Comparator alternatif est ajouté à ColumnDesc, afin de trier dans l'ordre des priorités. Il ne peut pas être le comparateur officiel car il est incompatible avec la méthode equals qui s'appuie seulement sur le nom.
  • A: J'ai gardé la seconde liste de colonnes sous forme de List car ça répond mieux à l'interface de AbstractTableModel qui demande une colonne par son index.
  • A: Pour TableEditorPanel j'ai aussi gardé des List car il me semble que ça collait mieux à ListModel
  • QA: j'ai changé la méthode pour charger des Paramètres afin de récupérer la classe aussi. Voir commit https://github.com/buthanoid/oimaging/commit/cc607b03bece1fec3d455e289809654059859d01
    Le problème est que j'ai maintenant des colonnes que je n'avais pas avant : INIT_IMG, RGL_PRIO, USE_T3, USE_VIS, USE_VIS2. En plus ces champs sont vides. Je crois qu'ils n'étaient pas sélectionnés car vide. Est-ce que j'ajoute un filtre anti-null ?

Lundi 13

  • A: corrigé le bug d'absence de Rendering. Modifier les valeurs du modèle de ResultSetTableModel modifie les objets TableColumn. Or le rendering des petites étoiles est associé à un objet TableColumn. J'ai corrigé en demandant un nouveau rendering sur le nouvel objet TableColumn. A voir si c'est mieux de garder les objets TableColumn existants quand on fait un setResults. On pourrait aussi créer une nouvelle classe contenant un entier borné entre le nombre d'étoile possible, puis définir un renderer par défaut pour cette nouvelle classe. A voir si cela ne demande pas du boulot en plus, par exemple pour définir le tri d'une colonne contenant cette nouvelle classe.
  • L: effectivement, il faut bien redéfinir les renderer / editors basés sur le colonne (dans setResults): il faudrait mutualiser les instances de SuccessCell / RatingCell comme des champs de la classe TablePanel ...
  • Pour filtrer les colonnes: il faut utiliser FitsUtils.isStandardKeyword(key) pour ignorer les mots-cles standard (FITS).
    • A: c'est fait j'ai retiré toute colonne qui est un mot clé standard FITS.
  • Pour définir l'ordre / l'unicité des colonnes, il faudrait utiliser en priorité 1. OutputParams, 2. InputParams, 3. Hard coded (result).
  • Q: faut-il trier les colonnes par leur nom et par origine (Output, Input, Result) ?
    • AR: je trie les colonnes par priorité dans ResultSetTableModel, ce qui me permet ensuite d'éliminer facilement les "doublons". Je donnerai un ordre d'affichage différent dans BasicTableSorter. Il me semble que HardCoded.INDEX vient en premier, et HardCoded.COMMENTS en dernier, dans l'affichage actuel.
      EDIT: ce n'est pas dans BasicTableSorter que je dois trier les colonnes pour l'affichage. Cette classe là ne s'occupe que de trier les lignes.
    • L: je vais modifier BasicTableSorter pour qu'il gère la liste des colonnes (filtrée et ordonnée à afficher) en m'inspirant de ce qui était fait dans SearchCal:
  • A: bug pointeur nul "résolu" avec : if (value = null) success = (boolean) value; En effet la méthode getTableCellRendererComponent de TableCellRenderer peut avoir le paramètre value à null. Cela a aussi résolu le bug de déplacement des colonnes. Il semble qu'il était généré lorsqu'on déplaçait la colonne sur une des colonnes à pointeur nul. Comme il réessayait de déplacer en boucle, il générait une exception en boucle.
    EDIT : ah non il reste encore un bug de borne de tableau. Pour l'instant je n'arrive pas à le reproduire systématiquement.
  • A: je vais commiter la fusion des colonnes. Notes:
    • Le déplacement des colonnes par "drag&drop" ne fait pas partie de Table Editor et surtout n'est pas couplé avec ResultSetTableModel. En conséquence, si on drag&drop des colonnes pour les mettre où on veut, et qu'on utilise le Table Editor pour ajouter une colonne, on a perdu notre ordonnancement par drag&drop, puisqu'il n'était pas répercuté sur le modèle ResultSetTableModel.
    • Les renderer ne fonctionnent que pour une seule colonne. Maintenant que le Table Editor permet d'ajouter plusieurs colonnes Rating, seule la première d'entre elles est rendue avec des étoiles.
    • Que pensez-vous de retirer la possibilité d'ajouter une même colonne plusieurs fois ? Je doute de l'utilité et je trouve que ça rend l'interface un peu confuse.
      • Je vois pas l'interet d'avoir plusieurs colonnes rating ! pas compris.
      • L: les colonnes doivent être uniques (cf plus haut): unicité sur Name seulement, d'où le besoin de définir la priorité Output > Input > Result pour avoir un état reproductible qui ne depend pas de l'ordre de parcours des resultats
      • Il suffit d'utiliser un Set ou LinkedHashSet pour avoir un set ordonné dans l'ordre d'ajout
        • A: On est d'accord pour les colonnes Rating, mais c'est le code actuel. Je vais le modifier du coup pour ne pas laisser ça possible.
        • A: Unicité sur Name oui, mais la seconde liste de colonnes, celle qui est donnée en retour de Table Editor, permet en fait les doublons. Le tri des doublons se fait sur la mise à jour de la première liste des colonnes. mais je vais changer ça.
        • L: Effectivement, cet editeur doit avoir en entrée et en sortie une liste de ColumnDescriptors => unicité en entrée et en sortie à gérer en amont et dans le composant
        • A: merci pour LinkedHashSet ça va être plus propre

Action Laurent: modifier jmcs TableSorter pour gérer la liste des colonnes à afficher: List<String> comportant le nom des colonnes (unique dans l'ordre souhaité)

Vendredi 10

  • A: Réfléchi à la structure des Header.
    • ResultSetTableModel doit être capable de donner la valeur d'une case à partir de son index. Elle doit donc maintenir une liste ordonnée des colonnes.
    • La liste des colonnes ne doit pas contenir de duplicas (le but est de grouper les colonnes identiques des différents ServiceResult).
    • Certaines colonnes sont "en dur" ("hard-coded"). Je pense que ce serait bien que ce soit un Enum et non une chaîne de caractère.
    • Selon moi la classe ColumnKey de Martin est la bonne solution, je propose de la transformer un peu pour qu'elle utilise des Enum.
    • Ensuite, il y a la question de récupérer la valeur de la case correspondant à la colonne. A mon avis ce n'est pas à la classe ColumnKey de faire ça, mais à ResultSetTableModel.

Jeudi 9

  • A: créé une branche locale sur un clone du dépôt de martin pour faire des essais. Réussi à corriger l'affichage du dialog de sélection des colonnes du tableau.
  • AQ: je ne parviens pas à trouver un commit commun entre la branche tabledynamic de martin et la master d'oimaging du JMMC. J'aurais voulu repartir de là pour créer une branche sur mon dépôt et appliquer les modifications de martin qui concernent seulement le tableau dynamique. Du coup je vais carrément copier les fichiers de martin.dynamic-table pour mon premier commit de branche locale. On verra ce que ça donne. Si vous avez une meilleure idée je prend.
  • A: commencé à réfléchir sur la fusion.

Bilan d'installation

  • A: openjdk 8 et 11 étaient déjà installés sur l'ordinateur (apparemment 11 automatique et 8 privé)
  • A: Maven 3.6.3 installé grâce à Synaptic
  • A: NetBeans installé grâce au fichier Apache-NetBeans-12.4-bin-linux-x64.sh venant de https://netbeans.apache.org/download/nb124/nb124.html
    Pendant l'installation, j'ai décoché Java EE et Java SE car je ne savais pas s'il s'agissait seulement de plugins ou bien de JDK. Dans une étape suivante j'ai sélectionné le répertoire de OpenJDK Java 8. Après installation de NetBeans, j'ai installé les plugins NetBeans Maven 4.43 et Java 1.47
  • A: fichier ~/.m2/settings.xml créé avec le contenu suivant :
    <settings>
        <!-- offline
        | Determines whether maven should attempt to connect to the network when executing a build.
        | This will have an effect on artifact downloads, artifact deployment, and others.
        |
        | Default: false
        -->
        <offline>false</offline>
        <profiles>
            <profile>
                <id>dev</id>
                <properties>
                    <!-- disable jar signer -->
                    <jarsigner.skip>true</jarsigner.skip>
                    <!-- disable javadoc -->
                    <maven.javadoc.skip>true</maven.javadoc.skip>
                    <!-- disable tests -->
                    <maven.test.skip>true</maven.test.skip>
                </properties>
            </profile>
        </profiles>
        <activeProfiles>
            <activeProfile>dev</activeProfile>
        </activeProfiles>
    </settings>
  • A: Installer NetBeans avec FlatPak est une mauvaise idée. La Java Platform est alors dans un répertoire /app/jdk, qui n'existe que pour FlatPak. Aussi, NetBeans est alors incapable de trouver d'autres répertoires jdk installés sur la machine. Ce qui empêche par exemple de sélectionner JDK Java 8.
  • A: Le Run d'OImaging a bugué sûrement parce que JMCS a été installé avec une version précédente de NetBeans (10.0). Résolu en le recompilant avec NetBeans 12.4. Donc il vaut mieux compiler tous les projets avec le même environnement de dev. D'ailleurs, si on utilise le script build_gui.sh, qui utilise la commande mvn, il faut aussi vérifier avec mvn -version que la version java utilisée par maven est celle qu'on souhaite.
  • A: il faut sélectionner une Java Platform depuis NetBeans. En effet utiliser java-update-alternatives pour changer /usr/bin/java* pose problème avec des logiciels qui assument une version java défaut plus récente (ex mozilla firefox).
  • A: Dans les options Java -> Maven, vérifier que ce n'est pas le maven home bundled mais pointer sur la version installée sur l'ordinateur

mercredi 8

  • A: inscription TWiki (note pour les suivants : l'inscription ne dit pas "OK" mais "Attention" et le mail de confirmation est envoyé manuellement donc pas immédiatement)
    • G: Fixé : on a maintenant: "Thank you for registering / Your registration request has been sent to TWiki administrator for approval. You will receive an e-mail to confirm your registration"
  • A: passe de l'incident pour mauvais nom de compte sésame de priorité faible à haute
  • A: lecture Git (staging area, branches..)
  • A: installation de NetBeans 12.4 FlatPak (à la place de 10.0 Synaptic)
  • AQ: la page http://www.jmmc.fr/twiki/bin/view/Trash/JmmcSoftwareNetBeans a l'air obsolète, est-ce que les options netbeans indiquées sont encore pertinentes ?
    • L: non, obsolete
  • AQ: activation du plugin NetBeans Java SE. Un warning est apparu pour me demander d'installer "nb_java truc" mais je n'ai pas eu le temps de lire. Important ?
    • L: Oui, installer ce module permet à netbeans de compiler à la volée les modifications ...
    • A: il s'agit de "nb-javac". en bas à droite de NetBeans un petit panneau rouge permet d'afficher un lien qui installe le plugin qu'il faut.
  • A: lecture Maven basique et lecture des POM de OImaging et ParentPOM
  • AQ: pourquoi la dépendance org.restlet.ext.fileupload du POM OImaging est dans le dossier lib (d'ailleurs les versions sont différentes) ?
    • L: cela semble obsolete (c'était utile quand la librairie restlet a été supprimé de maven central !); je ferai le ménage (TODO: LBO)
  • A: Fin d'installation de NetBeans
  • A: Comparaison de ma branche avec celle "table-dynamic" de Martin
  • A: étude du bug des JList de Table Editor. Il semble que le layout rende la première incapable d'afficher ses éléments. De plus la première n'affiche pas les labels des mots clés. La seconde quant à elle semble incapable d'afficher son contenu.

mardi 7

  • A: mise à jour système Linux Mint (note : c'est long même sur ce pc puissant)
  • A: installation du plugin Maven et test d'ouverture de projet (succès)
Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng Capture_dcran_du_2021-09-16_17-37-03.png r1 manage 32.8 K 2021-09-16 - 15:39 AntoineKaszczyc error when clicking on MainPanel.java in NetBeans
PNGpng Capture_dcran_du_2021-09-22_13-48-11.png r1 manage 45.0 K 2021-09-22 - 11:49 AntoineKaszczyc navigator no visual components
PNGpng capture.png r1 manage 9.2 K 2022-05-16 - 13:09 AntoineKaszczyc schéma du mécanisme de sélection des données et leur trajet jusqu'au Viewer
SVG (Scalable Vector Graphics)svg colander-est.svg r1 manage 78.3 K 2022-05-16 - 13:09 AntoineKaszczyc schéma du mécanisme de sélection des données et leur trajet jusqu'au Viewer
SVG (Scalable Vector Graphics)svg colander.svg r1 manage 79.7 K 2022-05-16 - 13:09 AntoineKaszczyc schéma du mécanisme de sélection des données et leur trajet jusqu'au Viewer
Unknown file formatdia data-selection-mechanism.dia r1 manage 5.2 K 2022-05-16 - 13:09 AntoineKaszczyc schéma du mécanisme de sélection des données et leur trajet jusqu'au Viewer
PNGpng data-selection-mechanism.png r2 r1 manage 112.8 K 2022-05-16 - 13:17 AntoineKaszczyc  
SVG (Scalable Vector Graphics)svg data-selection-mechanism.svg r1 manage 21.3 K 2022-05-16 - 13:09 AntoineKaszczyc  
Unknown file formatdia data-structures.dia r2 r1 manage 5.1 K 2022-05-12 - 14:25 AntoineKaszczyc  
SVG (Scalable Vector Graphics)svg data-structures.svg r2 r1 manage 143.8 K 2022-05-12 - 14:25 AntoineKaszczyc  
Unknown file formatdia general-view.dia r2 r1 manage 1.4 K 2022-05-12 - 14:00 AntoineKaszczyc  
SVG (Scalable Vector Graphics)svg general-view.svg r2 r1 manage 20.0 K 2022-05-12 - 14:00 AntoineKaszczyc  
Compressed Zip archivetar maquette.tar r1 manage 1640.0 K 2021-09-24 - 14:38 AntoineKaszczyc Maquette OImaging interface
Unknown file formatdot oimaging-diagram.dot r1 manage 1.5 K 2021-12-06 - 12:06 AntoineKaszczyc  
SVG (Scalable Vector Graphics)svg oimaging-diagram.svg r1 manage 7.8 K 2021-12-06 - 12:06 AntoineKaszczyc  
PNGpng viewer-panel.png r1 manage 47.6 K 2022-05-16 - 13:09 AntoineKaszczyc schéma du mécanisme de sélection des données et leur trajet jusqu'au Viewer
Edit | Attach | Watch | Print version | History: r72 < r71 < r70 < r69 < r68 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r72 - 2022-05-16 - AntoineKaszczyc
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback