From 7523832089f3c1fcafa0439731539896e0d2c7c0 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Thu, 4 Oct 2012 11:11:13 +0200 Subject: [PATCH] Updated the kieker-jar and some other dependencies; Added the user-properties; Some code-modifications for quality reasons; Refactoring --- Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar | Bin 2136009 -> 2136007 bytes Kieker.WebGUI/pom.xml | 62 ++--- .../application/GlobalPropertiesBean.java | 53 ++++- .../beans/application/ProjectsBean.java | 2 +- .../beans/application/ThemeSwitcherBean.java | 2 +- .../webgui/beans/request/StringBean.java | 5 +- .../session/CurrentConfigurationBean.java | 223 ++++++++++++++++++ .../beans/session/CurrentThemeBean.java | 130 ---------- .../kieker/webgui/beans/session/UserBean.java | 1 + .../beans/view/CurrentAnalysisEditorBean.java | 60 ++++- .../view/CurrentAnalysisEditorGraphBean.java | 80 ++++++- .../webgui/beans/view/CurrentCockpitBean.java | 2 +- .../beans/view/CurrentCockpitEditorBean.java | 2 +- .../beans/view/CurrentControllerBean.java | 23 +- .../view/CurrentProjectOverviewBean.java | 2 +- .../common/ClassAndMethodContainer.java | 14 +- .../webgui/common/IProjectManagerFacade.java | 2 + .../AnalysisInitializationException.java | 2 +- .../exception/AnalysisStateException.java | 2 +- .../exception/DisplayNotFoundException.java | 2 +- .../LibraryAlreadyExistingException.java | 2 +- .../exception/LibraryLoadException.java | 2 +- .../exception/NewerProjectException.java | 2 +- .../ProjectAlreadyExistingException.java | 2 +- .../exception/ProjectLoadException.java | 2 +- .../ProjectNotExistingException.java | 2 +- .../kieker/webgui/common/util/ACManager.java | 4 +- .../kieker/webgui/common/util/Analysis.java | 19 +- .../kieker/webgui/common/util/FSManager.java | 40 +++- .../webgui/common/util/PluginFinder.java | 10 +- .../src/main/resources/global.properties | 14 +- .../resources/kieker-1.6-SNAPSHOT_emf.jar | Bin 2136009 -> 2136007 bytes Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml | 19 +- .../main/webapp/dialogs/settingsDialog.xhtml | 6 +- 34 files changed, 570 insertions(+), 223 deletions(-) create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java delete mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java diff --git a/Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar b/Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar index 3e3f56ed47646c6fe7c628362c8def97ee54533e..4f2a182d6a0105730fc16fd92b1d5b3e3ae9db1d 100644 GIT binary patch delta 48135 zcmX@PzKQYp`X)x+0B>d%E(Qh;28K)@mx;U@f*C$8j<2rt$@VcYFeoxIFo;a|50(?J z|Ll9_w2!y0-bG$-U9EFx&TkGfxMKX^>7%EgywCV<4LWho=d7RZqo-VY9=_*%PW$-j zFs{1Dds62lqgPe4s_31r2CvhfyEk2&swkPcO#01p34u2c<(pP&=&SDM$cu0YtP9I3 z;?$p>p6BS7m6sLA$*6ttO5)aF$HVqJRqQ!eT$FJ+c;dhX58-aJH|rieWnu_`J3G|J zW#TU-=42n2$?}ZaVEO=$#N^qGf=GS?$?~%)PR?WGn7*J|j(ai>I~Q2#5k^zyL?4&Q ze;5tHv;mVdm_Ep4IbDI7krl}dkg|hJ9$;+&+!B+eSp|?}K{hxt+k#~qnJvLIKbyw% zhDmZfXv+REI|?TIxHvK(0oCajOBfZWpS{G$j;6Ym#U5-}BeTZj0#<ZcJu#3&w7@Dn zSY5!hBeTZzf=D@DZdlAh+@>-80J<PQn;lq30GlV6p2KDarvEW3PFGkUCk76tFdvu6 zlI)typ*}8?a|9$N$Fj?V*`QFK&MpmR|6!Dve3o4j%x+|sm>v})CplR_go7ERS(U>8 zOh<6ofa&QRreOL!hc%ey<#Y$r_XQ;;=X2_U*@==8lexK+C*R@};|)U&tLXt-m=vc! zILX8|eZnR=<TwUdHJw9k`v1*xtdn!OxWMK>9LzrbLyR2z<ON)UV8Jb1ddv|%E|YC! zBqsmm5(Ts4gq5f3n=wOD21qi1+XyVt%IyHA9hoI2Kj2mcv(Ix#Ojh7g2D9CGte~{! z<TX5k%&|T$lMnD1gK3C5?&$)_a(qb93R2R_tqc+tot(qV0ajbi>jS16L?tHQ<241d z^Q9yv>+xBD*_nKyVEQ1RA73nTh%iiFaFkU7WSH=D1s4{P$uay~V3nEt!C-nne<YYb z$Y(g6zmG+Da=ZW+*vUBp=3si60K^MW=T2@AWS@TjjvR7Y1BHm9pe0y2D9!yA5Sp%# zAtwM&W05{Cla~o-PJi$KMIT7`zMv~Jh(5rhJbi*BE8FA%Aug~$tdI$qh6FA5^aYu6 zLX&M-IlzKfgzUleeL>~vA2Q{HrcZb&$A%P$AQR(+Ex>Bxgmw5U^butONbZWT3v-%} z%VcR04dzrIm&tl!a?|%_%gIb`5a9p|#0p7FpLdOwZMxn!R^%)SRXq8Dhzi(%IcyS> z<wfPdY>-R4#iWs(0kWb&)E6v!K{Ogn>xnsm=>Rr~$=zaxNNnlp4sY35r$5M(<D4YU z0hUOVGzJNZpqUBL3st`$UygI~0;q=7;@)75KgC19bbv%O*gxweBEWo3$xtvqQ8EzB z50G%2o?j#<1dl3^2lw+!OkX>dO?rBR5j)@XyG2Mb3Gz|CQ~+4-PjSb|8>Cn#b4c@n z`Tv+fJ`$OJp@D;Ya)2}!SWr()XZi+RdGs)B5Y?G3U@R|=<}qGQh!G$i)7L9-vQE~Q zftX_>1Ihb2GV<VT+9#t1rnk%Jf$0}AW*~aAqU>#c<^&&?&Hr_7@`7Bj`L@*`ZcxFs z`Ig&fW-#M|*H$Jlqr>+wgy9#U%m@}K2|NK2u@8yU0gEhX_zBT9r$q~*=47iPgz>gb z62jo@*aKml=xl{B0=myZ7>d377{LX4oc`kVb&L!QyO<alEGJK76rQeMD<?MnUX7ga zW}W^Hi0bVV&M|_jn9UuNDwx0w=BYd!e2G3Tj_&3ESr)P}Fw78{?jX)2Hd$b$)MUG< z5}Q-!Ze#<ilw2YU(QCQX9>S<z<^f?GTdoFSykEf%Vf<Vf$p|)f9(NH>DkB3!2J_^L z%MCV9SX~WKz_->5!iZis1H$;W9%9I3`Hh#r7Jk`S2$9Ly><eM+*pdk`wOGn5HiMmk zVX4Gq#(l2SPu9xuZf@LG#17W?ZLhBYnBjIVkrm8Xb(x0~%-DJ7AjC7Zk4+&`TVI$$ zbiI8)2@(+e2i~vX<zirXBRTp1Mm<nP%s$<rLymj%*&pIuAXBzKXJT9rHfH-wPDWm^ z$=g>7F$zG$_DC=ugSc|_9K{9a*cljfgeC``GnxKQiIHpjIVr|_U<<deS7JN~(NV3* zsLcU3d8Hwv97ODtIio)dSWL!-F`WaHRJOOdFsgx5&-V3hj4vd?VzUw$e?r8jB{TkH z;se#~;k<lKQcMgCJ6I-9V3D1^FPV{jdO@EY+xFvWj4BYt?=l#7fRn`bm0663A*}oy zMp=k#e;y+w<!xV`&-e%;JE4#<2`oGPYcb<#u-%7C82^KXwjV8LoC9%VN(19kaO-9} zPd8%|3s~L6e#YGpmj4t+V~A|)JjO*3F|EanVGvWAmoo0*0{cMn!*R1&j0_A~%%H?5 zJ6&O_9RKv5X>vl_yEiayfh72)EB2p%$Hu_0pPPZfZTiHejG9mtn;6;H!KN(w6tc#F zgMne8z~sPlV$%zzFp7bcNNj(+lhF&}T!TZ5^EtqZjWrkxOV}A0CJ9ddzY(mM57Z*! zm>xY{PGr06X~sHsuxI97Vq6Ph`Q2jN0by}IVq60brRh5!GhPHM>v_W1%mdDtKfI;x zSu-&(__HuDI87F0Rh+I6DaXCt=Ober#M^5>Ggd-an%@``#39;wnU-;aS*GGl0${VZ zdq^<(LV|3D4AU-%Sg0J+Gaj%yJ8h=@V6knwOlc6~GWD6hfXkNc3C2v{1;EOpT$uVG zj(+XU)D2-(1~d7xf@M!eFiC+8+5Rk&=|3Z=Nwxh&G}Av0FzaOs(*%fEO&Zft2+Jjd z=`4gLlEuUcVJT!Y@iT#S809k6LRg#fnF^TsLVa8utCnpMzRS$O5Xw0{a0`>j^n!9G z{^@0l<wUlp7c)I)2I~tfXR>1fvnEwDiL-%OYZ{?q)8Do-{R0V2f7izJ6vWtmt(~bK zqBEnLX%i!;q~0#u%Vf#~W`*`MxkFg<Co=641nHO_vzX~6h_T&c3DZW1hCfT0CbI~F z8hku+ejd|cV_?wXWni$M%*Z7%y?=$A*7irMn2gxKCW>!l(qRU%rn_xndIMr?H{Hr) z1U6@S);6XGAff5L+o24D9ZaXeBL8+Uy$3P2f7r<+0#VJr8!Gg3H`5b{D<AA*+Q`BO za!A*yv(7hI85j(BraNq9Qh+o)IoHZ@Z@+Mu=@Bc~sI4cNlE7}+E_Ie^8-#WF0+R#_ zSoYl&rd1Hu?3+v?5bt$8-Ton(m4Tsw2b3ZixpcR`y~|V!F)jBolNLn%tmjPoA*`4; zOnMMj?+2z#2<zt;re_e-uCJe#WW>V2@STH!Az(5im&tV5O>%tG*Kd*&oSyKNiDSF> zFD4U+(npeUyUkb_7=CjwFa&~?%5Roa*#6`nlLN$5b!KKgh&v)UnEygTBZ8ax0>oF^ z{LE#L@LwXzyau8!SejW0!m3bUE(f>yw|~-LPJx&gsmr_yBFkpXyqpo#g518rggFwz z;xS{+0kfu8n=`)#OJ-UyZ|4NFl%1G!m<1zzTpaBlF+cEOV_-1kV_>kFzA=zlb^B3Q z<~%l#vgu|%%+EoL?FzokK48O^=ld};@_{t=z4(20E&~I@DTe9x^{f)p6+)N=r+?Tb zCoz4WKl5_1u8aU?3y5Ot1u|7aj0_An8K?JOWtN>jA%K~8`;9<m1F)gfxr3SCgLV83 zW>y0WZC49r7GVO5*@iQ(gs@&lGOu9<i_M5-e#Zx9b>=WPLS%XKnN=Yy(?aHAZm{g? z8s<)j4)X?PaTc&xU<>mXh&qpUW(^LoXHHKMw|U9Vz~CV`-7u6{WBR;<a-!RJ_cMQH z2W#0lojC`hSz!)y9Yk#5V&=OLR^w`Be@0$Vm|UNDyjTKM8cr7!XO*0OU?;QK^tp%S z1h&hpWmbaN>A0Rb65L1FK6fYcDu@AI2btGEjQ@F**%snn%ahD&AR+PM6!Uy=tWEE_ z!u%cVo|dc3ArNJ^Z!q(MS<_$NX5I|yjBH<chuMV%%zE*FxrYtRDu2$b4`Ho*%Y2F% zELQfBc|S8JsKXP=!#i*0bi1$2Y4y!h4+ycC7)BjDA`rvdvBKd%zl#-*GLMe2g?0C= zCG#_9*KN<7y)5eXmdrI<J#E9Jr*2t(wo`ri^DpyXyu5$me)X?AGgHeW(?oj$>rWJ< zJwLbi{hsf8-`CFnUaR;2*M0VS_6?HLMW%3+_{=!g@^FjKt!XcB^=0;M^RfK4;o_pD z%j$XV%H~_n+v30N#kQ$MbGP_)^6AdZ$&`P#dfD!`^CmP+I56$D=B(eo*BLD}0`6VB zfBWvu%h&Zc?5*C%b+?Sia`)>SCso?5zNa3y+O#*9Y2m+fwVaLa%pp6TE%~!ye!rdd z+ZSv{wSQONwiepkX*;*}@7{LSs4m~P5{uQ&+TFe6f4RQ*-Wh4rDeo^#R!f~PrqOH8 zbD@c^`bbBTrd-elpM=+MuM2Gv5j`EK8eo{UV{XaLw3lB3qxU@QixqA>z$KbECG<gY zhh~K8hPQlES4Q-jmdN#<t_)sacVW-Zyy?qq);Kv<vh*kHZIWtS=K3@C=ySoP?^E|| z`Cg*3<XDub;LV*|>Thr9nfK+%hKFCW4}0F)y65(_txp=B&G=+{Ida?K+gmlfE-qLk zr&WGV);O4{v%ytIimRvR)tT?dJly?46t2zQw#1+9%oI=WTe_#qOs_BLaERUhwkK`5 zXV#p^(|y}zHu#>tdO4`v_~|U;qO<C}xwi^teV2SU!*<i@3zKI(uANZaQh#7q1OKh# zzx|@$&3HJ=YOYD9$I0VgYog;j%lor0&&ogf?_uH24L{X{4(>|qx!@nW<-%qo2QBNc z*&DtrnY*ZBe$0$IhvGZi+I|Xix(F{XNj~+tw@ICKRgux(<i6TV_fOu6wpx34<K=4{ zQ(KpBO_}w`x_O)Gy@25GaOLmzdi6Ej^?U5Jq)cw6zx~>zbniec*N3NX?mgKV|7eZx zQ9c{j(`Q5YJUG3j>>jE1D2v|cEMq-iAj@62rYrrT;sT$a&OMtd8eT6t66$m`?~S5| zikE5yi&PQA)wiC%8b2tVa{JRT?PB&1i_an@t6ogv(yHYV@+<OKw<`Lm-Is#UX@y4H z*TmKPPj^VRshD)m>EgCF<v<yS^-axZZg3m<xXMQ;F4~;^>dW36p^c0(K?X0BlLZ@> zKQid!SP^m~y)SCk?6MatN=vTT*xvlOjcZRsGFO~PL~M-LQGtCPXV=}$JuUfk7x(tl z@0V_GH(b=95fip!suqvTck_+PE0@ktUiB>FgVo9ep8CgJK56@#6h(zEakbw6o-w(t zXPfh-8t+zJ_EnY-j_dHgw6{(5&}3C-*_F3l@!OP#>{WGIITLpp@JDoJ9xl?J;1t!U zy&;kDtK-ovcal|uV^ccj1Qkl@bLvbyZQ!@__gullC*Rbjiv(A=F8iR*`Q^y&T~^Pn zf1In5VpHMSx9Cy*>P=QUzR|@E2Q<zs<%&#U5{g(l<;1c0ggSn&c}&_*+iw<}y}TiF zW9QV)^Iy-djaT?4nR}!(t+(kxz@5kyoqA$^*Dfv5(LDXUx~Ju+eCnIMNB(wI<g*zn zZul0~F)K9tOqPL>)G3+6sgIuJXy*GCzrI}YM=osf-J{&ctJW8t$giLE)coxBb@Kbd zWzK5{+CM9wy=hYD*{1?$gC6F-zO8dNz*_foagA2$hM0d=8kSF4gF+ANV$EXmy1n4L zguxt<=gEus1UzNz&xIG?I&pg8M4O_*K<Vq*zTGZ2Gp?5^Pra2Zb#kI@TlDMpCjol$ zJe48Y8pa1F^qgDBw93@vx^KB_{qZ+1osYf`5LKO9<Nn|hbAIW;m#M`cKRZtR+}(Bm zaZ}7Yd6skbKTbcr>339qqg&LUJcE^A7l$6(A{gbrF=$?)cV*negY9dte!B9|wleI& z<~jAE0h-|_x69U?%D&30v$N}!_KJB2y&6|XRI|Qbmvnf(r5nSCa!aQ_YnPw1kaJ?L zw+xhZf3<m5)Q>5<4)w>n$JB*6F;*OYb0j(ANwAjI=c-q$Sj~#Ii1^Ojm*&rDlWfj( zO8Ul=na6yOJ-)JG?%8j<OF}+gaWgr+&CmbVOOdr48fn~XW4qS}B(5|3u%_i^w(E`% z7U`$4{U7?OXLFeZ+`QB@=QXEiyPa=+k@TtE6|3tHY-(K7ZT`8?=iQti=GzlBtL^qR zem2e!wdj6vO!7lT{ZBT%xWntN1?YV7*I3BSF*T2OJ;(fmUilApUK6nIY)#v+ouzr> z1=Bb8!>*Y$KW9xV2wAXo&qt{(*%G<E0rJ{W*(PFN-L+DZC-F{|`q#Dcu=$63JQ4T9 zrg_?`CqLcjQNKoMS={l{`^xSwxOR$rMOLhmZ%2h%jpeo{@;~#ZPT#rlc|l|SX2Boa z^@TGzrmS86@O2zdT~GK&Uayna%s=Y#o4kKyS~GiLT>JJ9vNh8Srz=SQlG}G);;rh+ z-;8x0-(`<l)Ex<9vFd!&|IupURF(DrIDczRP^<r~8Lf41;k)^T_1nB+maFamD){_k zv=Hy%h@<z_e_R!F%8}On!Swu|Uv%`%+sAloy2Rc*xpThYTDoOCd-|=TmSvY$+5WJc z|9r#r*Kd!x&I{CA$X@^O&-I)Cq;JbVT+qIOYh8u*`&>=G4=mPBH8&6a=3VvSVCa9% z#??>$F?ni=sy6*glbaImt9Eux{lmQ{+XJ3vA659G@}7m&?}Od(>It9zpLKds`7P#~ z!k76xEqTuzR~X7W+4@E@w1%~uTX2g#fdA?2KMeVkUU24rxo~;aktsY)Db9~nF6~HQ zX`S7~aK(b%VWA}hmng#vopYb_^&0Zh7)vfU_kM^HGE?o?=;V20$|5u7*#d{ZhVs{& zCEB!4U-`K7*MEgMJPmyZ&M;(1M6o#tTTEe`(EV4Ep>_uA>D!SSd*`=KV!2Rwj*sWl zYG;-Uf&2D4Xvd|rS{?f<tJGt1YtiK{!E^Zq&jQa`9=qvt&e$<~@)fg#rv8Oz)j3qy z-wVD7=h*oD=D&uw{FQdv3>Rlx3g~v9U^=@kzJ7h(>EDTNG0AZs&+a~T_`@}(^;zrA zUb%lkbj{v5Yq!>QiiG&A3v$^QfA;gb48x<+O(K&&iw3^A+_q=+ni-E?Rd)THqx*dS zlg~Zk&gnB3WXSzy`=GriRBYnSw%vu>|Gk#b`qb~fjO`EGq$Z8Z)jx%|C+y;%x3ygR z{#1Ld+7)>*4E2Ax&M%DLE#|P_tLxHwt9+5|ixVrCWZS7moA92#+E<zS)VS?irm=~> z!!rYuL)J4ERx+n#{COg5WRf-EYpZ0|M4q$8il;9a<+Jj<jVoO6`#g(x{y~=X%!t5( zy+0+LcYE{b@;mkZ6qt4VLJh;$fPccqTbx*Qr!0KRAfm+((6?~9(0^tXaO=$SKl2S{ z@NjftY}=JcW(J1)9Mc6eShT0-|7RB19>vU318K(HWMhd2k8^J~=V!SI5fc_>ImIjp zYTBtT`LCnE!@%(0fPuk%x}q?P#<Wy9zUi!I<wWY=&iq?0a#iy9{>g9BHqGW#;GE*R zB)~A|%<L$wSr5E<x>Z^PCQGnP+;Nj9@o<{jJHLw0vVp6^vRPLLXiaU>PY^xGv~k~; z10TQ4`FBaas>-ka^N-~JE#KPb)xDp4^XB$Q&k5V*?iyH^zrRyC@44Ogx_5ieACCY3 z`=vNT-Z6D8FOm8!d7ZDLzocAVk$FVdSkk<0_OVIN7Tgo@?R{yOy(BaE(4A{3eJ@Y0 z5H;`JmZ5a<iq(uwlP=D<sx^DX2hE5gJHwstOG>)ixlY~wRb_R1chzr^JNF_rl+x5n z>m<W2`KbI@QM>i`nzL(j10TH3j+YHAXm01ww$qAx^LXub8UJG?X7%geyw1$+{^Ig3 z_x;<~k;@mXobhUjoy_u^*0X+P?7H{(&!U!3sT*D9<h~CHkXrY4Icx5-335kDViqU0 zHASDlFTQ?V#*9uaR?)+|uI4RSvqErjf7GF^;%{a#h@83fz&(<+u4O`(CD*jL1qQsu zg}QUy9~<2Z*>L0X9;fZx!RszBSR`lDAfLRji<L`i*^_c!dⅆ#6K_Hx>{FBMemY; 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 delta 48151 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 L_A*G0fq?-4W+@!e diff --git a/Kieker.WebGUI/pom.xml b/Kieker.WebGUI/pom.xml index 516c51da..6b139ce6 100644 --- a/Kieker.WebGUI/pom.xml +++ b/Kieker.WebGUI/pom.xml @@ -86,157 +86,157 @@ <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> - <version>3.4.RC1</version> + <version>3.4.1</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>black-tie</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>blitzer</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>bluesky</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>casablanca</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>cupertino</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>dark-hive</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>dot-luv</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>eggplant</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>excite-bike</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>flick</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>hot-sneaks</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>humanity</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>le-frog</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>midnight</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>mint-choc</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>overcast</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>pepper-grinder</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>redmond</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>rocket</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>sam</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>smoothness</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>south-street</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>start</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>sunny</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>swanky-purse</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>trontastic</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>ui-darkness</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>ui-lightness</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>vader</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>glass-x</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> <dependency> <groupId>kieker</groupId> diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java index 0b33538d..2a1a7c12 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java @@ -37,15 +37,20 @@ import kieker.common.logging.LogFactory; @ApplicationScoped public final class GlobalPropertiesBean { + private static final Log LOG = LogFactory.getLog(GlobalPropertiesBean.class); + private static final String PROPERTIES_FILE_GLOBAL = "global.properties"; - private static final String PROPERTY_FACES_CONTEXT_THEME_KEY = "kieker.webgui.theme.facesContextKey"; - private static final String PROPERTY_THEME_COOKIE_NAME = "kieker.webgui.theme.cookieName"; - private static final String PROPERTY_DEFAULT_THEME = "kieker.webgui.theme.defaultTheme"; + + private static final String PROPERTY_FACES_CONTEXT_THEME_KEY = "kieker.webgui.config.lookAndFeel.facesContextKey"; + private static final String PROPERTY_THEME_COOKIE_NAME = "kieker.webgui.config.lookAndFeel.cookieName"; + private static final String PROPERTY_DEFAULT_THEME = "kieker.webgui.config.lookAndFeel.defaultTheme"; private static final String PROPERTY_PROJECT_OVERVIEW_PAGE = "kieker.webgui.page.projectOverview"; private static final String PROPERTY_WELCOME_MESSAGE = "kieker.webgui.common.welcomeMessage"; private static final String PROPERTY_SHORT_WELCOME_MESSAGE = "kieker.webgui.common.shortWelcomeMessage"; - - private static final Log LOG = LogFactory.getLog(GlobalPropertiesBean.class); + private static final String PROPERTY_ANALYSIS_EDITOR_GRID_SIZE_COOKIE_NAME = "kieker.webgui.config.analysisEditor.gridSize.cookieName"; + private static final String PROPERTY_ANALYSIS_EDITOR_GRID_COLOR_COOKIE_NAME = "kieker.webgui.config.analysisEditor.gridColor.cookieName"; + private static final String PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_SIZE = "kieker.webgui.config.analysisEditor.defaultGridSize"; + private static final String PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR = "kieker.webgui.config.analysisEditor.defaultGridColor"; private final Properties globalProperties = new Properties(); @@ -91,7 +96,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the key name of the theme within the faces context. + * Delivers the redirecting-link to the project overview page. * * @return The value of the property. */ @@ -116,4 +121,40 @@ public final class GlobalPropertiesBean { public String getShortWelcomeMessage() { return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_SHORT_WELCOME_MESSAGE); } + + /** + * Delivers the name of the cookie for the grid size within the analysis editor. + * + * @return The value of the property. + */ + public String getAnalysisEditorGridSizeCookieName() { + return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_GRID_SIZE_COOKIE_NAME); + } + + /** + * Delivers the name of the cookie for the grid color within the analysis editor. + * + * @return The value of the property. + */ + public String getAnalysisEditorGridColorCookieName() { + return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_GRID_COLOR_COOKIE_NAME); + } + + /** + * Delivers the default grid size within the analysis editor. + * + * @return The value of the property. + */ + public String getAnalysisEditorDefaultGridSize() { + return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_SIZE); + } + + /** + * Delivers the default grid color within the analysis editor. + * + * @return The value of the property. + */ + public String getAnalysisEditorDefaultGridColor() { + return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR); + } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java index 8905b673..d2273bd0 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java @@ -72,7 +72,7 @@ public final class ProjectsBean { * This method does some initialization work after construction. <b>Do not call this method. The method is managed by the class loader.</b> */ @PostConstruct - protected void init() { + protected void initialize() { // Load a list with all available projects on the FS this.projects.addAll(this.projectManagerFacade.listAllProjects()); } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java index fa24366d..1edbb59b 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java @@ -62,7 +62,7 @@ public final class ThemeSwitcherBean { * new themes to the program, this is the right place. */ @PostConstruct - protected void init() { + protected void initialize() { this.themes.put("Aristo", "aristo"); this.themes.put("Black-Tie", "black-tie"); this.themes.put("Blitzer", "blitzer"); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java index 73e3ec17..670ede8f 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java @@ -29,11 +29,8 @@ import javax.faces.bean.RequestScoped; */ @ManagedBean @RequestScoped -public class StringBean { +public final class StringBean { - /** - * The string instance stored within this bean. - */ private String string; /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java new file mode 100644 index 00000000..b8159407 --- /dev/null +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java @@ -0,0 +1,223 @@ +/*************************************************************************** + * Copyright 2012 by + * + Christian-Albrechts-University of Kiel + * + Department of Computer Science + * + Software Engineering Group + * and others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ***************************************************************************/ + +package kieker.webgui.beans.session; + +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.SessionScoped; +import javax.faces.context.FacesContext; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; + +import kieker.webgui.beans.application.GlobalPropertiesBean; + +/** + * The class {@link CurrentConfigurationBean} is a session-scoped JSF bean, containing the properties and configurations of the current (session) user.<br> + * It is session-scoped as only one instance per user is necessary. + * + * @author Nils Christian Ehmke + * @version 1.0 + */ +@ManagedBean +@SessionScoped +public final class CurrentConfigurationBean { + + private String lookAndFeel; + private String gridColor; + private int gridSize; + + @ManagedProperty(value = "#{globalPropertiesBean}") + private GlobalPropertiesBean globalPropertiesBean; + + /** + * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> + */ + public CurrentConfigurationBean() { + // No code necessary + } + + /** + * This method initializes the bean. In fact it loads the default values before trying to load the values of the user from their cookies. <b>Do not call this + * method. The method is managed by the class loader.</b> + */ + @PostConstruct + protected void initialize() { + this.loadDefaultValues(); + this.loadValuesFromCookies(); + } + + /** + * The getter for the property {@link CurrentConfigurationBean#globalPropertiesBean}. + * + * @return The current value for the property. + */ + public GlobalPropertiesBean getGlobalPropertiesBean() { + synchronized (this) { + return this.globalPropertiesBean; + } + } + + /** + * The setter for the property {@link CurrentConfigurationBean#globalPropertiesBean}. + * + * @param globalPropertiesBean + * The new value for the property. + */ + public void setGlobalPropertiesBean(final GlobalPropertiesBean globalPropertiesBean) { + synchronized (this) { + this.globalPropertiesBean = globalPropertiesBean; + } + } + + /** + * The getter for the property {@link CurrentConfigurationBean#lookAndFeel}. + * + * @return The current value for the property. + */ + public String getLookAndFeel() { + synchronized (this) { + return this.lookAndFeel; + } + } + + /** + * The setter for the property {@link CurrentConfigurationBean#lookAndFeel}. + * + * @param lookAndFeel + * The new value for the property. + */ + public void setLookAndFeel(final String lookAndFeel) { + synchronized (this) { + this.lookAndFeel = lookAndFeel; + CurrentConfigurationBean.saveValueInCookie(this.globalPropertiesBean.getThemeCookieName(), lookAndFeel); + } + } + + /** + * The getter for the property {@link CurrentConfigurationBean#gridColor}. + * + * @return The current value for the property. + */ + public String getGridColor() { + synchronized (this) { + return this.gridColor; + } + } + + /** + * The setter for the property {@link CurrentConfigurationBean#gridColor}. + * + * @param gridColor + * The new value for the property. + */ + public void setGridColor(final String gridColor) { + synchronized (this) { + this.gridColor = gridColor; + CurrentConfigurationBean.saveValueInCookie(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName(), gridColor); + } + } + + /** + * The getter for the property {@link CurrentConfigurationBean#gridSize}. + * + * @return The current value for the property. + */ + public int getGridSize() { + synchronized (this) { + return this.gridSize; + } + } + + /** + * The setter for the property {@link CurrentConfigurationBean#gridSize}. + * + * @param gridSize + * The new value for the property. + */ + public void setGridSize(final int gridSize) { + synchronized (this) { + this.gridSize = gridSize; + CurrentConfigurationBean.saveValueInCookie(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName(), Integer.toString(gridSize)); + } + } + + /** + * This method tries to load the default values of the properties from the {@link GlobalPropertiesBean} and the faces context. + */ + private void loadDefaultValues() { + synchronized (this) { + // Get the parameters within the current context. + final Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); // NOPMD (No concurrent access) + // Try to find the default theme within the parameters. + if (params.containsKey(this.globalPropertiesBean.getFacesContextThemeKey())) { + this.lookAndFeel = params.get(this.globalPropertiesBean.getFacesContextThemeKey()); + } else { + // Use the default theme. + this.lookAndFeel = this.globalPropertiesBean.getDefaultTheme(); + } + + this.gridColor = this.globalPropertiesBean.getAnalysisEditorDefaultGridColor(); + this.gridSize = Integer.parseInt(this.globalPropertiesBean.getAnalysisEditorDefaultGridSize()); + } + } + + /** + * This method tries to load the values of the properties from the user's cookies. + */ + private void loadValuesFromCookies() { + synchronized (this) { + // Get the available cookies + final Map<String, Object> cookies = FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap(); // NOPMD (No concurrent access) + + // Now load the values if available + if (cookies.containsKey(this.globalPropertiesBean.getThemeCookieName())) { + this.lookAndFeel = ((Cookie) cookies.get(this.globalPropertiesBean.getThemeCookieName())).getValue(); + } + if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName())) { + this.gridColor = ((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridColorCookieName())).getValue(); + } + if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())) { + this.gridSize = Integer.parseInt(((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())).getValue()); + } + } + } + + /** + * This method saves the given values in a cookie with the given name, using the maximal available age for the cookie. + * + * @param cookieName + * The name of the cookie. + * @param cookieValue + * The value for the cookie. + */ + private static void saveValueInCookie(final String cookieName, final String cookieValue) { + // Create the cookie and make sure that it will be saved for a year (maximum age) + final Cookie cookie = new Cookie(cookieName, cookieValue); + cookie.setMaxAge(60 * 60 * 24 * 365); + + // Deliver the cookie + final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); + response.addCookie(cookie); + } +} diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java deleted file mode 100644 index 741ae8c0..00000000 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java +++ /dev/null @@ -1,130 +0,0 @@ -/*************************************************************************** - * Copyright 2012 Kieker Project (http://kieker-monitoring.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ***************************************************************************/ - -package kieker.webgui.beans.session; - -import java.io.Serializable; -import java.util.Map; - -import javax.faces.bean.ManagedBean; -import javax.faces.bean.SessionScoped; -import javax.faces.context.FacesContext; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; - -/** - * The {@link CurrentThemeBean} contains the current user theme (look and feel) of the (session) user. The default value is the "glass-x"-theme, if no other value - * can be found within the parameters of the faces context or in the cookies of the user. Every change of the theme will also result in storing the new theme within - * the cookies of the user.<br> - * As the theme can be chosen by every user on his own, this class is a session scoped bean. - * - * @author Nils Christian Ehmke - * - * @version 1.0 - */ -@ManagedBean -@SessionScoped -public final class CurrentThemeBean implements Serializable { - - /** - * The serial version UID. - */ - private static final long serialVersionUID = 2919719099912650971L; - /** - * The default theme used for all users. - */ - private static final String DEFAULT_THEME = "glass-x"; - /** - * The key to identify the theme in the cookie. - */ - private static final String KEY_COOKIE_THEME = "theme"; - /** - * The key to identify the theme in the properties. - */ - private static final String KEY_THEME = "theme"; - /** - * The current theme for this session. - */ - private String theme; - - /** - * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> - */ - public CurrentThemeBean() { - this.setDefaultTheme(); - this.searchThemeInCookies(); - } - - /** - * This method sets the current theme of the user to the default theme. This beans that the bean tries to find the name of the theme within the parameters for - * primefaces. If this fail, the default theme will be used. - */ - private void setDefaultTheme() { - // Get the parameters within the current context. - final Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); // NOPMD (No concurrent access) - // Try to find the default theme within the parameters. - if (params.containsKey(CurrentThemeBean.KEY_THEME)) { - this.theme = params.get(CurrentThemeBean.KEY_THEME); - } else { - // Use the default theme. - this.theme = CurrentThemeBean.DEFAULT_THEME; - } - } - - /** - * This method tries to search the theme within the cookies of the user. - */ - private void searchThemeInCookies() { - // Try to find the cookie for the theme. - final Map<String, Object> cookies = FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap(); // NOPMD (No concurrent access) - if (cookies.containsKey(CurrentThemeBean.KEY_COOKIE_THEME)) { - this.theme = ((Cookie) cookies.get(CurrentThemeBean.KEY_COOKIE_THEME)).getValue(); - } - } - - /** - * Delivers the current theme. - * - * @return The currently used theme. - */ - public String getTheme() { - synchronized (this) { - return this.theme; - } - } - - /** - * Sets the value of this bean. This beans that the stored theme will be set to the new value and that the method will try to store the name of this theme within - * the cookies of the user. - * - * @param theme - * The new theme to be stored within this instance. - */ - public void setTheme(final String theme) { - synchronized (this) { - this.theme = theme; - - // Set the theme cookie. - final Cookie cookie = new Cookie(CurrentThemeBean.KEY_COOKIE_THEME, theme); - // Try to save it for a year (maximum age) - cookie.setMaxAge(60 * 60 * 24 * 365); - - // Deliver the cookie - final HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); - response.addCookie(cookie); - } - } -} diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java index c495313c..0e3df0b7 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java @@ -38,6 +38,7 @@ public final class UserBean { private static final String WELCOME_MSG_TEMPLATE = "growlComp.renderMessage({summary : '%s', detail : '%s', severity: 'info'});"; private String userName; + @ManagedProperty(value = "#{globalPropertiesBean}") private GlobalPropertiesBean globalPropertiesBean; diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java index 39ae58cf..decd02f1 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java @@ -31,6 +31,7 @@ import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; +import javax.faces.event.ValueChangeEvent; import kieker.analysis.model.analysisMetaModel.MIAnalysisMetaModelFactory; import kieker.analysis.model.analysisMetaModel.MIDependency; @@ -53,6 +54,7 @@ import kieker.analysis.repository.AbstractRepository; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; import kieker.webgui.beans.application.ProjectsBean; +import kieker.webgui.beans.session.CurrentConfigurationBean; import kieker.webgui.common.ClassAndMethodContainer; import kieker.webgui.common.IProjectManagerFacade; import kieker.webgui.common.ProjectManagerFacade; @@ -144,6 +146,9 @@ public final class CurrentAnalysisEditorBean { @ManagedProperty(value = "#{currentAnalysisEditorGraphBean}") private CurrentAnalysisEditorGraphBean currentAnalysisEditorGraphBean; + @ManagedProperty(value = "#{currentConfigurationBean}") + private CurrentConfigurationBean currentConfigurationBean; + /** * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by JSF.</b> */ @@ -450,6 +455,13 @@ public final class CurrentAnalysisEditorBean { } } + /** + * Delivers the content of the dependencies-field of the given component (plugin or repository). + * + * @param clazz + * The class whose dependencies should be extracted. + * @return The dependencies for the class or a substitute if none is available. This is in either case human readable. + */ public String getDependencies(final Class<?> clazz) { // Get the two potential annotations final Annotation annotationPlugin = clazz.getAnnotation(this.classAndMethodContainer.getPluginAnnotationClass()); @@ -459,8 +471,8 @@ public final class CurrentAnalysisEditorBean { final Method repoDepMethod = this.classAndMethodContainer.getRepositoryDependenciesMethod(); // Now check which one of them is available - if ((annotationPlugin == null)) { - if ((annotationRepository == null)) { + if (annotationPlugin == null) { + if (annotationRepository == null) { // None. Deliver a human readable substitute. return "No dependency information available"; } else { @@ -1003,6 +1015,45 @@ public final class CurrentAnalysisEditorBean { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); } + /** + * The getter for the property {@link CurrentAnalysisEditorBean#currentConfigurationBean}. + * + * @return The current value of the property. + */ + public CurrentConfigurationBean getCurrentConfigurationBean() { + return this.currentConfigurationBean; + } + + /** + * The setter for the property {@link CurrentAnalysisEditorBean#currentConfigurationBean}. + * + * @param currentConfigurationBean + * The new value of the property. + */ + public void setCurrentConfigurationBean(final CurrentConfigurationBean currentConfigurationBean) { + this.currentConfigurationBean = currentConfigurationBean; + } + + /** + * This method should be called if the grid color has been modified. + * + * @param event + * The change event. + */ + public void gridColorListener(final ValueChangeEvent event) { + this.currentAnalysisEditorGraphBean.setGridColor((String) event.getNewValue()); + } + + /** + * This method should be called if the grid size has been modified. + * + * @param event + * The change event. + */ + public void gridSizeListener(final ValueChangeEvent event) { + this.currentAnalysisEditorGraphBean.setGridSize((Integer) event.getNewValue()); + } + /** * This method initializes the modified jit-graph by delivering the necessary javascript commands to the client. It prints all current existing plugins, * repositories and their connections. All further components will be added mostly by other methods. @@ -1049,6 +1100,10 @@ public final class CurrentAnalysisEditorBean { this.currentAnalysisEditorGraphBean.initListeners(); this.currentAnalysisEditorGraphBean.addEdgeConstraints(); + // Now we have to set the default grid size and color of the user + this.currentAnalysisEditorGraphBean.setGridColor(this.currentConfigurationBean.getGridColor()); + this.currentAnalysisEditorGraphBean.setGridSize(this.currentConfigurationBean.getGridSize()); + // Repaint the graph this.currentAnalysisEditorGraphBean.refreshGraph(); } @@ -1157,4 +1212,5 @@ public final class CurrentAnalysisEditorBean { public void edgeRemoved(final MIRepositoryConnector sourcePort, final MIRepository target) { sourcePort.setRepository(null); } + } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java index 723c8751..5a8dd732 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java @@ -50,7 +50,7 @@ import org.eclipse.emf.ecore.EObject; */ @ManagedBean @ViewScoped -public class CurrentAnalysisEditorGraphBean { +public final class CurrentAnalysisEditorGraphBean { /** * This is the log for errors, exceptions etc. */ @@ -115,16 +115,41 @@ public class CurrentAnalysisEditorGraphBean { * This is the javascript code to rename a node within the graph. */ private static final String JS_CMD_RENAME_NODE = "graph.getNode(%s).name = '%s';"; - private static final Object REPOSITORY_INPUT_PORT = "R"; - + /** + * This is the javascript code to enable the grid within the graph. + */ private static final String JS_CMD_ENABLE_GRID = "graph.setGridVisible(true);"; + /** + * This is the javascript code to disable the grid within the graph. + */ private static final String JS_CMD_DISABLE_GRID = "graph.setGridVisible(false);"; + /** + * This is the javascript code to enable the grid snap within the graph. + */ private static final String JS_CMD_ENABLE_SNAP = "graph.setGridSnap(true);"; + /** + * This is the javascript code to disable the grid snap within the graph. + */ private static final String JS_CMD_DISABLE_SNAP = "graph.setGridSnap(false);"; + /** + * This is the javascript code to use the scale-to-fit-function. + */ private static final String JS_CMD_SCALE_TO_FIT = "graph.scaleToFit();"; + /** + * This is the javascript code the set the color of the grid. + */ + private static final String JS_CMD_SET_GRID_COLOR = "graph.setGridColor('%s');"; + /** + * This is the javascript code the set the size of the grid. + */ + private static final String JS_CMD_SET_GRID_SIZE = "graph.setGridSize(%d);"; + /** + * This is the name of the (only) input port of every repository. + */ + private static final Object REPOSITORY_INPUT_PORT = "R"; - private boolean gridEnabled = false; - private boolean snapEnabled = false; + private boolean gridEnabled = false; // NOPMD (The field IS accessed later) + private boolean snapEnabled = false; // NOPMD (The field IS accessed later) /** * This map contains all components (plugins, repositories and ports) within the graph to identify them with a unique ID. @@ -492,6 +517,30 @@ public class CurrentAnalysisEditorGraphBean { } } + /** + * This method sets the color of the grid within the graph. + * + * @param color + * The new color as a HTML color (FF0080 e.g.). + */ + public void setGridColor(final String color) { + final String cmd = String.format(CurrentAnalysisEditorGraphBean.JS_CMD_SET_GRID_COLOR, "#" + color); + RequestContext.getCurrentInstance().execute(cmd); + this.refreshGraph(); + } + + /** + * This method sets the size of the grid within the graph. + * + * @param size + * The new grid size. + */ + public void setGridSize(final int size) { + final String cmd = String.format(CurrentAnalysisEditorGraphBean.JS_CMD_SET_GRID_SIZE, size); + RequestContext.getCurrentInstance().execute(cmd); + this.refreshGraph(); + } + /** * This method scales the graph to fit the current view. After this method-call, all components of the graph should be visible. */ @@ -499,6 +548,9 @@ public class CurrentAnalysisEditorGraphBean { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SCALE_TO_FIT); } + /** + * This method switches the visibility of the grid within the graph. + */ public void switchGrid() { if (this.gridEnabled) { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_DISABLE_GRID); @@ -506,11 +558,13 @@ public class CurrentAnalysisEditorGraphBean { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_ENABLE_GRID); } - this.gridEnabled = !this.gridEnabled; - + this.gridEnabled ^= true; // this.gridEnabled = !this.gridEnabled; this.refreshGraph(); } + /** + * This method switches the grid snap within the graph. + */ public void switchSnap() { if (this.snapEnabled) { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_DISABLE_SNAP); @@ -518,13 +572,23 @@ public class CurrentAnalysisEditorGraphBean { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_ENABLE_SNAP); } - this.snapEnabled = !this.snapEnabled; + this.snapEnabled ^= true; // this.snapEnabled = !this.snapEnabled; } + /** + * Getter for the property {@link CurrentAnalysisEditorGraphBean#gridEnabled}. + * + * @return The current value of the property. + */ public boolean isGridEnabled() { return this.gridEnabled; } + /** + * Getter for the property {@link CurrentAnalysisEditorGraphBean#snapEnabled}. + * + * @return The current value of the property. + */ public boolean isSnapEnabled() { return this.snapEnabled; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java index 0514eb98..7ec0410a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java @@ -47,7 +47,7 @@ import kieker.webgui.common.exception.ProjectNotExistingException; */ @ManagedBean @ViewScoped -public class CurrentCockpitBean { +public final class CurrentCockpitBean { private static final Log LOG = LogFactory.getLog(CurrentCockpitBean.class); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java index 53408e7f..c680b71e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java @@ -63,7 +63,7 @@ import org.primefaces.event.TabChangeEvent; */ @ManagedBean @ViewScoped -public class CurrentCockpitEditorBean { +public final class CurrentCockpitEditorBean { /** * This is the log for errors, exceptions etc. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java index de47d9bb..a49b12e0 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java @@ -23,6 +23,7 @@ import java.io.Writer; import java.util.ArrayList; import java.util.Collection; import java.util.Date; +import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; @@ -48,11 +49,12 @@ import kieker.webgui.common.exception.ProjectNotExistingException; */ @ManagedBean @ViewScoped -public class CurrentControllerBean { +public final class CurrentControllerBean { private static final Log LOG = LogFactory.getLog(CurrentControllerBean.class); + private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); - private final ArrayList<String> logEntries = new ArrayList<String>(); + private final List<String> logEntries = new ArrayList<String>(); private String projectName; @ManagedProperty(value = "#{projectsBean}") private ProjectsBean projectsBean; @@ -285,10 +287,21 @@ public class CurrentControllerBean { } } + /** + * Delivers the available log entries. + * + * @return The current log entries. + */ public Collection<String> getLog() { return this.logEntries; } + /** + * Adds the element to the log. + * + * @param cause + * The element to be added. + */ private void addLogEntry(final Throwable cause) { final Writer result = new StringWriter(); final PrintWriter printWriter = new PrintWriter(result); @@ -296,6 +309,12 @@ public class CurrentControllerBean { this.addLogEntry(result.toString()); } + /** + * Adds the element (with the current time) to the log. + * + * @param msg + * The log message. + */ private void addLogEntry(final String msg) { final String finalMsg = new Date().toString() + " : " + msg; synchronized (this) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java index c3ea9192..50865909 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java @@ -39,7 +39,7 @@ import org.primefaces.event.SelectEvent; */ @ManagedBean @ViewScoped -public class CurrentProjectOverviewBean { +public final class CurrentProjectOverviewBean { /** * This list contains all available projects by name. diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java index 4dc80510..cf785bfc 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java @@ -672,8 +672,13 @@ public final class ClassAndMethodContainer { return this.analysisControllerLoadFromFile; } + /** + * The getter-method for the field {@link ClassAndMethodContainer#pluginDependenciesMethod}. + * + * @return The value of the field. + */ public Method getPluginDependenciesMethod() { - return pluginDependenciesMethod; + return this.pluginDependenciesMethod; } /** @@ -685,8 +690,13 @@ public final class ClassAndMethodContainer { return this.displayDescriptionMethod; } + /** + * The getter-method for the field {@link ClassAndMethodContainer#repositoryDependenciesMethod}. + * + * @return The value of the field. + */ public Method getRepositoryDependenciesMethod() { - return repositoryDependenciesMethod; + return this.repositoryDependenciesMethod; } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java index b5e87ed1..99b7d621 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java @@ -265,6 +265,8 @@ public interface IProjectManagerFacade { * If a project with the given name does not exist. * @throws AnalysisStateException * If the analysis of the given project is in the wrong state to be initialized. This means that it has not been cleaned yet. + * @throws AnalysisInitializationException + * If an error occurred during the initialization of the analysis. */ public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException, AnalysisInitializationException; diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java index 636375f7..c856fb2e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class AnalysisInitializationException extends AbstractKiekerWebGUIException { +public final class AnalysisInitializationException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java index 2fbe7e26..e16168db 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class AnalysisStateException extends AbstractKiekerWebGUIException { +public final class AnalysisStateException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java index 9f076c75..0245fade 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class DisplayNotFoundException extends AbstractKiekerWebGUIException { +public final class DisplayNotFoundException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java index 9cdbdfd1..f8df52c5 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class LibraryAlreadyExistingException extends AbstractKiekerWebGUIException { +public final class LibraryAlreadyExistingException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java index ab94e92e..b0ce67b5 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class LibraryLoadException extends AbstractKiekerWebGUIException { +public final class LibraryLoadException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java index 69753ca8..f00af814 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java @@ -23,7 +23,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class NewerProjectException extends AbstractKiekerWebGUIException { +public final class NewerProjectException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java index 927b66ea..38ee0319 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class ProjectAlreadyExistingException extends AbstractKiekerWebGUIException { +public final class ProjectAlreadyExistingException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java index f2939160..fb596d09 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java @@ -21,7 +21,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class ProjectLoadException extends AbstractKiekerWebGUIException { +public final class ProjectLoadException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java index a44500cc..613edfba 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java @@ -22,7 +22,7 @@ package kieker.webgui.common.exception; * @author Nils Christian Ehmke * @version 1.0 */ -public class ProjectNotExistingException extends AbstractKiekerWebGUIException { +public final class ProjectNotExistingException extends AbstractKiekerWebGUIException { /** * The UID. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java index be0f3409..adca14b7 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java @@ -58,6 +58,8 @@ public final class ACManager { * The class loader to be used during the loading. * @throws ProjectNotExistingException * If a project with the given name does not exist. + * @throws AnalysisInitializationException + * If an error occurred during the initialization of the analysis. * @throws AnalysisStateException * If the analysis is in an invalid state to be initialized. */ @@ -77,8 +79,6 @@ public final class ACManager { * * @param projectName * The name of the project to be cleaned. - * @throws ProjectNotExistingException - * If a project with the given name does not exist. * @throws AnalysisStateException * If the analysis is in an invalid state to be cleaned. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java index 9911a383..37a97b1d 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java @@ -37,7 +37,7 @@ import kieker.webgui.common.exception.ProjectLoadException; * @author Nils Christian Ehmke * @version 1.0 */ -public class Analysis { +public final class Analysis { private static final Log LOG = LogFactory.getLog(Analysis.class); private static final long MAX_THREAD_WAIT_TIME_MS = 1000; private final ClassAndMethodContainer classAndMethodContainer; @@ -54,6 +54,8 @@ public class Analysis { * The file to be loaded. * @throws AnalysisStateException * If something went wrong during the loading of the analysis. + * @throws AnalysisInitializationException + * If an error occurred during the instantiation of the analysis. */ public Analysis(final ClassLoader classLoader, final File projectFile) throws AnalysisStateException, AnalysisInitializationException { try { @@ -67,10 +69,10 @@ public class Analysis { controllerAndMapping, null); this.analysisControllerThread = ClassAndMethodContainer.invokeConstructor(this.classAndMethodContainer.getAnalysisControllerThreadConstructor(), this.analysisController); - this.updateDisplaysThread = new UpdateDisplaysThread();// ClassAndMethodContainer.invokeMethod( + this.updateDisplaysThread = new UpdateDisplaysThread(); // ClassAndMethodContainer.invokeMethod( // this.classAndMethodContainer.getAnalysisControllerWithMappingGetMapping(), controllerAndMapping, null)); if ((this.analysisController == null) || (this.analysisControllerThread == null)) { - throw new AnalysisStateException("An error occured while instantiating the analysis."); + throw new AnalysisInitializationException("An error occured while instantiating the analysis."); } } catch (final ProjectLoadException ex) { throw new AnalysisInitializationException("An error occured while instantiating the analysis.", ex); @@ -167,12 +169,18 @@ public class Analysis { // private final Map<Object, Method> methodMap = new ConcurrentHashMap<Object, Method>(); // NOPMD (Use of concurrent hash map) private volatile boolean terminated = false; + /** + * Default constructor. + */ public UpdateDisplaysThread() { // this.pluginMap = object; } + /** + * This method initializes the class. <b>Do not call this method. The method is managed by the class loader.</b> + */ @PostConstruct - private void initialize() { + protected void initialize() { // Initialize the hashmaps and the necessary objects // for (final MIView view : Analysis.this.modelProject.getViews()) { // final Map<String, Object> viewMap = new ConcurrentHashMap<String, Object>(); // NOPMD (Use of concurrent hash map) @@ -293,6 +301,9 @@ public class Analysis { } + /** + * This method makes sure that the thread terminates at the next possible point. + */ public void terminate() { this.terminated = true; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java index 30391a4e..706b173a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java @@ -104,6 +104,9 @@ public final class FSManager { // No code necessary } + /** + * This method initializes the class. <b>Do not call this method. The method is managed by the class loader.</b> + */ @PostConstruct protected void initialize() { // Check for our root-directory and create it if necessary @@ -354,6 +357,8 @@ public final class FSManager { * If a project with the given name does not exist. * @throws IOException * If something went wrong during the uploading. + * @throws LibraryAlreadyExistingException + * If a library with the same name exists already. */ public void uploadLibrary(final UploadedFile file, final String projectName) throws ProjectNotExistingException, IOException, LibraryAlreadyExistingException { // Check whether the project exists @@ -583,7 +588,7 @@ public final class FSManager { /** * Checks whether a project with the name exists on the file system. * - * @param project + * @param projectName * The name of the project. * @return true if and only if a directory with the name of the project exists in the root dir. */ @@ -608,22 +613,55 @@ public final class FSManager { return file.toURL(); } + /** + * Assembles the {@link File}-element pointing to the directory of the given project. + * + * @param projectName + * The name of the project. + * @return The directory of the project. + */ private File assembleProjectDir(final String projectName) { return new File(FSManager.ROOT_DIRECTORY + File.separator + projectName); } + /** + * Assembles the {@link File}-element pointing to the kax-file of the given project. + * + * @param projectName + * The name of the project. + * @return The kax-file of the project. + */ private File assembleKaxFile(final String projectName) { return new File(FSManager.ROOT_DIRECTORY + File.separator + projectName + File.separator + projectName + "." + FSManager.KAX_EXTENSION); } + /** + * Assembles the {@link File}-element pointing to the library directory of the given project. + * + * @param projectName + * The name of the project. + * @return The library directory of the project. + */ private File assembleLibDir(final String projectName) { return new File(FSManager.ROOT_DIRECTORY + File.separator + projectName + File.separator + FSManager.LIB_DIRECTORY); } + /** + * Delivers the {@link URL}-element pointing to the kieker library. + * + * @return The kieker library. + */ public URL getKiekerURL() { return Thread.currentThread().getContextClassLoader().getResource(FSManager.KIEKER_LIB); } + /** + * Delivers the kax-file for the given project. + * + * @param projectName + * The name of the project. + * @return The kax-file of the project. + */ public File getProjectFile(final String projectName) { return this.assembleKaxFile(projectName); } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java index 9ed0f55b..44f4d7e2 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java @@ -48,6 +48,10 @@ public final class PluginFinder { * * @param url * The url for the jar. + * @param classLoader + * The classloader which should be used to load the classes. + * @param classAndMethodContainer + * The container for the necessary reflection methods. * @return A list containing all available repository-classes or null, if an exception occurred. */ public List<Class<AbstractRepository>> getAllRepositoriesWithinJar(final URL url, final ClassLoader classLoader, @@ -78,7 +82,9 @@ public final class PluginFinder { * @param url * The url for the jar. * @param classLoader - * The class loader used to load the classes. + * The classloader which should be used to load the classes. + * @param classAndMethodContainer + * The container for the necessary reflection methods. * @return A list containing all available plugin-classes or null, if an exception occurred. */ public List<Class<AbstractPlugin>> getAllPluginsWithinJar(final URL url, final ClassLoader classLoader, @@ -106,7 +112,7 @@ public final class PluginFinder { * @param url * The url for the jar. * @param classLoader - * The class loader used to load the classes. + * The classloader which should be used to load the classes. * @return A list containing all available classes or null, if an exception occurred. */ private List<Class<?>> getAllClassesWithinJar(final URL url, final ClassLoader classLoader) { diff --git a/Kieker.WebGUI/src/main/resources/global.properties b/Kieker.WebGUI/src/main/resources/global.properties index a51a7c0b..7a0c847e 100644 --- a/Kieker.WebGUI/src/main/resources/global.properties +++ b/Kieker.WebGUI/src/main/resources/global.properties @@ -9,13 +9,19 @@ kieker.webgui.common.welcomeMessage = This is an early alpha version of the Kiek #------------------------------------------------------------------------------ # -# These constants concern mostly the theme containing bean(s) +# These constants concern the further (and more specific) configuration of the +# current user # #------------------------------------------------------------------------------ -kieker.webgui.theme.defaultTheme = glass-x -kieker.webgui.theme.cookieName = theme -kieker.webgui.theme.facesContextKey = theme +kieker.webgui.config.lookAndFeel.cookieName = lookAndFeel +kieker.webgui.config.lookAndFeel.defaultTheme = glass-x +kieker.webgui.config.lookAndFeel.facesContextKey = theme + +kieker.webgui.config.analysisEditor.gridSize.cookieName = analysisEditor.gridSize +kieker.webgui.config.analysisEditor.gridColor.cookieName = analysisEditor.gridColor +kieker.webgui.config.analysisEditor.defaultGridSize = 50 +kieker.webgui.config.analysisEditor.defaultGridColor = 0080FF #------------------------------------------------------------------------------ # diff --git a/Kieker.WebGUI/src/main/resources/kieker-1.6-SNAPSHOT_emf.jar b/Kieker.WebGUI/src/main/resources/kieker-1.6-SNAPSHOT_emf.jar index 3e3f56ed47646c6fe7c628362c8def97ee54533e..4f2a182d6a0105730fc16fd92b1d5b3e3ae9db1d 100644 GIT binary patch delta 48135 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ⅆ#6K_Hx>{FBMemY; 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 delta 48151 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 L_A*G0fq?-4W+@!e diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml index 3f5fc4d3..57f2cbab 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml @@ -1,16 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> + <!-- This parameter determines that the state is saved on the server. --> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> + + <!-- This parameter determines the current stage of the project. --> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> - <!-- This filter is necessary for the PrimeFaces file upload in order to work. --> + <!-- This parameter makes sure that the theme chooser will work. --> + <context-param> + <param-name>primefaces.THEME</param-name> + <param-value>#{currentConfigurationBean.lookAndFeel}</param-value> + </context-param> + + <!-- This filter is necessary for the PrimeFaces file upload. --> <filter> <filter-name>PrimeFaces FileUpload Filter</filter-name> <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> @@ -25,12 +34,6 @@ <url-pattern>/*</url-pattern> </filter-mapping> - <!-- This here makes sure that the theme chooser of PrimeFaces will work. --> - <context-param> - <param-name>primefaces.THEME</param-name> - <param-value>#{currentThemeBean.theme}</param-value> - </context-param> - <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> @@ -56,7 +59,7 @@ <listener-class>com.sun.faces.config.ConfigureListener</listener-class> </listener> - <!-- This filter will be used by Pretty Filter in order to use better looking URLs. --> + <!-- This filter will be used by Pretty Filter.--> <filter> <filter-name>Pretty Filter</filter-name> <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class> diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml index d4e468f4..ee5efc2b 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml @@ -12,7 +12,7 @@ <p:tab title="Common"> <h:panelGrid columns="2" cellpadding="10"> <h:outputText value="Look and Feel:" /> - <p:themeSwitcher value="#{currentThemeBean.theme}" + <p:themeSwitcher value="#{currentConfigurationBean.lookAndFeel}" style="width:150px" effect="fade"> <f:selectItem itemLabel="Choose Theme" itemValue="" /> <f:selectItems value="#{themeSwitcherBean.themes}" /> @@ -32,10 +32,10 @@ </p:selectOneMenu> <h:outputText value="Grid-Size:"/> - <p:spinner style="width:150px"/> + <p:spinner value="#{currentConfigurationBean.gridSize}" valueChangeListener="#{currentAnalysisEditorBean.gridSizeListener}" suffix=" [px]"/> <h:outputText value="Grid-Color:"/> - <p:colorPicker style="width:150px"/> + <p:colorPicker value="#{currentConfigurationBean.gridColor}" valueChangeListener="#{currentAnalysisEditorBean.gridColorListener}"/> </h:panelGrid> </p:tab> <p:tab title="Analysis Controller" disabled="true"> -- GitLab