PK;}D7META-INF/MANIFEST.MFMLK-. K-*ϳR03MuI,.RHM)/.OMHaS#̔r`+rPK=DOSPK =;7edu/PK =;7 edu/oswego/PK =;7edu/oswego/hci/PK =;7edu/oswego/hci/hci520/PK =;7 edu/oswego/hci/hci520/slideshow/PK =;7$edu/oswego/hci/hci520/slideshow/res/PK I;7P v-edu/oswego/hci/hci520/slideshow/res/empty.pngPNG  IHDR<<N%gAMA aIDAThCA 0PWnzP-ou<>;{5:&7AwwA+=܆|FHJFHJFHJFHJFHJFHJFHJFHJFHJFHJFH<cʤ񷏔9W_eIENDB`PK a;7b,edu/oswego/hci/hci520/slideshow/res/next.pngPNG  IHDR<<N%sRGBgAMA a cHRMz&u0`:pQ<BIDAThCUEp?JLPAQ2+PP H1(*&1#`YT f (Xw;\sP?קoի޽ۯ]-OJ~g嗼Vzz]jz뭇~n+&M0Ao||?\tL3$6 Z?+Wj?/_s5cƌ:tavqǝ}ٗ^zǍy%qʏ:Çr)'O;wn R2^t Bl$[~Ŋ3f8O8+ͤ&<_}Ղ |ӧs9{o[k֋2}w>26mڰas^,ôk5jo_k__2s=h*istej 2K>)s/dC'm,[>#'[Vah~#l Zg[Q9Q3u4!7iy0Z%3 ׎oHǑ4L܌]@1nq1GpKd0eʔ<լCiht"@0~iKgF0F i.iml}n>PzT[lxz}@رc+ #Oazv·.@Wabk&ΞzZ Ӂ0 .7!0~ i7@ Wr㭬8リVO 4İ&nziR?zrsv5X& k4Ф)t](';P p+ 7t^zOܿ$KdMf)o?t E Ƿh6’GM :U{2Dp7.ьO?=C)e&f};#*O!M&7>hv͉ 1n &y^{554]tKpʨhl*Pg%-ra`Gm5Ș`A|7hN :@q5F\#?Md&Dx +X1f+ . }.M(q;I<g2I@$r&bPIp+vG# rBTBX3ۍTSqϙ*!R?9pG&+vi09|IsO/)0 bQ$ i(:.|YȈ tK(]TErZ6K>`3c=@|ׇ:mc m(ђЖ!H~:W9 X:6ij,o:Ge ˕Zfn58_T9xܘ RRi28Xpw\wxI=RD'cM` taȅDɣB-An̵x?BARy8L_,wG%Wu+-ݕ( qۤޔ+!A71@u$fp;qTacM-[$k:4v J҉gBt59-t6UyNoV{G3f錝{h?ˍ̊*|tߨ*ƨMMw{fi]к~0 \"nD>=d+LsJA8rAw0t8,MRvxRq{)sGG2|2 ?z2_(7,2|n9]EqwG]4Xt!sw:n 5^.|]" JVWaX0tK%4=Ƴio28w_.A[njLG=#GܚJU.(8c;b^{=!&4V6)'STM3np~~ʷC}}_zz`ZlAU_c*e<߆ _3g̙3;~駗,Y_|y?kL['ܿk CZ(feV\_r%'p~QG'tҩzir)'x1sGzƍK}? j#@4th>zꩋ/⊇zhѢE+V/MC?`}OE|0eʔg}KZt(sٱ{W/^,dB}*G A:?W_}EEޅ~j䡉9駟>f̘oI7 ٠ h?qolc74-wyqGKJqok:#<+$GcMQB:Xo_h)Gk<-) .^x]PpW)1@@ b 7zsesGO6H/#(?Cހ*,ZzBAt#ҋe{Ltiw5JA вe}z- hp ?}]_|:uPL5%5kȑ#|BeAGӠz~w}x(2{-OLt 7@m\.DL4 +eX_~9lҀdouUl 0Y尢Al9{BB}_ =.3bBc=浸|e1)Gj,d %jI9~:#;?0 Z/s9,>,1,JJK h wy@lF .|'&NxYgU A￿|Ws)gQYԉ JPn#Ɠ9uY-gy瞓Z/RkVext,W͙_]ƼF lf/q:i|a\ve[o@ D^[mՎ;[nq[l)le:ˑ 14  P+(vCha&@q-LSD<[o;;5vy祵,;j:K!@7y^D@"{9j)<][bf46^fR-#z4$l͆nvہ&lr!&¼B61@kOCl28mgqƅ^Xp++oR^D>.ZWe]v۝vډ`vuW.,)+@B`XQo9hd/,%;0;+k)4㋚R´QH[À.3mf-83ݨz׬Ț+f ~v.=ýS0rRvS$"]q4j10O7|ѣGK 㧹1]A{l<4n]RJ62*K>M%b80M2@ܤTtMw}o)$%YXh&h:+80[wu enaV -/Θ1c9)pƝZ jmݖaj^Mg7hhLhS.qmZucfkםgfGXB'li]T16x,LSܮ@ӂG=LYʑI3Y QT2?-_w\j):ҥK1 4TG'֢7!G*9e#p ΐT'U QdoFf 5[<הSX $vbeLG'@ ^z@wu׉Ŵ,d@ :{5F{キhx575৷_\T[ 6o9ɧxpC-ѷr$޾棎ef(a0"#WB$Ib=̝0΋GEn&EHk(vli+ʭDMP̊$YOV>(w's@*2EG-&*k>tN2䣓$tԢiK*BuU$q x݁ևsՓd$5w+ P+Z QrcErRx;~:Q&}lmGCvt:ָe!5 )H#?ek0b9A7xr<]g9}c#F 3ijF101(+1[Fl ? D> #5Tw7⸂#,c =|S"d?[5Z[ C-ܿL[U \}] a|9%$k*84: jݠ[hi+WY-U-$F>C)2U9,d,[XO*ksXzm^7 rz⦯9'Md'>YwOGGtTTd %?zvSr~7nλw[OݱRd-Wa25swTfeIENDB`PK r;7bI599-edu/oswego/hci/hci520/slideshow/res/pause.pngPNG  IHDR<<N%sRGBgAMA a cHRMz&u0`:pQ<IDAThCEp_ETVUX*(t́,`(EZZR|LX9HAY1a^3?8s^Xlꙷy+@e˖[j~?|ݺuO>… ,XpW{{ko喇~xڵ~iw=IWk;~٠O_?a„YLr_uUΞ={wމ'xꩧo4B/Ib_;_|]w(]v٢EV^袋nJuZ<<裧rW\|V@{xR?~/xtI=P*'_Mvڒ%Kn \4\l/@ o3=cƌO>i3.k'N|39,XCpalR3ZO:{ _} _~͛L$kHJ=R8N@ouCC2g\wm!bHh.]zqqy4!>&[ zkRpWpCJ| w2z;NUm͞M4IL/]+B ,>.vA+q)*VT :[!3QVv3hݑGMnׯ__(AYdPcrpGsR)Url q}G9'^{5Ks 3+_NQy'WBmn;N\uqB\ !+`" *.R."IA,FIRK<`E_Gi@9{ B[Ӗqyp?s'pakQ ʜ{1}'xw3hZwqmɫ9?NV PzY.O.fÌuZiZ^\w衇^^{&(+4=s}I3E*"ڸfZ̚5 *cA<}̘1 T2:3#Fop0I}b4EzsjA观"r j+ PZ:κKD;t G RI'nuо?~8R#4J M^bg3F2X1!̭ Mcz4h"h *2p;LH! epCH8ŋMq~h:5h;qFzN<*駟J+.&h.2aY͎ h=6#7ƫDaZQh6J<H tF$br,7n5\chXwSA_~)06@3#\T07xÚ +@Y6YN_C?5=oꑡx_2k"AG4+Lt4d:% joc+8C7LtN]gĐ3vYމ!c(ɠ@(MR!b bs4w/`M >d-Fv@[ B:PZlLf 1LG4x`Z:sJNîBApA@;@ =g}oi8$7ie>|x 1F'jO3j@'ib7e/[L~﨤ô!8diX(RqEU4@My1=dSʐ S[R 4駟.t@9WQ<uQMyM-]1UHI]u@C rNiH=GnR ΀KӸL=@{:,# LQ#4C =+m3θ;;f+n{!|m1x: PB qvuf舄<:m{#L$LqMyOtEă>xԩÆ pRV tVQFCi. %($0vnYONSbZEFvHxxZ℘P73pE0H_t6yJ(w*8Gm\E;h,g QcG E=bD1#'Ж$sk<4뚉. "\D8VxkcY7}<(O&"[_ @_ca'x<{ C&C:*S[IQkr܉Mw+Z<7Q\YȎ DT[Yy[pBL>(X1m3`WVeqYR +Ե2',ɭHT7bRL> m2xt,W9 K ^|Z{*Ǜޑ[%1!51H98;%fO܋˯4X@5.+׎!*OLq2@ C(Fp77؃+,{y:v7 ydscB35.`WzI)Af 1>`}YSHxX:$ ?)Ty07Q]͍:uf$'^JͅVSBY/.ysbw1|1n0)|w!p|5_'Z'iЪt|_˗]@3s,bj}[9r$p3{G wLS׎,bK}*pCY 5Cp+$]HH\s=I%gk9Āe-I]wB BAIdIENDB`PK =;7S,edu/oswego/hci/hci520/slideshow/res/prev.pngPNG  IHDR<<N%sRGBgAMA a cHRMz&u0`:pQ<dIDAThCUyb,?hYR sVR`,l&@TLQ b€0?5oϝ!|?{9k^;t_k@ZO?~s~O?W_}کS6yd믿~ƌ?_5dL׆h \kaN:;93< .K/&Mtgwqrȡz'^qZ8eC϶5B]؉12nf `qbm5]K_5poFpOgwŊ~u،??駟NZ3g4Q ?QХ$ٞ RSO=UùAL:E>}*otpW_F⋣rUt:oÔ)S̑!WZ$^bpw}FnqqƝp oq֍;~7p)Piq.eq0 =uz|;>غO>{tMڵp&­8|# z}GcǎeOv ɈCu}ZZ \8F?c+L<(*ܽ"%Yfm:>]sڴiFȢZ|ȃw}]tҥK,[ӡ>{=1Dp)T7<t"A&Y/s0rGyd?iAx뮻<-|m2:8fĔJL5I.֒h;{ܹJ߳:Ov{e?> jDFh^ `}5Z9vmĜk{A+Əe[ D 0aMwGĠf^:cY@Gz+XJj.б;^REY:C]Q`19@nUs=0bZԴmm0HFx* KIhX@7oiª>6(SIu0DՐw}Qv씦FK.Dh--Y*U@v6-w=9Uz< w%0]a6p?c@uȶ[n뮻h#QFઙ41DizhuW`$aV=ms̱ 2dV[m馛QK7; pbmfv#Z4AcyWK u%8cYA_AS; ֶ~{PcjV ǺٝC. ;o&W t"J|ny | q)'N$J! pE6 8"HГo;tsf=SxFM8)۪hc :e}}u@QGe5A/dcхz ?p!0ơ.7K4n=`]a.e3Cu䈦htkqn@0"M6لNX Rg&mȦiIlHp:aZ(D\ A9EP|>11e3(1]g4)Q%|+Z1{ܽNDӯRI[8jISOdfR9J~Zhᄏ1 :aMGfEX:LTP8,Urr4}tl`Ö%2+/ɝ ~;8%yD-W]uSxʽNRa%d`Me$\2[x@z٪d!]dÍ~5VǘsYYr-^@+Y}@ܕyx֗SdǹW1ЭHPN͑5;[ѣG+BBv4]a$K=9>8ꇛ$fq+dac2݂7=%p9li^/IkA"H6fYU! t"7HUP3Ū{5_Rs7OCsdwՍe i-0&CY@L\Ճ}*W_xy,'G5 nt]3 ^fR7|?4;m$VoYb!<" 01Q=my53wC9䥗^yT+zJTaZ0$6YA3&ܮ onVj eS1e]vGM = ,} {>oflSZ:,&MP .F=>;CgTw . #KSO'On tl桇6EќFeOa1^# չB/G}tȑW_}uO=Cat75)~…/"s9(sq|lٲ[3<{?A3\FiG cpR\+gtM|^{v K.vmj+Xr-~mt7h#.?Fv\ʃR n3YIZ>lm&/Rxm2#nb 6{2 mhvuM6qwQ_]w@F11V b aKs%no'tA7L-f%cCw}!MK/NiaȐ!'% Fs{ap^7}ɵEt'~f\ ⦔͇~"l;W^ErjLS:܈7s94 ThR?32DEX|u?𾬠$JnH ]cHިYaM,и pbV4"~=m]%7b%K*DDZErqx1$$yJH3<ӄnzxעl!8dBdTlLZC܀pnHrwhU]1.$:&zWPREr/~8[ĚW3 f3wװx'@@Q@?Uxh{"&uM' ~os;6pKFeeO?tm^ YĞ\䍛/]+bf"@3k֬J?;4 #{To Kы# 4w})::#hq d~駟{- sc Es#!ȃՆFft-j#^:u*X4DڸiXy믿JB; +1r|:: -O޸ 2|hV938N}tM!:*j G&+Bp$tv.I IlC9S<̉K(DAOtW؞H} hTח4z]vmݼ_AamGZ&6- ¸77߄*!{".Yj24^n.IcɰS#bfwg@7.n.:i:qG=vГ;b@C]tU@Ŀ ֘c.[ fήpS\@heh& (%*n1a8oɶ4b:S.:)rtQ4k9;b [/ I| DEYpݡ #Rgt+ q|g_3d_/>"塙!ryt.`݂0Jt+VaCySw;O3#N'~qC?b(@9eѱ |{]gM+]I/pX,gL[.cZXSLYrL=Ɍkd*f Rz-9mɜfI9RQa O'R6;PEcK^$gO\[\^7m4W8p&f/RBn𑯀`hTkO~jg4%w vyh7>4v-_긿"p&% 7er n0aS [RAkϧQm4]]*#.Eߚ`"6ͧ쩒p\ӂY${Mw@g@{ޞst9*D> wXKDXytY͟ A/%#.Ȩ9L ڐGZR  TW /s6Pbl6`)M;ΐ4#d_np+L7;ʙK! =(N|xw).^qeߏ86('J*vtbz}* *L t ‹qvqryIHaE>ru_^0Xck,(=or2_E?~ S4IENDB`PK O;7= -edu/oswego/hci/hci520/slideshow/res/start.pngPNG  IHDR<<N%sRGBgAMA a cHRMz&u0`:pQ<IDAThC^pHoH/p) 4J Hk RZ,xw,'==쳻&w^3Ϝ9'3gG_ R~1c?XdE\^xaFr]tQ_oy>O>ߴu[|ŗ\rɥ^zZb%F]oko O*)^6/:u-^ݸ? ezg 7@qW_曏ƳIM~3A@_^ve{7vN-E:ݮzO8S_zέz5\cҡEӠu; mf:ꨧz* (p:U;f?D߂~va({jY2,Й!>?~]vydJ iq ![QѢ|j&s-n'|~ZȚh!z1I¼ 7+>\S2N S7_|mhWhxWK%~]wݕ+5(ֳ&~ =F[P N! n]?N; /B֦Jpön{W+?UEJ0ڈ by:kw~衇atr*Gb-QQkoDaP3 nyO9wq޼ytOӅ Z#^jvp͌4[aB4kbhE腲EvVe,ktV+eGpG biz4Í~!_x6:XK./B43Z\>R'A6ʡ[;va1n8bm馛p23 َ4a+fNo/D#+.>IwL7R!0GW{!QݺJ~m}wAq尋>w<̂(MÚ&-.'&~V25PգBV[me2tNm|26\.Uć[<$,V<Jcᇖ"NS契]vof frC$(G=Q&! 4p#ʵ^+- J2#8,fQR욮-.hWzuYiYfY<1I18F@{; otC4!yΜ9&f-e4 ~-/ƍSYuUo=s7`u0^m^z%kκFX;w"<@='OS%RsNkz뭻n:kꫯ,n{h9ymH%@G.^4qèY&7>l@3kl`pZ(=oxH"u3O>$s9}Lͺx VL )4@+8^3݆u1bzC` hṕP,,#(C)p@ Rʮ(SF[eU@ ٮ=ă~u{" ?f/Bvh=1D{~v=li5+| ge@E8NOˣKպVI-2OKfp/7믿hL'g8 hˊ6H"r-/ Z FT."N8-{ۍYq0h|HGj@T'y \DfC&&zA{챎4*lljgƵ=Z!q49p)-]=4 [(Ƭ&n5uym~\mg?6\EȎK|vx㍉dVz+plíБuSٴl xYe^7@lKaz " :zk-%éed%f)h7*zӶjK=@G9? +- \%/:<-M%x@h5,>ɧQu2Ӻ%120K/Ժ>m>\LConxn}4t6ۑR* Z9@al3dκ`MC4B$R{}%T 0e,j顸"Js25(\JPx`fXˁr67AN5hIxS9uE3P6wE+[⦚Kj-}ꩧ@A d۱-H%pԆSf\Q " & 4$?PSx܀@衖1l#re <F SPd84JZ]JjU!ˇhC<ƽ-GqƓc L#J=(&Elv I4K}~ }Z1́DI]Jע[J$IArkA,sSpC!4ROn[-:Y%$9 ȭv%9|KVT8u9_B "^%qƏvQ8ZЇݔ!Iy%'|]/M9*gs9{/\^L"̄^hN?t*FPC{}>7O5ǰ8S$ʝKx+-pMu6uT1G7ňċ@\|бJ:]W|n}r/ 4qWР[_f[eȻ뮻iIqF@XeAlKeh6q}lʺVݚ_[/d&9Mj bDfzh8#z8g/Ak-f%vIENDB`PK |D7%4edu/oswego/hci/hci520/slideshow/SlideShowGUI$1.class1\.edu/oswego/hci/hci520/slideshow/SlideShowGUI$1java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$1;actionPerformed(Ljava/awt/event/ActionEvent;)V ,edu/oswego/hci/hci520/slideshow/SlideShowGUI access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel; "!,edu/oswego/hci/hci520/slideshow/PictureLabel #$setText(Ljava/lang/String;)V & '(access$11(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)I * +,access$22(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;I)V . /0access$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector; 243java/util/Vector 56get(I)Ljava/lang/Object;8java/lang/String : ;$ setPicture 2= >?size()IAjavax/swing/ImageIcon @ D EFsetIcon(Ljavax/swing/Icon;)VHZEnd of slide show reached. Start over with "reset" of choose different folder with "open". J KLaccess$4C(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/Timer; NPOjavax/swing/Timer QstopS(java/lang/ArrayIndexOutOfBoundsExceptioneLjava/awt/event/ActionEvent;aioobe*Ljava/lang/ArrayIndexOutOfBoundsException; SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ * ?   * * Y%`)* * -* %179PM* %* -<* * -<)* @YBC* G* IM 7:R& A CD:E;F`GqH}IK TU;LVWXYZ [PK |D7ohh4edu/oswego/hci/hci520/slideshow/SlideShowGUI$2.class1Z.edu/oswego/hci/hci520/slideshow/SlideShowGUI$2java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$2;actionPerformed(Ljava/awt/event/ActionEvent;)Vjavax/swing/JFileChooser   setFileSelectionMode(I)V ! ,edu/oswego/hci/hci520/slideshow/SlideShowGUI "#access$5E(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/JButton; % &'showOpenDialog(Ljava/awt/Component;)I ) *+access$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector; -/.java/util/Vector 0removeAllElements 2 34access$22(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;I)V 6 78getSelectedFile()Ljava/io/File; : ;<access$6?(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;Ljava/io/File;)V > ?@access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel;Bjavax/swing/ImageIcon A EGF,edu/oswego/hci/hci520/slideshow/PictureLabel HIsetIcon(Ljavax/swing/Icon;)VKCFolder loaded successfully. Use "start" or "next" to view pictures. EM NOsetText(Ljava/lang/String;)VeLjava/awt/event/ActionEvent;chooserLjavax/swing/JFileChooser; returnValI SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ * Q   XYM,,* $>=* (,* 1* ,59* =AYCD* =JL* ST UVW'X/Y:ZK[W]*XXPQPRS?TUVWX YPK |D7,4edu/oswego/hci/hci520/slideshow/SlideShowGUI$3.class1S.edu/oswego/hci/hci520/slideshow/SlideShowGUI$3java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$3;actionPerformed(Ljava/awt/event/ActionEvent;)V ,edu/oswego/hci/hci520/slideshow/SlideShowGUI access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel; "!,edu/oswego/hci/hci520/slideshow/PictureLabel #$setText(Ljava/lang/String;)V & '(access$11(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)I * +,access$22(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;I)V . /0access$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector; 243java/util/Vector 56get(I)Ljava/lang/Object;8java/lang/String : ;$ setPicture 2= >?size()IAjavax/swing/ImageIcon @ D EFsetIcon(Ljavax/swing/Icon;)VHZEnd of slide show reached. Start over with "reset" of choose different folder with "open".J(java/lang/ArrayIndexOutOfBoundsExceptioneLjava/awt/event/ActionEvent;aioobe*Ljava/lang/ArrayIndexOutOfBoundsException; SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ * b   ~* * Y%`)* * -* %179FM* %* -<* * -<)* @YBC* G 7:I"d fg:h;i`jqk}m ~~KL;BMNOPQ RPK |D74edu/oswego/hci/hci520/slideshow/SlideShowGUI$4.class1O.edu/oswego/hci/hci520/slideshow/SlideShowGUI$4java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$4;actionPerformed(Ljava/awt/event/ActionEvent;)V ,edu/oswego/hci/hci520/slideshow/SlideShowGUI access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel; "!,edu/oswego/hci/hci520/slideshow/PictureLabel #$setText(Ljava/lang/String;)V & '(access$11(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)I * +,access$22(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;I)V . /0access$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector; 243java/util/Vector 56get(I)Ljava/lang/Object;8java/lang/String : ;$ setPicture=javax/swing/ImageIcon < @ ABsetIcon(Ljavax/swing/Icon;)VD`Beginning of slide show reached. Start over with "reset" of choose different folder with "open".F(java/lang/ArrayIndexOutOfBoundsExceptioneLjava/awt/event/ActionEvent;aioobe*Ljava/lang/ArrayIndexOutOfBoundsException; SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ * r   k* * Y%d)* * -* %1793M* % * )* ?* C 7:E"t vw:x;yMz^{j} kkGH;/IJKLM NPK |D7̰ zz4edu/oswego/hci/hci520/slideshow/SlideShowGUI$5.class14.edu/oswego/hci/hci520/slideshow/SlideShowGUI$5java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$5;actionPerformed(Ljava/awt/event/ActionEvent;)V ,edu/oswego/hci/hci520/slideshow/SlideShowGUI access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel; "!,edu/oswego/hci/hci520/slideshow/PictureLabel #$setText(Ljava/lang/String;)V & '(access$4C(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/Timer; *,+javax/swing/Timer -starteLjava/awt/event/ActionEvent; SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ *    S* * %) ./012 3PK |D7tX24edu/oswego/hci/hci520/slideshow/SlideShowGUI$6.class1B.edu/oswego/hci/hci520/slideshow/SlideShowGUI$6java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$6;actionPerformed(Ljava/awt/event/ActionEvent;)V ,edu/oswego/hci/hci520/slideshow/SlideShowGUI access$4C(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/Timer;  javax/swing/Timer !stop # $%access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel; ' ()access$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector; + ,-access$11(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)I /10java/util/Vector 23get(I)Ljava/lang/Object;5java/lang/String 798,edu/oswego/hci/hci520/slideshow/PictureLabel :; setPicture(Ljava/lang/String;)VeLjava/awt/event/ActionEvent; SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ *    e)* * "* &* *.46 ())<=>?@ APK |D7JW4edu/oswego/hci/hci520/slideshow/SlideShowGUI$7.class1K.edu/oswego/hci/hci520/slideshow/SlideShowGUI$7java/lang/Objectjava/awt/event/ActionListenerthis$0.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)VCode    ()VLineNumberTableLocalVariableTablethis0Ledu/oswego/hci/hci520/slideshow/SlideShowGUI$7;actionPerformed(Ljava/awt/event/ActionEvent;)V ,edu/oswego/hci/hci520/slideshow/SlideShowGUI access$4C(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/Timer;  javax/swing/Timer !stop # $%access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel;' )+*,edu/oswego/hci/hci520/slideshow/PictureLabel ,-setText(Ljava/lang/String;)V / 01access$22(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;I)V 3 45access$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector; 7 89access$11(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)I ;=<java/util/Vector >?get(I)Ljava/lang/Object;Ajava/lang/String )C D- setPictureeLjava/awt/event/ActionEvent; SourceFileSlideShowGUI.java InnerClassesEnclosingMethod0  8 *+ *    =* * "&(* .* "* 2* 6:@B <==EFGHI JPK |D7Acc2edu/oswego/hci/hci520/slideshow/SlideShowGUI.class1(,edu/oswego/hci/hci520/slideshow/SlideShowGUIjavax/swing/JFrameopenLjavax/swing/JButton;nextprevstartpauseresetpicture.Ledu/oswego/hci/hci520/slideshow/PictureLabel;controlLjavax/swing/JPanel;timerLjavax/swing/Timer;picturesLjava/util/Vector; Signature&Ljava/util/Vector;currentPictureI STARTTEXTLjava/lang/String; ConstantValue/Use the "open" button to open a picture folder. ENDREACHEDZEnd of slide show reached. Start over with "reset" of choose different folder with "open". BEGREACHED"`Beginning of slide show reached. Start over with "reset" of choose different folder with "open". OPENSUCCES%CFolder loaded successfully. Use "start" or "next" to view pictures.()VCode * &' ,  .  0  2  4 #6java/util/Vector 5* 9 ;javax/swing/Timer=.edu/oswego/hci/hci520/slideshow/SlideShowGUI$1 <? &@1(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)V :B &C#(ILjava/awt/event/ActionListener;)V E Gjavax/swing/JButtonIjavax/swing/ImageIcon KMLjava/lang/Object NOgetClass()Ljava/lang/Class;Q res/open.png SUTjava/lang/Class VW getResource"(Ljava/lang/String;)Ljava/net/URL; HY &Z(Ljava/net/URL;)V F\ &](Ljavax/swing/Icon;)V _ aOpen Fc desetToolTipText(Ljava/lang/String;)Vg.edu/oswego/hci/hci520/slideshow/SlideShowGUI$2 f? Fj kladdActionListener"(Ljava/awt/event/ActionListener;)Vn res/next.png p rNextt.edu/oswego/hci/hci520/slideshow/SlideShowGUI$3 s?w res/prev.png y {Previous}.edu/oswego/hci/hci520/slideshow/SlideShowGUI$4 |? res/start.png  Start.edu/oswego/hci/hci520/slideshow/SlideShowGUI$5 ? res/pause.png  Pause.edu/oswego/hci/hci520/slideshow/SlideShowGUI$6 ? res/reset.png  Reset.edu/oswego/hci/hci520/slideshow/SlideShowGUI$7 ?javax/swing/JPaneljava/awt/FlowLayout &(I)V &(Ljava/awt/LayoutManager;)V   add*(Ljava/awt/Component;)Ljava/awt/Component;,edu/oswego/hci/hci520/slideshow/PictureLabel &e  setHorizontalAlignment setHorizontalTextPositionjava/awt/BorderLayout *   setLayoutNorth  )(Ljava/awt/Component;Ljava/lang/Object;)VCenter"Basti's Super Slide Show Sensation  esetTitle  setSize(II)V  setLocationRelativeTo(Ljava/awt/Component;)V  setDefaultCloseOperation   setVisible(Z)VLineNumberTableLocalVariableTablethis.Ledu/oswego/hci/hci520/slideshow/SlideShowGUI; loadPictures(Ljava/io/File;)V  java/io/File  listFiles()[Ljava/io/File;  isDirectory()Z  getName()Ljava/lang/String; java/lang/String  toLowerCasejpg endsWith(Ljava/lang/String;)Zjpeggifpng getPath   separatorCharC  replace(CC)Ljava/lang/String; 5  (Ljava/lang/Object;)ZpathLjava/io/File;files[Ljava/io/File;ifilenamemain([Ljava/lang/String;)V *args[Ljava/lang/String;access$0^(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ledu/oswego/hci/hci520/slideshow/PictureLabel;access$11(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Iaccess$22(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;I)Vaccess$3B(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljava/util/Vector;access$4C(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/Timer;access$5E(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;)Ljavax/swing/JButton;access$6?(Ledu/oswego/hci/hci520/slideshow/SlideShowGUI;Ljava/io/File;)V SourceFileSlideShowGUI.java InnerClasses!     !#$ &'(+*)*+*-*/*!1*$3*5Y78*:YлAD*FYHY*JPRX[^*^`b*^fY*hi*FYHY*JmRX[o*oqb*osY*ui*FYHY*JvRX[x*xzb*x|Y*~i*FYHY*JRX[*b*Y*i*FYHY*JRX[*b*Y*i*FYHY*JRX[*b*Y*i*YY**^W**xW**W**W**W**oW*Y***Y*****ö* X***ӱ-9- 0123!<,?BO]PfQu`abpqr)2A\et  %* +(+M>z,2 *,2d,26,2%,2,2 ,2/:*8 W,.  .?Pat~4  t  (5  (%*%(%*+-(&*+-(%*8+ (%*D)!"(%*^#$(&*+%&':<fs|PK |D7H1edu/oswego/hci/hci520/slideshow/SlideShowGUI.java/* * SlideShowGUI.java * Author: B. Tenbergen [ http://www.tenbergen.org | nanoprobe19@gmx.net ] * Date: 2007-09-27 */ package edu.oswego.hci.hci520.slideshow; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.Timer; import javax.swing.JFileChooser; import java.awt.FlowLayout; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.Vector; /** * A simple GUI class for a slide show. Takes care of image IO and program logic, too. * @author B. Tenbergen [ http://www.tenbergen.org | nanoprobe19@gmx.net ] * @version 2007-09-27 * @since 2007-09-27 */ public class SlideShowGUI extends JFrame { //buttons to control the program private JButton open; private JButton next; private JButton prev; private JButton start; private JButton pause; private JButton reset; //picturelabel will contain the picture and status messages private PictureLabel picture; //contains all buttons private JPanel control; //changes the slides after timeout occurs private Timer timer; //contains the paths and file names to some pictures private Vector pictures; //a pointer indicating which picture we are currently looking at private int currentPicture = -1; //some status messages private final String STARTTEXT = "Use the \"open\" button to open a picture folder."; private final String ENDREACHED = "End of slide show reached. Start over with \"reset\" of choose different folder with \"open\"."; private final String BEGREACHED = "Beginning of slide show reached. Start over with \"reset\" of choose different folder with \"open\"."; private final String OPENSUCCES = "Folder loaded successfully. Use \"start\" or \"next\" to view pictures."; /** * Constructs a new Slide Show GUI. Also assigns all eventhandlers * to all buttons and the timer. */ public SlideShowGUI() { //initialize the collection that holds references //to the pictures pictures = new Vector(); //initialize the timer and add the eventhandler timer = new Timer(2000, new ActionListener() { public void actionPerformed(ActionEvent e) { picture.setText(""); try { ++currentPicture; picture.setPicture(pictures.get(currentPicture)); } catch (ArrayIndexOutOfBoundsException aioobe) { if (currentPicture > pictures.size()) currentPicture = pictures.size(); picture.setIcon(new ImageIcon()); picture.setText(ENDREACHED); timer.stop(); } } }); //initialize the open button open = new JButton(new ImageIcon(getClass().getResource("res/open.png"))); open.setToolTipText("Open"); open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int returnVal = chooser.showOpenDialog(open); if(returnVal == JFileChooser.APPROVE_OPTION) { pictures.removeAllElements(); currentPicture = -1; loadPictures(chooser.getSelectedFile()); picture.setIcon(new ImageIcon()); picture.setText(OPENSUCCES); } } }); //initialize the next button next = new JButton(new ImageIcon(getClass().getResource("res/next.png"))); next.setToolTipText("Next"); next.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { picture.setText(""); try { ++currentPicture; picture.setPicture(pictures.get(currentPicture)); } catch (ArrayIndexOutOfBoundsException aioobe) { if (currentPicture > pictures.size()) currentPicture = pictures.size(); picture.setIcon(new ImageIcon()); picture.setText(ENDREACHED); } } }); //initialize the previous button prev = new JButton(new ImageIcon(getClass().getResource("res/prev.png"))); prev.setToolTipText("Previous"); prev.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { picture.setText(""); try { --currentPicture; picture.setPicture(pictures.get(currentPicture)); } catch (ArrayIndexOutOfBoundsException aioobe) { if (currentPicture < 0) currentPicture = -1; picture.setIcon(new ImageIcon()); picture.setText(BEGREACHED); } } }); //initialize the start button start = new JButton(new ImageIcon(getClass().getResource("res/start.png"))); start.setToolTipText("Start"); start.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { picture.setText(""); timer.start(); } }); //initialize the pause button pause = new JButton(new ImageIcon(getClass().getResource("res/pause.png"))); pause.setToolTipText("Pause"); pause.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { timer.stop(); picture.setPicture(pictures.get(currentPicture)); } }); //initialize the reset button reset = new JButton(new ImageIcon(getClass().getResource("res/reset.png"))); reset.setToolTipText("Reset"); reset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { timer.stop(); picture.setText(""); currentPicture = 0; picture.setPicture(pictures.get(currentPicture)); } }); //make sure all buttons are in center of top row control = new JPanel(new FlowLayout(FlowLayout.CENTER)); control.add(open); control.add(prev); control.add(start); control.add(pause); control.add(reset); control.add(next); //make sure picture and status msgs appear in middle picture = new PictureLabel(STARTTEXT); picture.setHorizontalAlignment(JLabel.CENTER); picture.setHorizontalTextPosition(JLabel.CENTER); //set layout properties this.setLayout(new BorderLayout()); this.add(control, BorderLayout.NORTH); this.add(picture, BorderLayout.CENTER); //set of rest of the JFrame options this.setTitle("Basti's Super Slide Show Sensation"); this.setSize(800, 600); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } /** * Parses a path to a directory and reads all jpg, jpeg, gif and png files * recursively from the dir structure and adds them to the collection. * @param path Path to a parent directory that recursively contains pictures */ private void loadPictures(File path) { File[] files = path.listFiles(); for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) loadPictures(files[i]); else { if (files[i].getName().toLowerCase().endsWith("jpg") || files[i].getName().toLowerCase().endsWith("jpeg") || files[i].getName().toLowerCase().endsWith("gif") || files[i].getName().toLowerCase().endsWith("png") ) { String filename = files[i].getPath().replace(File.separatorChar, '/').toLowerCase(); pictures.add(filename); } } } } /** * Start the program * @param args n/A */ public static void main(String[] args) { new SlideShowGUI(); } }PK #}D7}=s2edu/oswego/hci/hci520/slideshow/PictureLabel.class1J,edu/oswego/hci/hci520/slideshow/PictureLabeljavax/swing/JLabelimageURLLjava/lang/String;(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethis.Ledu/oswego/hci/hci520/slideshow/PictureLabel;s setPicture     resizePicture+(Ljava/lang/String;)Ljavax/swing/ImageIcon;  setIcon(Ljavax/swing/Icon;)Vii java/io/File  !#"javax/imageio/ImageIO $%read.(Ljava/io/File;)Ljava/awt/image/BufferedImage; ' ()getWidth()I + ,) getHeight .'/java/awt/image/BufferedImage .+2javax/swing/ImageIcon .4 56getScaledInstance(III)Ljava/awt/Image; 18 9(Ljava/awt/Image;)V;java/io/IOExceptionfilenameoldImageLjava/awt/image/BufferedImage;ioeLjava/io/IOException; target_widthI target_heightoldWidth oldHeightnewWidth newHeight SourceFilePictureLabel.java! >*+  "#  N*+*** +,-  f |+Y+ MN*&>**6,-6,0616ok6"**6ok6 661Y,37: F59:=AB#C)D/H5I8KENLORQcVgWk\ ||<=>d=>?@_AB#YCB)SDB/MEB8+FBgFBEGBkGBHIPK "}D7w 1edu/oswego/hci/hci520/slideshow/PictureLabel.java/* * PictureLabel.java * Author: B. Tenbergen [ http://www.tenbergen.org | nanoprobe19@gmx.net ] * Date: 2007-09-27 */ package edu.oswego.hci.hci520.slideshow; import javax.swing.JLabel; import javax.swing.ImageIcon; //import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /** * This class essentially is a Image-enabled JLabel with some * special functionality to resize pictures maintining the aspect * ratio. * @author B. Tenbergen [ http://www.tenbergen.org | nanoprobe19@gmx.net ] * @version 2007-09-27 * @since 2007-09-27 */ public class PictureLabel extends JLabel { //the path name to the picture private String imageURL; /** * Constructs a new JLabel. Does not take care of any image functionality. * @param s Some text that appears on the Label as well. */ public PictureLabel(String s) { super(s); } /** * Sets an image into the JLabel and resizes it to fit the * entire JLabel * @param ii The path to the image. */ protected void setPicture(String ii) { imageURL = ii; this.setIcon(resizePicture(imageURL)); } /** * Resizes a picture, if necessary, maintaining the aspect ratio. * @param filename A fully qualified path to a file that is an image. * @return a new ImageIcon made from the resized picture that can be placed into the JLabel */ public ImageIcon resizePicture(String filename) { if (filename == null) return null; //read in the image BufferedImage oldImage; try { oldImage = ImageIO.read(new File(filename)); } catch (IOException ioe) { //should never occur since only valid filenames are passed //to this method return null; } //some variables to reduce the computation overhead int target_width = this.getWidth(); int target_height = this.getHeight(); int oldWidth = oldImage.getWidth(); int oldHeight = oldImage.getHeight(); int newWidth, newHeight; //if picture is larger than the target size... if (oldWidth > target_width){ newWidth = target_width; //...stretch height maintining aspect ratio newHeight = ((int) (((double) target_width / (double) oldWidth) * oldHeight)); //if it is a portrait rather than a landscape... if (oldWidth < oldHeight) { newHeight = this.getHeight(); //...stretch width instead of height newWidth = ((int) (((double) target_height / (double) oldHeight) * oldWidth)); } } //do not change picture resolution if picture is smaller than the target else { newWidth = oldWidth; newHeight = oldHeight; } //create a new image icon from the rescaled image //and return it. Magic! :-) return new ImageIcon(oldImage.getScaledInstance(newWidth, newHeight, Image.SCALE_FAST)); } /* protected void paintComponent(Graphics g) { super.paintComponent(g); this.setIcon(resizePicture(imageURL)); } */ }PK;}D7=DOSMETA-INF/MANIFEST.MFPK =;7edu/PK =;7 edu/oswego/PK =;7edu/oswego/hci/PK =;7 edu/oswego/hci/hci520/PK =;7 Aedu/oswego/hci/hci520/slideshow/PK =;7$edu/oswego/hci/hci520/slideshow/res/PK I;7P v-edu/oswego/hci/hci520/slideshow/res/empty.pngPK a;7b, edu/oswego/hci/hci520/slideshow/res/next.pngPK ;7,edu/oswego/hci/hci520/slideshow/res/open.pngPK r;7bI599-!edu/oswego/hci/hci520/slideshow/res/pause.pngPK =;7S,0edu/oswego/hci/hci520/slideshow/res/prev.pngPK ;7##-?edu/oswego/hci/hci520/slideshow/res/reset.pngPK O;7= -Pedu/oswego/hci/hci520/slideshow/res/start.pngPK |D7%4f_edu/oswego/hci/hci520/slideshow/SlideShowGUI$1.classPK |D7ohh4Kgedu/oswego/hci/hci520/slideshow/SlideShowGUI$2.classPK |D7,4oedu/oswego/hci/hci520/slideshow/SlideShowGUI$3.classPK |D74Yvedu/oswego/hci/hci520/slideshow/SlideShowGUI$4.classPK |D7̰ zz4}edu/oswego/hci/hci520/slideshow/SlideShowGUI$5.classPK |D7tX24Uedu/oswego/hci/hci520/slideshow/SlideShowGUI$6.classPK |D7JW4&edu/oswego/hci/hci520/slideshow/SlideShowGUI$7.classPK |D7Acc2wedu/oswego/hci/hci520/slideshow/SlideShowGUI.classPK |D7H1*edu/oswego/hci/hci520/slideshow/SlideShowGUI.javaPK #}D7}=s2Iedu/oswego/hci/hci520/slideshow/PictureLabel.classPK "}D7w 1edu/oswego/hci/hci520/slideshow/PictureLabel.javaPKx