Skip to content

Paketit

Tuomo Oila edited this page Sep 4, 2016 · 4 revisions

This page contains info on the packet structure of the plugin. It's up to date as of 2nd of September, 2016. The page is in Finnish.

icons

Paketti sisältää rajapinnan, jonka kautta lähdekoodissa päästään projektin resurssikansion kuviin käsiksi.

Esimerkiksi (missä tahansa koodia kun halutaan submit-nappi): TmcIcons.SUBMIT_BUTTON

Paketin täytyy olla lähdekoodikansion (src/main/java) juuressa, että IntelliJ osaa käyttää sitä oikein. Rajapintaa voidaan myös käyttää plugin.xml-tiedostossa.

Lisätietoa: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/work_with_icons_and_images.html

fi.helsinki.cs.tmc

Projektin juuripaketti

fi.helsinki.cs.tmc.actions

Paketissa sijaitsevat kaikki pluginin IntelliJ:hin tuomien tapahtumien kuuntelijat - esimerkiksi nappien ja valikoiden painaminen ja projektin käynnistäminen. Luokat perivät IntelliJ:n plugin-kehityksen openapilta sopivan tapahtuma-luokan (esim. AnAction napeille).

Luokat sisältävät mahdollisimman vähän logiikkaa. Logiikka on piilotettu service-pakettiin.

fi.helsinki.cs.tmc.service

Tämä paketti sisältää erilaisia logiikkaa sisältäviä palveluluokkia tapahtuma- ja UI-luokille.

fi.helsinki.cs.tmc.holders

Paketti sisältää luokkia, jotka varmistavat että tietyistä käytetyistä luokista koodissa (esim. TmcCore) on aina vain yksi instanssi käytössä.

fi.helsinki.cs.tmc.importexercise

Sisältää luokat, jotka huolehtivat projektien importtaamisesta IDEA-projekteiksi oikein, että projektin ajaminen onnistuu avaamisen jälkeen. Kahden keskeisen luokan koodi on otettu IntelliJ:n lähdekoodista, mutta aavistuksen modattuna niin että projektien avaaminen projektinäkymän kautta olisi mahdollisimman yksinkertaista. Alun perin luokat toimivat vain “wizardin” kanssa.

Pari pientä mahdollista ongelmaa:
  • Windowsilla tulee “parent does not exist error”, mutta ei näyttäisi haittaavan toimintaa.
  • Harvinainen .idea does not exist bugi missä jostain syystä importtaus ei toimi. Ehdotettu ratkaisu on, että importtaus tapahtuu aina kun on nbproject kansio.

fi.helsinki.cs.tmc.runners

Luokkia, jotka sisältävät toiminnallisuuden TMC-projektin pääluokan valitsemiseen ja projektin ajamiseen.

fi.helsinki.cs.tmc.services

Logiikkaa sisältäviä palveluluokkia.

fi.helsinki.cs.tmc.spyware

TMC-coren spyware-luokat

fi.helsinki.cs.tmc.spyware.spywareutils

Apuluokkia spyware-toiminnallisuutta varten

fi.helsinki.cs.tmc.ui

Käyttöliittymän luokat. Ei sisällä yksittäisiä nappeja, jotka IntelliJ tekee (action-paketin luokat), vaan isommat, Swingillä itse-tehdyt käyttöliitymä-elementit (esim. TMC settings -ikkuna).

Jotkut paketit sisältävät .form-päätteisiä xml-tiedostoja, jotka ovat IntelliJ:n UIDesignerin luomia. UIDesignerin avulla pystyy helposti luomaan käyttöliittymiä.

fi.helsinki.cs.tmc.ui.pastebin

Luokat, jotka huolehtivat TMC:n pastebin-toiminnallisuudesta.

fi.helsinki.cs.tmc.ui.projectlist

Luokat, jotka huolehtivat projektinäkymän (lista TMC-projekteista) luomisesta ja päivittämisestä.

fi.helsinki.cs.tmc.ui.settings

Luokat, jotka huolehtivat TMC settings -käyttöliittymäikkunasta.

fi.helsinki.cs.tmc.ui.submissionresult

Luokat, jotka huolehtivat tehtävän palvelimelle palauttamisen jälkeen palautteen antamisesta käyttäjälle (oikein/väärin yms.).

fi.helsinki.cs.tmc.ui.testresults

Luokat, jotka huolehtivat testipalautteen antamisesta käyttäjälle.