Práce:Plugin do vývojového prostředí IntelliJ IDEA (BP/DP)

Z HelpDesk

Zadání vypsal: Ing. Lukáš Valenta
Rezervováno: ne

Vývojáři IS/STAG používají námi vyvinutý nástroj, který slouží k volání databázových dotazů a tvorbě nad nimi postavených reportů. Bohužel nám chybí nástroj na komfortní editaci atributů, vývojáři zatím informace sepisují ve formátu JSON, který byl zvolen jako rozumné, nicméně prozatímní řešení.

Poptáváme vytvoření pluginu do vývojového prostředí IntelliJ Idea, který by vytvořil v GUI „okénko“, které bude umožňovat atributy komfortně editovat (a výsledek bude ukládat do zmíněného JSONu). Naše představa je velmi blízká tomu, jak se ve vývojových prostředích editují například vizuální komponenty, tj. „něco takového“ (to okénko vpravo – „Inspector“):

New plugin intellij.png

Technická představa:

Náš modul se neustále vyvíjí a možnosti v popisu entit se v JSON průběžně rozšiřují. Ideální by bylo, kdyby modul uměl na základě nějakého popisu struktury souboru (např. XML/JSON schématu) vygenerovat podobu okénka. Nutně na tom však netrváme:

  • Jednoduchá varianta:
    • Okénko bude napevno naprogramované na podobu JSONu, která je nyní.
  • Máme k dispozici XML/JSON schema, které popisuje výsledný JSON, okénko by se umělo adaptovat podle průběžně aktualizovaného schématu.
    • Pro zacatek nam staci podporovat tyto datove typ / moznosti:
      • retezec, cislo (zadava se normalne v nejakem malem input boxu)
      • boolean - zaskrtavatko. Ale melo by to byt takove to zaskrtavatko se tremi stavy. Stav zaskrtnuto, stav nezaskrtnuto a pak takovej ten stav "prazdnej", jako ze neni ani jedna z voleb (protoze nektere checkboxy maji defaultni hodnotu, pokud nejsou vyslovene nastaveny, na true a nektere na false).
      • nektere typy jsou komplexni - udelat to asi rozklikavaci (aby to jakoby ukazovalo, ze data tvori stromovou strukturu)
      • elementy mohou byt maxOccurs="unbounded". Tohle musi GUI respektovat a umoznit to asi nejak "rozklikavat", umoznit pridat dalsi a umoznit smazat stavajici.

Zcela konkrétní detaily zadání bychom vyjasnili na schůzce.