cvičení 10 - Reflection

Java Reflection API

Reflection

V projektu  cvičení 1 , cvičení 2, cvičení 3

Upravte třídu lab.gui.EditController tak aby bylo možno editovat vlastnosti (properties) jakékoliv třídy s využitím Java Reflection.

  • V metodě setObjectToEdit použijte Introspector k získání BeanInfo pro detekci java properties (kombinace getter a setter metod) a přidejte dialogový řádek pro každou property
  • V metodě btnOkAction přeneste data z textových polí zpět do java properties objektu
  • Vytvořte anotaci @MyEdit pro možnost nastavení atributů pouze pro čtení (readOnly) a viditelnosti (visible) každé java bean property
  • Použijte anotaci MyEdit k zobrazení pouze těch vlastností, které mají stejné jméno jako instanční proměnná s anotací @MyEdit a použijte nastavení z anotace @MyEdit ke skrytí vlastnosti nebo k jejímu nastavení pouze pro čtení.
  • Nastavte vlastnost id jako skrytou.
  • Nastavte vlastnost name pouze pro čtení
  • Použijte java lokalizaci (ResourceBundle, Locale) pro překlad názvu vlastností v dialogu. Vytvořte "resource bundle" jménem msg pro několik jazyků.

Použijte např. parametry -Duser.language=cs -Duser.country=CZ

Způsob odevzdání

Řešení domácího úkolu odevzdejte do systému Kelvin jako úlohu "Java 1 - domácí úkol z 3. cvičení". Do systému nahrejde celý obsah složky src a soubor pom.xml (prípadně run skript). Postupujte dle níže přiloženého vide.

Následně bude projekt zkompilován a provedou se Unit Testy. Vzhledem k povaze projektu a prozatímnímu testovacímu využití systému Kelvin v předmětu Java 2 v případě selhání nezoufejte.

Jedná se o pomocný test, vše bude ještě hodnoceno ručně. Důležité je nahrát soubory aby bylo možno vše vyhodnotit a provést analýzu na plagiáty. Věřím, že je to je formalita a všichni z Vás tvoří vlastní kód.