Čas:22.2.2010 12:44:26
Od:Ondrej Medek
Předmět:Zahrnuti i core Java Swing trid
Odkaz "Celý aspect je k dispozici zde." nefunguje. Skoda, ze to nefuguje i pro knihovny nekompilovane skrze AspectJ. Hlavne tridy z Java Swing by take potrebovali hlidat. Muze se treba stat, ze programator nastavi DISPOSE_ON_CLOSE, ale pak okno programove schova (setVisible(false) pri stisku nejakeho tlacitka) a na dispose() zapomene.
Čas:22.2.2010 13:28:42
Od:Zdeněk Troníček
Předmět:Re: Zahrnuti i core Java Swing trid
Jde o to, kde je volani konstruktoru. Pokud je v moji tride, aspekt to ohlida. Pokud je nekde ve Swingu, tak ne. Jinak o tech nefunkcnich odkazech vim. Nevim ovsem, jak je opravit. Nicmene verim, ze webmaster to zvladne.
Čas:22.2.2010 15:46:00
Od:Ondrej Medek
Předmět:Re: Re: Zahrnuti i core Java Swing trid
Aha, takze kdyz new Window() je v mem kodu, ale dispose() uvnitr Swingu, tak to kontrola bude fungovat? Dalsi problem je, kdyz se okno zobrazi v aplikaci vicekrat (coz se bezne deje): - setVisible(true), dispose(), setVisible(true), setVisible(false). Tvoje kontrola dopadne dobre, ale ve skutecnosti je to spatne. Problem s Window je ten, ze ma vlastne 5 operaci: - new - allocate graphics memory - show - hide - deallocate graphics memory Ve Swingu je (asi pro snadnost pouziti) spojili takto: - new - setVisible(true) = allocate + show - setVisible(false) = hide - dispose() = hide + deallocate (Coz jsem se i snazil na konferenci vysvetlit, ze to je podle mne spatne, ale nikdo se mnou nesouhlasil). Proto musis ty joint pointy v AspectJ navesit na setVisible(true) a dispose().
Čas:22.2.2010 16:02:52
Od:Zdeněk Troníček
Předmět:Re: Re: Re: Zahrnuti i core Java Swing trid
Po dispose() neni povoleno volat setVisible(...). Pripustne je new - setVisible(true) - setVisible(false) - setVisible(true) - dispose(). Ale ne new - dispose() - setVisible(true).
Čas:24.2.2010 8:43:59
Od:Ondrej Medek
Předmět:Re: Re: Re: Re: Zahrnuti i core Java Swing trid
Ale po dispose() jde volat znovu setVisible(true), viz Javadoc http://java.sun.com/javase/6/docs/api/java/awt/Window.html#dispose%28%29 A ja to bezne pouzivam.
Čas:24.2.2010 14:58:31
Od:Zdeněk Troníček
Předmět:Re: Re: Re: Zahrnuti i core Java Swing trid
Mas pravdu. Skutecne to mozne je. Pokud to tak pouzivas, tak by byl lepsi pointcut na setVisible().
Čas:22.2.2010 16:07:02
Od:Zdeněk Troníček
Předmět:Re: Re: Re: Zahrnuti i core Java Swing trid
Ohledne toho, zda by to fungovalo pro pripad, kdy je new v mem kodu a dispose() ve Swingu: nefungovalo. Aspekt sleduje new a dispose() jen v mem kodu.
Čas:22.2.2010 17:41:20
Od:Tomáš Homola
Předmět:Re: Re: Re: Re: Zahrnuti i core Java Swing trid
A nezkoušel si třeba load time weawing, který by při načítání swing tříd pokusil aplikovat tvůj aspect i na ně?
Čas:23.2.2010 10:45:30
Od:Zdeněk Troníček
Předmět:Re: Re: Re: Re: Zahrnuti i core Java Swing trid
To je dobry napad. Bohuzel vsak AspectJ neumi weaving trid z baliku java.* a javax.*.
Čas:23.2.2010 19:21:03
Od:Tomáš Homola
Předmět:Re: Re: Re: Re: Re: Zahrnuti i core Java Swing trid
ajo vidíš, na tohle jsem úplně zapoměl :) Hmm, tak nic...
Čas:23.2.2010 13:06:54
Od:goddard
Předmět::)
ja myslel ze tohle "vi kazdy". teda aspon pokud ma zkusenost s j2d, swingem nebo ostatnimi knihovnami. konec koncu je tohle chovani popsano i v dokumentaci...
Čas:24.2.2010 8:52:58
Od:Ondrej Medek
Předmět:Re: :)
Kupodivu to kazdy nevi a nekdy i mistr tesar se utne. (Napr. i v teto knihovne http://www.java4less.com/print_java_e.htm nebylo casto volano dispose()). Navic jak se ukazuje, ani Zdenek nezna Swingy do detailu, kdyz nevi, ze po dispose() lze okno opet zobrazit :-)
Diskuzní příspěvky
Ondrej Medek Zahrnuti i core Java Swing trid
Zdeněk Troníček   Re: Zahrnuti i core Java Swing trid
Ondrej Medek   Re: Re: Zahrnuti i core Java Swing trid
Zdeněk Troníček   Re: Re: Re: Zahrnuti i core Java Swing trid
Ondrej Medek   Re: Re: Re: Re: Zahrnuti i core Java Swing trid
Zdeněk Troníček   Re: Re: Re: Zahrnuti i core Java Swing trid
Zdeněk Troníček   Re: Re: Re: Zahrnuti i core Java Swing trid
Tomáš Homola   Re: Re: Re: Re: Zahrnuti i core Java Swing trid
Zdeněk Troníček   Re: Re: Re: Re: Zahrnuti i core Java Swing trid
Tomáš Homola   Re: Re: Re: Re: Re: Zahrnuti i core Java Swing trid
goddard :)
Ondrej Medek   Re: :)