From 546d110881425900c103a3846df4d1911efaf546 Mon Sep 17 00:00:00 2001 From: "jinwooim.bae" Date: Tue, 27 May 2014 17:32:41 +0900 Subject: [PATCH] ANIMATOR : Changed Animator Timeline UI/UX New UI is applied Animator's Timeline. Change-Id: I9768b56e80dfca10b0e515aed986adaa2e2ebcb7 Signed-off-by: jinwooim.bae --- org.tizen.webuibuilder/plugin.xml | 1 + ...png => animator_keyframes_extention_handle.png} | Bin 2950 -> 2937 bytes .../res/icons/animator_toolbar_backward_hover.png | Bin 3243 -> 3157 bytes .../res/icons/animator_toolbar_backward_normal.png | Bin 3239 -> 3126 bytes .../res/icons/animator_toolbar_backward_push.png | Bin 3231 -> 3151 bytes .../res/icons/animator_toolbar_dropdown_hover.png | Bin 2927 -> 2929 bytes .../res/icons/animator_toolbar_dropdown_normal.png | Bin 2925 -> 2889 bytes ...imator_toolbar_dropdown_predefined_keyframe.png | Bin 0 -> 3365 bytes .../res/icons/animator_toolbar_dropdown_push.png | Bin 2922 -> 2908 bytes .../res/icons/animator_toolbar_ease.png | Bin 3060 -> 3018 bytes .../res/icons/animator_toolbar_ease_in.png | Bin 3088 -> 3027 bytes .../res/icons/animator_toolbar_ease_inout.png | Bin 3060 -> 3018 bytes .../res/icons/animator_toolbar_ease_linear.png | Bin 3068 -> 3022 bytes .../res/icons/animator_toolbar_ease_out.png | Bin 3080 -> 3035 bytes .../res/icons/animator_toolbar_filter_hover.png | Bin 0 -> 3062 bytes .../res/icons/animator_toolbar_filter_normal.png | Bin 0 -> 3037 bytes .../res/icons/animator_toolbar_filter_push.png | Bin 0 -> 3053 bytes .../animator_toolbar_filter_selected_hover.png | Bin 0 -> 3064 bytes ...=> animator_toolbar_filter_selected_normal.png} | Bin 2971 -> 2988 bytes .../animator_toolbar_filter_selected_push.png | Bin 0 -> 3070 bytes .../res/icons/animator_toolbar_forward_hover.png | Bin 3262 -> 3167 bytes .../res/icons/animator_toolbar_forward_normal.png | Bin 3257 -> 3136 bytes .../res/icons/animator_toolbar_forward_push.png | Bin 3247 -> 3188 bytes .../res/icons/animator_toolbar_play_hover.png | Bin 3156 -> 3073 bytes .../res/icons/animator_toolbar_play_normal.png | Bin 3149 -> 3040 bytes .../res/icons/animator_toolbar_play_push.png | Bin 3145 -> 3086 bytes .../res/icons/animator_toolbar_repeat_hover.png | Bin 3564 -> 3504 bytes .../res/icons/animator_toolbar_repeat_normal.png | Bin 3522 -> 3383 bytes .../res/icons/animator_toolbar_repeat_push.png | Bin 3509 -> 3514 bytes ...in_push.png => animator_toolbar_snap_hover.png} | Bin 3096 -> 3102 bytes ...normal.png => animator_toolbar_snap_normal.png} | Bin 3109 -> 3117 bytes ...dle_push.png => animator_toolbar_snap_push.png} | Bin 3110 -> 3119 bytes ...ng => animator_toolbar_snap_selected_hover.png} | Bin 3095 -> 3127 bytes .../animator_toolbar_snap_selected_normal.png | Bin 0 -> 3034 bytes .../icons/animator_toolbar_snap_selected_push.png | Bin 0 -> 3172 bytes .../res/icons/animator_toolbar_stop_hover.png | Bin 2995 -> 2878 bytes .../res/icons/animator_toolbar_stop_normal.png | Bin 2987 -> 2860 bytes .../res/icons/animator_toolbar_stop_push.png | Bin 3015 -> 2873 bytes ....png => animator_toolbar_time_input_window.png} | Bin 2893 -> 2884 bytes ...> animator_toolbar_time_input_window_hover.png} | Bin 2935 -> 2882 bytes ...mator_toolbar_time_input_window_input_text.png} | Bin 2953 -> 2859 bytes .../animator_toolbar_timeline_zoom_minus_hover.png | Bin 0 -> 3005 bytes ...animator_toolbar_timeline_zoom_minus_normal.png | Bin 0 -> 2927 bytes .../animator_toolbar_timeline_zoom_minus_push.png | Bin 0 -> 3011 bytes .../animator_toolbar_timeline_zoom_plus_hover.png | Bin 0 -> 3073 bytes .../animator_toolbar_timeline_zoom_plus_normal.png | Bin 0 -> 2966 bytes .../animator_toolbar_timeline_zoom_plus_push.png | Bin 0 -> 3086 bytes .../res/icons/animator_view_timeline.png | Bin 0 -> 3177 bytes .../res/icons/animator_zoom_in_normal.png | Bin 3097 -> 0 bytes .../views/timeline/TimelineContentContainer.java | 76 +- .../ui/views/timeline/TimelineContextMenu.java | 6 +- .../ui/views/timeline/TimelineMainContainer.java | 2 +- .../animator/ui/views/timeline/TimelinePage.java | 6 +- .../animator/ui/views/timeline/TimelineViewer.java | 12 +- .../views/timeline/common/TimelineConstants.java | 9 +- .../ui/views/timeline/common/TimelineMessages.java | 7 +- .../timeline/common/TimelineMessages.properties | 9 +- .../ui/views/timeline/header/PlayHeader.java | 11 +- .../animator/ui/views/timeline/header/TimeBar.java | 2 +- .../ui/views/timeline/header/TimeBarRenderer.java | 4 +- .../header/TimelineContentHeaderContainer.java | 4 +- .../timeline/header/TimelineOutlineHeader.java | 4 +- .../tool/TimelineContentToolsContainer.java | 124 +- .../ui/views/timeline/tool/TimelineToolbar.java | 1697 ++++++++++++++------ .../timeline/tree/TimelineOutlineElement.java | 73 +- .../ui/views/timeline/widget/KeyFrameUnit.java | 76 +- 66 files changed, 1313 insertions(+), 810 deletions(-) rename org.tizen.webuibuilder/res/icons/{animator_zoom_out_push.png => animator_keyframes_extention_handle.png} (91%) create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_dropdown_predefined_keyframe.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_filter_hover.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_filter_normal.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_filter_push.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_filter_selected_hover.png rename org.tizen.webuibuilder/res/icons/{animator_zoom_out_hover.png => animator_toolbar_filter_selected_normal.png} (89%) create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_filter_selected_push.png rename org.tizen.webuibuilder/res/icons/{animator_zoom_in_push.png => animator_toolbar_snap_hover.png} (86%) rename org.tizen.webuibuilder/res/icons/{animator_zoom_handle_normal.png => animator_toolbar_snap_normal.png} (86%) rename org.tizen.webuibuilder/res/icons/{animator_zoom_handle_push.png => animator_toolbar_snap_push.png} (86%) rename org.tizen.webuibuilder/res/icons/{animator_zoom_in_hover.png => animator_toolbar_snap_selected_hover.png} (85%) create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_snap_selected_normal.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_snap_selected_push.png rename org.tizen.webuibuilder/res/icons/{animator_zoom_panel.png => animator_toolbar_time_input_window.png} (92%) rename org.tizen.webuibuilder/res/icons/{animator_toolbar_time_text.png => animator_toolbar_time_input_window_hover.png} (91%) rename org.tizen.webuibuilder/res/icons/{animator_zoom_out_normal.png => animator_toolbar_time_input_window_input_text.png} (90%) create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_hover.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_normal.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_push.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_hover.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_normal.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_push.png create mode 100644 org.tizen.webuibuilder/res/icons/animator_view_timeline.png delete mode 100644 org.tizen.webuibuilder/res/icons/animator_zoom_in_normal.png diff --git a/org.tizen.webuibuilder/plugin.xml b/org.tizen.webuibuilder/plugin.xml index 238e0e7..45f47a9 100644 --- a/org.tizen.webuibuilder/plugin.xml +++ b/org.tizen.webuibuilder/plugin.xml @@ -161,6 +161,7 @@ diff --git a/org.tizen.webuibuilder/res/icons/animator_zoom_out_push.png b/org.tizen.webuibuilder/res/icons/animator_keyframes_extention_handle.png similarity index 91% rename from org.tizen.webuibuilder/res/icons/animator_zoom_out_push.png rename to org.tizen.webuibuilder/res/icons/animator_keyframes_extention_handle.png index cba895edf153ed5426810009d1cf52a02297b132..b925b1ceb84f5579a83e5f1ac593af58a5460454 100644 GIT binary patch delta 229 zcmV>7x@+;iBL{Q4GJ0x0000DNk~Le0000B000062nGNE02MN1_^~0M3V)&Yh2eiwkrhGAMh{|Ln8~yQ$iO3r1F_6JCLX{Q(?nrmMQ|4|X)t*J zVMP@5nZzIiU;V%G44g>(xhlYN+NasDO3}5r;f_|AfFGv^uEnhs#_0jTujshhxwBOF z$FtjMx3KE9AGqD0d?nrlNk{@G8amrSrZB%~eJ&K{7ui83oM`+phV=bs^yUK~1YUp% f43&6`Pk#>p_e@Q@$X1%$00000NkvXXu0mjfppah8 delta 242 zcmVZj-Tfz$bN zzg@#Va0mer53q^oPqdl&n6|r@QgY6v6nAfD06;_{LPP*qeCM3atnd4;lH)jv2-bW= z1OR5XWx&h;fQS~~?#|4^Fig`l&qs6P#TdJ;ODSqJ%ET~$AyFtdoLYK(Ewt|1Un sM7B~^x9d84TL1O($JmeOYbX0X0G}8=_cow~g#Z8m07*qoM6N<$f@3FV0ssI2 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_backward_hover.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_backward_hover.png index 7233d70e0a4348cf686c26234aaebbda45e9779d..6855cb723f191b48004132ed4732f849fc3a7604 100644 GIT binary patch delta 428 zcmV;d0aN~~8Pyn&83+OZ001#pq6o1ep9+6~NklF~)6vo?TnSdacp%;#z zPhU_&FF{{|;158Y=MvQ6FNhjU5pcfA^p=~zVX&8wEGV*NJ8@>T1<|d7mK>Mu_PP7s zd%s@aYYPb>pfp_p0P3A?iF5$K!`;oFqaR;CzUha2!17RTu!k7^9R%QIutwbka19qKHy@lB^Fehn{7b z@B8cZT7@>7jpup0-Of0qVsxX_CUSrC&-PvVl}aTD0@rm_L8H-_PN$CJoI7S0O;!33 zLWEGS*9*hYvMlM;YBk^Yhr?mDT0K{uKhHSy7#x&#*3M#3y@MmN(pAx%7tMF+qU8RK9o|Gd2^zgd77plD>MGo zc0Qj=tghE9Y}-Z<1Q?A*TAkDB1jlg@h9P>rUWveuWoKqx01-h50nhUwr9>EpI_`eI zLrMwH^FBPEW!Y=+D&|562qCnbtJQxBzVDY}f*`$TS1{{Mf~_WON3;Fe|8@*DL&0FDW`+RgUYQvd(}07*qoM6N<$ Ef@?1O1poj5 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_backward_normal.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_backward_normal.png index af27ee50fa5a08653795410df1019262fa9c9b80..41cc06b5ce51fc7811a94177e0fd448718d85978 100644 GIT binary patch delta 396 zcmV;70dxMR8MYXZ83+OZ001#pq6o1ep9+6rNklzLCCIA2kAxVp(Y_b2kfq#a6xm;$Ve+&S*v9*cSD@&080000Z+AV^3MB&ZrhHT72@=x-paizdiYTG~4+UV2~4_QCFo*JN)pqSNV|IcKKR z(tf{ZRCH*9L;CUXDQl)t_qAv%|F#gnbKA#J$ zuGcFp%YyIwm`o;Gozv+A+qMw|0s8%Zfxx$AXJ%ah5kUw6*L5MKL=Xfz?tZ^RN(t9> zKRutO>3i@p=0XSvA+((9^%|b%6=HvU-^XIHz~yo&1x}LWXW-1N!C#%*?N;i42mW^8 zvYwfyiPdU_@pxQF&}=rb+wIWlbPE1g!^TMnm^qDTR8yj^%QRl^?G1t?KcbqLI_N!Q>1B%IF7&es+BP(A|y#ty0xA+ z-}8pcZ^R$3*GhN$@BgZGyWMKQ4~Ih~zfm6p0M%=^jTQlcG5`Po07*qoM6N<$f))kt Aga7~l diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_backward_push.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_backward_push.png index 830bdd3b3f61282b7b58e7ebbf1856d3b6398602..1504f60e1cf1cd338284645599518d57522563c5 100644 GIT binary patch delta 410 zcmV;L0cHN58P6E7zzTnQNklom2XZyu|amp`%i&h17N3W#?3T%MgFD*Xw0jmSvd`LI`2o zw&OTOQ4~c%h~qd)sW^_$=QAQAqJ~GS4CfpXuh%O82q6IAcDsdPSeE5{KDTWf0FK9F z6h%_X>2!*SkH@1c&P#Rz8Dm0-JkQfKl~NLNzu(g|&GWn!`~f>@Dy3Yn*Qe8|aa}H# z#bQxaRqK&HU~hjCv_?%l2WzM9_f=76#O}K8X0!2qzeyMj22m7^$KzI`dJ^r-G|JFW z20^gf?S{i4Rod_OSF6=>xpZBZF0fwM%ijb5L`O}GMx!tc4~IkZi6)bY=Xu-h_753Z zk|eX)OzZpii*^Iv-2`U$%$ICnv$dPu@B97U5c|&nQH~Onq7jNDFaQ7m07*qoM6N<$ Ef+R1A>JLgvuCGI&vV*A-}gajAOHZ*^GZ|) z0346UUzhH7yMNUYLM8V8rVc*<07yTOWwK?a;8S&sah630VT^w@DW#NB8b&E4rBq63 z1|cM+Op-(?m0tiE^(+V>)oOLW-yaSK%d#xX;+)s(^(cy>DAG)=R-=?|x7#?58Dlty zf4vhz{@W2DjIlV5A%wPVr)m0lJXWjK<#O>n&$evpP$cX^XhuNP9~Gv z?Us#z?k4a1r_L1iqVaq_^ARXiFP5r|<2YiD4tTTKoXuu~!9YJINz!h& zm&;|V)%rpm`o8aZ-u-_6`m7q#F!{s$W_qL1D4wcWBYWP7sA>zUYO6npNkTG2001KL)*BUAN@+02 oKfUu0{O!Z_R*pjmlh?iv0G2?4^xM%nDgXcg07*qoM6N<$f@e-yZU6uP delta 184 zcmV;p07w7v7Vj3YzzTnwNkl zSMwmG-9&_#RZ5975)tlrp#uO&{tqu2`&&4KFf^A^+QLX)Ip^Cl7rpbUza3+oj(rXQ6=%hHHl>XX000UA07*qoM6N<$g7J(# AT>t<8 delta 182 zcmV;n07?JJ7VQ?WzzTnuNklMA{{6qU4B#f>C6lOVCF7WZr8MP&R@6i?|Ytt kr>-i5Fa{IR&=0#00FV5Bhyx(o5C8xG07*qoM6N<$f^=k0mjD0& diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_dropdown_predefined_keyframe.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_dropdown_predefined_keyframe.png new file mode 100644 index 0000000000000000000000000000000000000000..48e3397a5ddbec470ee4efbb38765a026dd0e7f5 GIT binary patch literal 3365 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 vV6@|Q`U_LlQ+z$v9$acgbK z-34DqM81L|vgkg}%)AJD?}#xj`JCnjKAIUdv_h%`kra$4?70{LVG4Z TsWVQ000000NkvXXu0mjfz<)|K delta 179 zcmV;k08Ibf7U~wTzzTnrNkl&XA(5Gw04rF84jwe$_6M)lB0RUh7IIt b1`Gf{P1L=ZmoE*500000NkvXXu0mjfd76VV delta 319 zcmV-F0l@ys7xWjfzY2c=A4x<(RCwBAT(DpP1G#{Ofq@|)Ab@<$3=9l^{`?_XCkqQy z^S^)p$hR4yIVd=c7(MIOu0qlL_wQc_WA&=#_;rScMZy)MYlbt>z=MYm&zwGsrUpI0 zFhlP3n>Vv&&AER4hP=F-yqp}e8Ui-IdGn^Wu2Dopq_Uz+LqmU^fq~)B;UmP_JZtt` z5n)`{vDC#YF{dY;4Hlgq{8U`}dWrR;#J1Dl03Y`GtV9Z{NAI zZr#Rr@7|@9C1M64PG>J(vh3NjXHTC#Q&Co~sjlGU zj?>vrjt&H~3QjkhE30Y=rfuxWv$3I;n2dq0nW8LdZf;Jd<_#M*kXH-=1^`mR%9|h} R85;lq002ovPDHLkV1l(dnZf`7 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_ease_in.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_ease_in.png index 484fcdedd1066ff8ea977f5e7070953cb540640c..f8a41176566cbb540a2b8795bdf7b88a0e6f6261 100644 GIT binary patch delta 286 zcmV+(0pb3T7}FQ9zY2c<{z*hZRCwBAT(DpP1G#{Ofq@}DKAt?yObiqN76t}}|Ns9} zL334gJu!OPS{o6Xu}YwUfB*hDI=LP^uou|^bZ6u8!kag5goTA6vT!xTYQA^xzM`T6 znVK(OxuT=3ji#9i!hrx}HZpkk?%mll=ZuUE(bN!S^Y-mK^z?uAv@|tIw)x1Bqt~wA z@bdJ)RD;jv_wV2D+_~%ejhj)C5t5P;a4DPt_V@4Kx9{FPxc}hVwd?23pV!mVO-oIY zl9I$~0lH>SFJB=cAw>mwEiJ9Iv=l8(P0WD6sd@Xh%~;hDrMacGlVI9L(F_OGRb>N| kCCSmeVZ#RUGy@g}0FjgiDGwNU;s5{u07*qoM6N<$g84{~-v9sr delta 347 zcmV-h0i^!Z7mygRzY2c=J4r-ARCwBAT(DpP1G#{Ofq@|)Ab@<$3=9l^{`?_XCkqQy z^S^)p$hR4yIVd=c7(MIOu0qlL_wQc_WA&=#c(i3@=e>UY8m<^!Gn|15UcY|*`t@sM zHRu6`C*=0;Kgh+!_3hg?xEdz7g%I=p;sBpNf8Mckm$8u{vSNQGxP=h&{@?)HckKN3 z?VFE}H?m@)oc;LmlRbO(Iy*ZG2=F7TAsk?D-@aS0aFLLZke8nyL$EN_wPS+w6!wQ zQ==fbaryo($W$X6u=sUIBjNNV7Pbh{=Iwmw`|>xE45%xo{bH) t#AFO~%@k!xb8~YtHE-CkfxKb}FaW_^4Mk%zihck9002ovPDHLkV1loYtxf;{ diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_ease_inout.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_ease_inout.png index f4a25877996e1278b45b27ace01a18b55df25075..4319396ceb2e846322933dccf2f58eba32a33a0c 100644 GIT binary patch delta 277 zcmV+w0qXwr7s?l~zY2c<^+`lQRCwBAT(DpP1G#{Ofq@}DKAt?yObiqN76t}}|Ns9} zL334gJu!OPS{o6Xu}a_q$QGbGn;0*^)ezQv`O1|;hYp`Rcj4i~2lDa?l9E!yYCdt| z&XA(5Gw04rF84jwe$_6M)lB0RUh7IIt b1`Gf{P1L=ZmoE*500000NkvXXu0mjfd76VV delta 319 zcmV-F0l@ys7xWjfzY2c=A4x<(RCwBAT(DpP1G#{Ofq@|)Ab@<$3=9l^{`?_XCkqQy z^S^)p$hR4yIVd=c7(MIOu0qlL_wQc_WA&=#_;rScMZy)MYlbt>z=MYm&zwGsrUpI0 zFhlP3n>Vv&&AER4hP=F-yqp}e8Ui-IdGn^Wu2Dopq_Uz+LqmU^fq~)B;UmP_JZtt` z5n)`{vDC#YF{dY;4Hlgq{8U`}dWrR;#J1Dl03Y`GtV9Z{NAI zZr#Rr@7|@9C1M64PG>J(vh3NjXHTC#Q&Co~sjlGU zj?>vrjt&H~3QjkhE30Y=rfuxWv$3I;n2dq0nW8LdZf;Jd<_#M*kXH-=1^`mR%9|h} R85;lq002ovPDHLkV1l(dnZf`7 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_ease_linear.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_ease_linear.png index 85c907162ebb99aac3111e180bb8b7881df7c976..371a8104b721ea5a08c28bac105395546ab2c82a 100644 GIT binary patch delta 281 zcmV+!0p|Yv7tR;3zY2c<`AI}URCwCN(@743Fcb#hYP^sGlL=mhTbR<87}LpPa0J%4 z6=+q?gewt&B0&@XRg=CiZC_qzaU6rGSpWcnAee^d;EOB(0994}03&=DV+23GaPLMp zS*{_3zQ22WbM;Jf-O44?5JD+W&6-g-%XJt+DdpC)nle7dM1LA*AP8^#T3e zZs9`R5JEx-&)w8pqi~__7$eSw>uh>!j9BSA#+Y;NI_uVTK47IwLNH_8vDe)$3}JmO z2_cLz$6oagpAjovMiHTu+1AQ5wniL9gi>l-%YlJ6V&C7T={Zf$1GD{x>tMA1)0dor flO&mj9|HiF6bcapAMS_$00000NkvXXu0mjf^AUe$ delta 327 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 literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_filter_push.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_filter_push.png new file mode 100644 index 0000000000000000000000000000000000000000..281fb56d06b70017aeede36365e8acf81094c685 GIT binary patch literal 3053 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 literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_filter_selected_hover.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_filter_selected_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc91a1142a7b5ea5a506f37c1184edb20f6e447 GIT binary patch literal 3064 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 N002ovPDHLkV1nQ|alZfn diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_filter_selected_push.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_filter_selected_push.png new file mode 100644 index 0000000000000000000000000000000000000000..8c135fa7e2b721074eb1f5e5b80fc332ca897395 GIT binary patch literal 3070 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 M07*qoM6N<$f*k*}lK=n! literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_forward_hover.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_forward_hover.png index 9dc8bdd1b9f7b3ddfd38f08d5165935d08b10690..7b7c6b99f36aaccc92c59c79e1f260511a63e25d 100644 GIT binary patch delta 438 zcmV;n0ZIP88Q&O?83+OZ005}3d%dwCp9+79NklV~njHeY!-$g02~g7;c#de#(KR* zB$dtu(u;h00{}LgjcJ;ydK{OXf~_e;$`zepQp+%bP;@vMYdK`>!H({pyDT g1$L9MxD07*qoM6N<$f_h83+ad001Y=?CP;0p9+8JNkler5|9cV3!nD78V-C%w%Q@$*l3Y>f^y?VK1b}$#Bn^ zbMM>t?5YRO3TU{NK#r1zD;B6B=9?wiB1Jg9oY&H{kp-{khJVv!zeQW>6 zB>(_QsoX)iTt=tUfv)SgUaxXZqtQUUUWX6@yWQ?fQ~#(0gb?Vuj$W^aQmKE0FbqK{ zg{rE^=ksW{+sNf|I3ABTOBDshViB6Afl~UpfM0j2a?lQ72a@gI%i)bE1-=QfHWKq8812)G4KOm0IiEd9ulOKueWcjy1x zkJ*ueAb>Gr3IK*-jN~4M;RHsGDFC!>`!@j8B}oz~Jh3~c2heMcfytOJQt(^Em~?;b zy3sVvZnry~PK>eoJ65aJ?RMizk|efmCrQ#YO|QulKv|ai{r+$`JRT3m7-K9=Q^#?l zD8k>OC@z;vQ4}8naF561alKxj&*!?X0idcX-}fEI$+8R;kplwyFPRTx-0yeSbr*{T zSFYEqWm%Nc9~bs&6}?-y1AxiE26=xDA!NJVnx@Iq6h-koZ$6*%)x3Q~yz(feo6Uw0 z!bg|OrLOA$kmos0`|yYeA+GCEO0n?UwpCTtvMg0qkuA&eY&Ju-2p|PPplO=u8FwG* zfFgQjQ53z@i=I}&fWzp`?ti!IUjxK(JRaa{06uNIO)Mw*Ab42!X|7fz4(k1BAF?7;s%TLc(=jn5GHGalko$>-YJv z%5xFEu8_p_dc}M`$8x#E?REnp1d5`-aU7VYiPdTaMR~aLJP*6w4xZ=9VDEe-8FjVPL=CM*>=wh3RyP)9EDfP?djAeq-BERaGf>XvgCblgR}2dOfmtyWL_u9-~sJ zM1nKMV(TE5fDl6VYf=k?h57$P;A0WKwr3`j!Duu>yWNi9g+c+d*$lN>?W6pOQvd*z zQh9=Mxr|<~2VK{3zu)DaR;z_ZqX8iV4u``ZMg6T55JI5qItGIQN~IEf-v@l96soEs zpU2LN!nT)-HUZ8#hbB_0F;2qDO3 zv*`Ex;GDzv{l5;lL<$f>Kq>vwBn+`<{9B_q^}FEzxecq;YI+20+fMCG_-g>;8^&7* SzmKi}0000kg9hG#0SpF5CknwZQ<0p=O|L`K-igb~FX{Ko?q*Y%Bnhw?7y!_2w=KD!PA3ci za2&^O1`tBK0EAF^p-5Fqm6eZU={;sZxkL~`$8oeSrIb=a2(^D$R-}|lDJi89;OGoK z0%J@FSuU5C%caq1FvbWWl+wv$lBTKax|C8%X_}_<`TX&CV2m-wWuHobX1w3;#bU8q zt)!HUF~->aexJ=|`~BW^UB+0JW!LL9%QB<;F93v)uJZAC9F0b|+l>$c0C>G#>-Bm% zoj#vWjK3>f2pRIq&s)oOA8#`+lp{@_oOio-j$0ZnrmUTr&>vuOnTI?RJanTV(Mq p`cHuM=h}J(*8c~a&Bh+!YXGv2moNfnu7&^r002ovPDHLkV1fV%+%fTMn_xy0&c-LTuZf&1To@l~O7# zm&;|bSj2H`nx_7uCjfqy1Uw#(`Fy@!uMNYXlu}BgDDr)Ox7)d{ODP3_!{NX=Hw**6 z=&K53H#AKHfX#nqGaiqlC?bRa!0mQhE|QAH5==FM*Wy#A50G&?9^E@HM>2y;5@18<7Kt^&WgbW6QTCK(ylK=n!07*qoM6N<$g4n_LU;qFB diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_play_hover.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_play_hover.png index 9bc77a956c11ab1a4e6816db0117493cf78a50c2..630c4a74da5b4d18a32adbb213f9e759308daca9 100644 GIT binary patch delta 343 zcmV-d0jU1e7=aj&83+OZ001#pq6o1ep9+60NklzE?jD{FqyqpR?{9ZUzr26`(3Mh}xak!_xW&7Mu6{MrM=hkIixEmGDP<4@bzOh= zeJ_NNQtE46=UoWVbzPDqgb>D<<2VQ*gwVx0(4X?pX$)(cCQZ{U%i6XbhGDE@EM+!j zY2Qz8IOm*mN~!PrrfDLCuJS&cSyfdOMP*r@v%k^%{{RT#Y|Ns0pB1H)F@`bLq;K)= zx^5VT7~^SXuA)z8%d$Mrvu*qITWLdbm(mTxh~tOUd~TI2F3TnncQf!{W*FxG@g8rcwB2qU z1&t4Y{eE8@IKXDJ`B&iOa`^>rtu0P@R`61(^t5*F^^y_s#2Awr)>^E!EEWq+r&E6d z9`9$lBaSEK@y4%Ag~0PX&gV1h^_ph0$z(F2Uaw=V#W|NmF59)%sfRt!Lx{vIq9`JY zBHHaXv)POw2ofijYYexJc$ zkPvtqc)46oJ>#6i7=zY28+g`&`|W?SPN&0gIK=mTq?AeS-=bUy@gvDrtHpFW#rJ)b zQrz$NRLfriS4t)8Mx()KG@@FqBBkVZyJaf0muy!`A%vh(sW6|c+`dJ5+(M<4xx3k0noOau+Mj^$cDrK0d%a#E->4VQ0RU7^ VLbzOZZ|DF3002ovPDHLkV1jxn%Ao)N diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_play_normal.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_play_normal.png index 8efac0c072d5544f3104ef906edeadf375e40af6..06c2dd9e789d49839ec470d6854e3f536f84eb2c 100644 GIT binary patch delta 310 zcmV-60m=T&7~mI>83+OZ001#pq6o1ep9+5qNkl*cmew~R$jrzGiZ`2WJOrXI5P^nuL|Miid44XDOvp>Sf(GvP&taY0C4QQp$fh z_dE{(0N`a0*mpN*bq~W(6h&E<<2WwMvi4Z39O~@c_d7xeAp~PA3`5(t0pP3bhbOzP zOVhMz8bka~vi~+OcIzf0*93?M?LO0FM_d!C^2yod5s;07*qo IM6N<$f{jp-1ONa4 delta 420 zcmV;V0bBmy7tI)u83+ad006!6oo%0TBZoTfMBE8 zik4d02oehm8w*>Xz|KeU5qt#eSjU&J5(RO7w@Mb5#Uzs53|za6X??@MM2I z&lyR)C{GsNG8F>P^SE3t>~=ePy&j9jf=;J{wHD`G8l^X!=XnT`CW|s=WV!mhmA%fX0v}8zV9QYOlx0?av{X8B>Vk7%jFW^_fbmmcsw#w z{t>uRDxG(`UBWP=)oLN7BYP65iu9QLuL9^Lpy*dQzzTmkNklk3`NKG0HO>M+<+z;%7~VfbSMZ>QE-7A zAP3+W2#Jf(Pfwi#a0QqxMxxjxKsG_^f&y9Ze~iDOX&Sa$amH8>1Uu3ZaYs4;EH?oF z04SvxWBU09orspvh^Tv}X_}@+icQpz}vlO#dJr}j6|7XkqQM6~3cbH2KfkMGatbCzYU>nf#Q z$*+5Vj9VCnWm!u(8>mmw;Zvu6xBQm)ybL>gitrS-$z_A2L|S;}Je41c23Q^+7rSTrQWl zqvJTf(+MGMhpdO>Lr;6x&?%*eh=>3ngy5VDAq;Df8qp@(wq1YM-R*XHo(DnD?RH() zbsPr~saD_K)lH*p+wOEaMN#bc`@vw4BuTH=yI!wVRdLSsS>5TX@#YhVj^n87EX%Si z8;wSr&BpirvMg0lx7$re*LWv{{Fn-3j4?KuOcslU=XqsWwoSswd*jT{=QCq$Hk-}o zbIy6A{lDpyQvHATiilFm#xq9ASeEts`E)v6E|+et)0RCwC7mOV%tVHn4M_vQ-Kq*w>lzcu95C^7#VW5l0iyPn#@M>aW;-iw!=i|}mt!00`vm3X$g=_hEB%#1F z_lDE`57-yq+Erj$@9f6V4PG=qA@(G4uZZvacfJ)xshKBzpU>Za;&*madjED>1%}<` z7K|p9s4A+2YJq&;M@kujgb+1>3Scy;d~I$47#2X+wIl@H9#TrAlz5&O4%c;Y9EZWd zK{hrva2yBMb@6{Z4=H7pMpP9+X}UzC6-X&@T{i>-!j9u$+ct}fi_Fcauf;$Mn*>N?6F`HffLDO zvhL-~Qi8X6*%O0l)IMK+raZQ9w{;o#sP%(HEqeT+1;YpwKUq0gM0$@!AUY{QpUqXVjSSvS($GfS4 wrk_`w9~J>#t3c()_sjM#AKv}%H%R6808fqmOU-rXS^xk507*qoM6N<$f@hL@-2eap delta 827 zcmV-B1H}BW8|)jfzY2c?7fD1xRCwCFmcL6YOB}^NGrK5Q1vLrA%0dNgLcoB9YpP&n zV}2A5Ng-H@a(l1;f}lJ*#nM}-rG*3q5lwRojUoinJdlK7h$Q~l*_~Hq(Q6WYAnyxb zb`}oj%$YskVMQjB0SEz$KoS_^`|26k1^(XI+4(IpnM}y%^ZkDli^YgWql7}CZ&R{u zo3pbs4h{~eR;z<1usA(E&Ft(f0IutPo0wr3SeC`Z!vlwhhl>(OMj{a$$N5jKltL-> zC2S-T0Z5v_STGpGahxyjSZj^e8UP{0yJxEk27>@&68MsXX4|%nQi^0U$Lml0HDpoF++1}pf;^Lw$!PV6jD=RCc(`nM_ zblc6f6%#`6^z_8)>MEsD34lN#fZy-;FxS`D-Z~HnFg`xc{rx@t{rzoE;N<5AHrVlTspt@PJxt zT-QZw&CSgX<#L&+sVSD0me5+Gl)^O4cf`#Uw-kHpOiGE?n$giwip3&YYbuorySuyO zayb%-1crZMcyX3ea(jF0oy5qXf&`a3(K;+0Jwjy%kc0pwrx|d*V_tp6ca*tSIy+) zB++P;y}dnrJ|BaFgC42Ynp&-f>$+Zd8tQzdQW^94d@TXZ`_M29=H}+mTJ!k$=sA0v z+ICf~Rsr%R@T*WL{0xV~ErHD#H|MJ<(24xdDijI;zl?A=d{?X0e!RZE(%s!nS6A0N z!sat~aa|Y3alG}Pm{zTn;_mK_d_IqD+kc7w^B?5j0RSjFb#5Hou|@y@002ovPDHLk FV1isCmy`ei diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_repeat_normal.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_repeat_normal.png index 61d6bb1dad66f559e5744910aa351878f6b2a66a..e377fe89bdca199e045554f2e179e8adef471463 100644 GIT binary patch delta 643 zcmV-}0(||#8@C#;zzTn2NklHk(I55Om@=CW<0TrP8;NwAMU4JaBt^%Wyb6E&zXxIF7lvxY!spnM~$< zmAS4<9LL0Q4A3Y5mr)cg2&{9hHCk(oF>7O^C<3@F0Cge6(oCmkV~lmJHA*R3trp#G zcLBPrdLaZr-TSIlvsr(BZ;avT>4{#iN3B+4cXt;6$8lD+)td?|n@OJMq-n}vFjy(@ z{{BvqBvdLDs?~q01umQAQW(I;#|Mv(k0_=726`U8@6SQ3i02Um0i)4~VzIcgx&_$u zx!3EVl*02oPESuM7K?K+_xJYzgkeY+hNNkVl#=uF^SRiKU~g}403043+H9xoaU6%e zy*;Ycs;yRQ4SH-I2_tIV~kBo2*J+I z4y!a*!d%y7JRUO`3@ivhDP=cw)=H(4UHz?K)3fjUoSmKV`ua+@+r=1z5Mug8uoeV? zU7*>yZCrcVtd+}Ugb=*Eyx{x36`!@w=dCN76>?pdTCMiwO|S{9C8ey-wr1H({>7w} z0IdRW)9G}!zGAlVPNxHKQvj}$B;oGv4k_igLX=V@NkWn&0M{PyJJ0jucDvnZx7+{o dALRF+0RT_EV7|N5(1rj2002ovPDHLkV1kLgJX8Px delta 784 zcmV+r1MmE|8p0c}zzTouNklo zP}A`@_Gesat7t3G_H?uq2%&YeQi=ctm~Sb;vI!ZF=T@;cntxXGdF)X_h}?4CGB<_*L4ZQ zuwViQ<#L%?tp-3G$Dan%G>x^jHNr5&b=?CK*ee!`NGbnFNGX*F{w|8eBChN1nLs6* z&HfQgDK!F{2F+%(02Onvw!f?3XI^!t5IPfuyL z+iY!Zk;~=&A1r?iLoO~ZxVgERDDd#`!13`h)oPVmtu}FT6JeUBA*JNxq;AIq{PuE+>X(=>El=koHBAPBH+o1LAVL>FeQ2YVQp9nLQi|v2XTmUKX=#Z@qk&S2D2gymb0}X* zNfbrnVZTpDs)=I7_>bUG-d==FNIu8Ze+R4Nq=!$|C+>pCwlFUd;eayf($lVKnC zERJIeg#v%2Qi;2}JI>F~lL=j4U-R_zl;jH`=yW;&IF5s5S-ii$kM-`@Zj@4D7zX`* zAJ6lKDi6buFbqe8R#sLhm&^2eJ)$U@+#ut8rt3PUX;QD(xxc@s)oLMxz;PTL$4MGM zDaGvUEJ6r^Aeac63LAJ$O3A{)0^8f$v|24vsT669_VJSswzSVn$0G~Vv+OnbC#BtNT<`Z+ij$j zeKQn5P?DFW(lm`mqru6^2^SX^eaq@N4%^$?EG{mR%jIad+kH#=4yGsys;bgzwbF9eR4UM2Utb5$hGCG&WO#ghWMpInDJ4?M!C-$v2rSE@Uaw;q20J@DB$G*` zltF_O3Izc2`8H#bx&6@a4hfBu8~7y!&>F^F8v7r6ic002ovPDHLk FV1gZYZHWK? delta 770 zcmV+d1O5EE8?_s-zzTohNkl9u%VWbWa$1zEgOw7sUa&$VKJq0+~ zZ1&Tg3L#KRrF3hp>G%5+LH`-VQSV+xP9TK%FpZRwOeVw8(GlzG>l6wFy4^0lUJtD` zaU73rQ~^Vx7=V8$r7%qsrBq7W04$0kE-x>cpP#2zt6^Cd-EJ4H_1FnVf=MYcO_Ml| zxxT*U@$qqNx9xVDgf)9>we zn{v5KzuzAX_HP=65JPe|O%vbu3B!)oNSQ1u&}_(%L_sXy4@}p z7Z-S*N4T`)6-LWy&eGf_xB&f z5k(Qt&(8p?tgJ9MH%F2rL+p$N8^}KlLp;w*fdGOaAP9n?_-eJv*4Ea>VzHPqGRY=_4HkO2Uazydy2|lA_QL&~IC7N*`p z7<`3EItg1XXkj6uj)iR8C2=-ta^V*9b3X35^RpMnu|mhO4*-W}SDgV@i}@E604|OX z{te_0kKdI7fKsYk`@KP%BF}TAX@82cEUP(6DLl`E>$*Sc2Ah>`rVs*Q7;XUppe##- zVF)2aO{0ZMDUl?J)?$(*kWw~68+*z*uf~*8_`VNHDT<;%mSt7-oO3vi)6RaL=hX(r z7ziOyO2M{mFvhle-rD{;48y2^>m-E0vMlIyS}3Kob{I-2n5LC#iBL{Q4GJ0x0000DNk~Le0000F0000H2m$~A0F7v2_OT(K3V%aM zL_t(|+LTg3s=_c3oo1%#qy$`~r7Z~mQl7!3SMUzv$_u!0?VUvZ{4Sb8n~=YVlqz5F z&nn?P-prdf$$r0w&#G#^NC*KR7a`(5*mLa=g7@Bg4*-aWh)I&X)ppJe!?4+G0ARP< zDWzUI6A?|HaU89+@olYT<~jP%4u2sy=bUq0*R^dMfwpb4EJH*hBBD4_ay%Z#aqRnk zy~J_JrP4GdsYRS@7>0Lyh)|@(K7@$d?e=oH+-|qi=>!0))v73ps;cU`jvOC= z5K&60wJytYzRjX2nx-+vXsxA`i0B;-{9{6-jrscNJkbM00000NkvXXu0mjf^P0Be diff --git a/org.tizen.webuibuilder/res/icons/animator_zoom_handle_normal.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_snap_normal.png similarity index 86% rename from org.tizen.webuibuilder/res/icons/animator_zoom_handle_normal.png rename to org.tizen.webuibuilder/res/icons/animator_toolbar_snap_normal.png index b7ccaecea215066c9272d18755c747411014810d..782c46211894d03165974a0d281021e64778239e 100644 GIT binary patch delta 410 zcmV;L0cHNB7_Ar~iBL{Q4GJ0x0000DNk~Le0000L0000L2nGNE0I3(Hma!q93V&Eh zL_t(|+RT*As)H~Ph0hE!A}+cpf$rLZ_*#9n_6_v~k@%tg};QB_n`<%>lG#u$hQthFf15^dW80II4&k|fJc z-Dj=!3C0-2aSUcgk|Z$3c+FZH)XqXje`JP;_+2L=hzO!63Xa|)bO;ua;BU+V7(wT1 zgEb{091aKHAC9}c-EJ4?ACHu4@Ao^}wgnL(&+|aP-EL4-hzO3y<2rPjFm*YnFG82@ zzXPwm6CZEXe!pKV%CcB|Df0F^{deL06!KzTW$FU>Hq)$07*qoM6N<$ Eg46G`F#rGn delta 402 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 literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_snap_selected_push.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_snap_selected_push.png new file mode 100644 index 0000000000000000000000000000000000000000..53488adc0e8a830f3a56164979a43ed26c810f8b GIT binary patch literal 3172 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 KMNUMnLSTYSHR9O- literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_stop_hover.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_stop_hover.png index bf31ecb0c3bab3ca280590e9756a25e8f2d8c32d..db4f9864f7600690df469e699244c2f89fcea763 100644 GIT binary patch delta 134 zcmV;10D1qj7rqv-zzTk8NklWAn1A~a89}P`sU|{f;6QsJ)TOYlL zn*RU)e;T@-My4|{&=L^kc4ud2tm1q3?xkVK5Y#nl`l#tNF@5XStpnip(Q<}T(+_|6 oODogg?B7JAkO2Sy0RR630F)h3yOG|4Z2$lO07*qoM6N<$f?NMSFaQ7m delta 252 zcmV( zL4PV}a>Vkpd2te+=b5T4M?~AURiqQqIF5fu55sWKQ%V(k$8=`C{BCAH(PNANEh6Uv zW|mUI1qyU#Zknd=`^)IMuDHNK4yQ-Ea5}WbfpQk<> zH?#6-0y{%Qs`}^_!}Pj$t7pxYrzzS?vNklWAn14Dd#JdI3eVxT2pVPIhR|NsAx zG<^_+jI*;dR`I=i_tG$A2x=TPebjWCn7(!E)&X$)XgM>8P2aF#1C2}v00030{{sM` W(N8n7nb+6=0000Aac!M9(<`w1^xNm{}i&WAn1B0%vE)7j*Vq&79>5PnwG&G%= znR&>D3_-W2r>A2TpE+|T4MT>Y#!=Jpna;w(LS~X6q;c4X`=(8s25U($tjn1}T)r<} jyqHF&0{{R3|NjF3P&f*T=Xz{b00000NkvXXu0mjfB<(g; delta 273 zcmV+s0q*{}7RMK`zzTozNkl&3VEj&|g13T7Y?;UA4i^xnUS8(w%eLw%v~I`~FEs#ERN;bO1m^A_4#ac+IP- zs-~1gL{$ws5q(`IBJX|Mw%+^qJt?Ia<8d4@#+1@Uy7#{8x^aITzphTxwC}s^3^V8G zA%t9T2qDJ!movGrm00=*R|5m_ZR>= X8b{8do_u=%000R9NkvXXu0mjf%NUC> diff --git a/org.tizen.webuibuilder/res/icons/animator_zoom_panel.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_time_input_window.png similarity index 92% rename from org.tizen.webuibuilder/res/icons/animator_zoom_panel.png rename to org.tizen.webuibuilder/res/icons/animator_toolbar_time_input_window.png index 2ff300dbe76f3ea2b4cb03b65edf106f45987ca6..45ac510d47fe605a69ef5bfe81489419b2e45df6 100644 GIT binary patch delta 176 zcmX>rc0^3EGr-TCmrII^fq{Y7)59eQNS6Y!CViG{txF}GBKfm0*l5Ti8Lu8;ZmJ$J;c>osgLs+v@KzhlJ%+xhdBm}+VL z&Q;uTWqrff)$u-m^;|@L#eR9c|6lh@`9Iic2-QWGr-TCmrII^fq{Y7)59eQNJjy&AO{nWycDYQYop?PuKEg37srr_TW_vx z%B&H%?NCShAs0Y1*gzY~Kstn;y3K8mp~z_Vg>2 zr*k%H6iy2AayYK85tP<|7T`+xyWS#*Cf7koaYIdvk&@fzxoS(&7WWpA83+ad004OKq2{q6p9+7XNklsT~h~QAhGtZHO85 z_;7x0C}&hu82(hwui;PCf(f^%$6%>WMXMz3uQxJWxXq{v&ad71C8}f8g{Xc}OTjpV zUDR4J!BT;x!WB_jstx%+zbw^;KBKn2A;X9-00030{{sLFIURfjnPvq50000ERLtq)UNVl!FOKexGEvaiijVuIw;R7srr_TW@X} z3La1pU^v*`$zc;1YtW{U~X78AC<$kEfc@er`=*?VEF%^nPJfpR&B*T{a&C|44$rjF6*2UngF!- BIgkJV delta 245 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 literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_normal.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..9f8f6247ff398eeb81aff1594c1b7a28785de1ad GIT binary patch literal 2927 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 literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_push.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_minus_push.png new file mode 100644 index 0000000000000000000000000000000000000000..9618e17a5913be9d98cd71d012348aa42dfe71f5 GIT binary patch literal 3011 zcmV;!3q16RP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002)Nklz>lvwv_<$JU^#tLIQOh z$8W&^p63A|gkYMcS^}l-`&^9>0ssl%IL>835Cj0F1dvj4H@gPoIAV-B1kyAm&-1_+9XJ?H})Vf-K8WN*%&kmi;ZLs*0+r?ho<6LIX%`|thH#Z0Xhl1`o5>{`&-}na{x8CL--ts)-?bC002ovPDHLk FV1isinc)Bc literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_hover.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..11b4056925b3104a78ba22beb265e19d209e9321 GIT binary patch literal 3073 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 M07*qoM6N<$g1|t5MgRZ+ literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_push.png b/org.tizen.webuibuilder/res/icons/animator_toolbar_timeline_zoom_plus_push.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a8db57d527e82ca6822d32fe89d0f355eb1bbb GIT binary patch literal 3086 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 literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_view_timeline.png b/org.tizen.webuibuilder/res/icons/animator_view_timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f09b8b0684550064cfeb0da85c219beb808aef GIT binary patch literal 3177 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 P00000NkvXXu0mjfy87=x literal 0 HcmV?d00001 diff --git a/org.tizen.webuibuilder/res/icons/animator_zoom_in_normal.png b/org.tizen.webuibuilder/res/icons/animator_zoom_in_normal.png deleted file mode 100644 index 40be1e5589e5e9f1f6d9fb5ef619ffbb1be1c8e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3097 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 diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContentContainer.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContentContainer.java index 23e8360..7d6a3cd 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContentContainer.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContentContainer.java @@ -39,7 +39,6 @@ import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Scale; import org.eclipse.swt.widgets.ScrollBar; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; @@ -105,7 +104,8 @@ public class TimelineContentContainer extends Composite { contentHeaderContainer = new TimelineContentHeaderContainer(this, SWT.NONE); FormData contentHeaderContainerFormData = new FormData(); contentHeaderContainerFormData.top = new FormAttachment(0); - contentHeaderContainerFormData.bottom = new FormAttachment(0, TimelineConstants.DEFAULT_TIMEBAR_HEIGHT); + contentHeaderContainerFormData.bottom = + new FormAttachment(0, TimelineConstants.DEFAULT_TIMEBAR_HEIGHT); contentHeaderContainerFormData.left = new FormAttachment(0); contentHeaderContainerFormData.right = new FormAttachment(100); contentHeaderContainer.setLayoutData(contentHeaderContainerFormData); @@ -117,7 +117,7 @@ public class TimelineContentContainer extends Composite { FormData contentTreeContainerFormData = new FormData(); contentTreeContainerFormData.top = new FormAttachment(contentHeaderContainer, 0); - contentTreeContainerFormData.bottom = new FormAttachment(100, -25); + contentTreeContainerFormData.bottom = new FormAttachment(100, -20); contentTreeContainerFormData.left = new FormAttachment(0, 0); contentTreeContainerFormData.right = new FormAttachment(100, 0); contentTreeContainer.setLayoutData(contentTreeContainerFormData); @@ -134,7 +134,7 @@ public class TimelineContentContainer extends Composite { // Content Tools Container contentToolsContainer = new TimelineContentToolsContainer(this, SWT.NONE); FormData contentToolsContainerFormData = new FormData(); - contentToolsContainerFormData.top = new FormAttachment(contentTreeContainer, 3); + contentToolsContainerFormData.top = new FormAttachment(contentTreeContainer); contentToolsContainerFormData.bottom = new FormAttachment(100); contentToolsContainerFormData.left = new FormAttachment(0); contentToolsContainerFormData.right = new FormAttachment(100); @@ -217,44 +217,6 @@ public class TimelineContentContainer extends Composite { } }); - // Scale changing - contentToolsContainer.getScale().addListener(SWT.Selection, new Listener() { - @Override - public void handleEvent(Event event) { - Scale scaler = (Scale) event.widget; - - TimeBar timeBar = contentHeaderContainer.getKeyframeHeader().getTimeBar(); - - int currentValue = scaler.getSelection(); - double timeScale = 0.0d; - switch (currentValue) { - case 1: - timeScale = TimeBar.SCALE_50; - scaler.setToolTipText("50%"); - break; - case 2: - timeScale = TimeBar.SCALE_100; - scaler.setToolTipText("100%"); - break; - case 3: - timeScale = TimeBar.SCALE_200; - scaler.setToolTipText("200%"); - break; - case 4: - timeScale = TimeBar.SCALE_400; - scaler.setToolTipText("400%"); - break; - } - timeBar.setScale(timeScale); - timeBar.redraw(); - - PlayHeader marker = timeBar.getPlayHeader(); - marker.draw(true); - - refeshTimeline(); - } - }); - // H Scroll change contentToolsContainer.gethScroll().addSelectionListener(new SelectionListener() { @Override @@ -282,22 +244,6 @@ public class TimelineContentContainer extends Composite { } }); - // filter - contentToolsContainer.getFilter().addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - boolean isFilter = contentToolsContainer.isFilter(); - contentToolsContainer.setFilter(!isFilter); - viewer.refreshClickedFilter(); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); } /********************************************************************************************** @@ -353,7 +299,7 @@ public class TimelineContentContainer extends Composite { /** * Refresh tree items in timeline */ - private void refeshTimeline() { + public void refeshTimeline() { TreeItem[] items = contentTree.getItems(); for (TreeItem item : items) { TreeItem[] childItems = item.getItems(); @@ -403,13 +349,14 @@ public class TimelineContentContainer extends Composite { } else { hScroll.setMaximum(lastTimeSel + TimelineConstants.DEFAULT_HSCROLL_EXPANSION); } - + if (scrollMove == 1 || scrollMove == 2) { - hScroll.setSelection(lastTimeSel - TimelineConstants.DEFAULT_HSCROLL_EXPANSION); + hScroll.setSelection(lastTimeSel); } - + // start Time - if ((path == 0 && (startTime <= MINT_TIMEPOINT)) || ((pointTime <= MINT_TIMEPOINT) && scrollMove == 2)) { + if ((path == 0 && (startTime <= MINT_TIMEPOINT)) + || ((pointTime <= MINT_TIMEPOINT) && scrollMove == 2)) { startTime = 0; hScroll.setSelection(0); } else if (scrollMove == 2) { @@ -417,7 +364,8 @@ public class TimelineContentContainer extends Composite { startTime = (pointTime - MINT_TIMEPOINT); } else { // last Time - startTime = (int) (startTime + ((incrementSize / timeBar.getScale()) * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL)); + startTime = + (int) (startTime + ((incrementSize / timeBar.getScale()) * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL)); } if (scrollMove == 1 || scrollMove == 2) { diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContextMenu.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContextMenu.java index 255b105..323691f 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContextMenu.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContextMenu.java @@ -69,7 +69,9 @@ public class TimelineContextMenu extends ContextMenu { private MenuManager buildContextPredefineMenu() { IAction action = null; - MenuManager addPKeyframes = new MenuManager(TimelineMessages.ADD_PREDEFINED_KEYFRAME); + MenuManager addPKeyframes = + new MenuManager(TimelineMessages.ADD_PREDEFINED_KEYFRAME, + TimelineMessages.ADD_PREDEFINED_KEYFRAME); AppManager appManager = AnimatorUtils.getAppManager(); AnimatorDescriptorManager manager = AnimatorDescriptorManager.getInstance(appManager); @@ -97,7 +99,7 @@ public class TimelineContextMenu extends ContextMenu { } } if (isFind == false) { - preDefineKeyFrames = new MenuManager(category); + preDefineKeyFrames = new MenuManager(category, category); addPKeyframes.add(preDefineKeyFrames); } } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineMainContainer.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineMainContainer.java index 6fe7ed9..7124877 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineMainContainer.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineMainContainer.java @@ -88,7 +88,7 @@ public class TimelineMainContainer extends Composite { FormData contentContainerFormData = new FormData(); contentContainerFormData.top = new FormAttachment(toolbar, 1); - contentContainerFormData.bottom = new FormAttachment(100, -3); + contentContainerFormData.bottom = new FormAttachment(100, 0); contentContainerFormData.left = new FormAttachment(0, 7); contentContainerFormData.right = new FormAttachment(100, -7); diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelinePage.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelinePage.java index 2b5dfa4..a888563 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelinePage.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelinePage.java @@ -121,6 +121,7 @@ public class TimelinePage extends ContentOutlinePage { /* * (non-Javadoc) + * * @see org.eclipse.ui.part.Page#setActionBars(org.eclipse.ui.IActionBars) */ @Override @@ -327,7 +328,7 @@ public class TimelinePage extends ContentOutlinePage { actionBars.updateActionBars(); } } - + /** * Change mode Animator Editor or Designer Editor * @@ -403,8 +404,7 @@ public class TimelinePage extends ContentOutlinePage { // refresh h-scroll getMainContainer().getContentContainer().refreshHScroll(0, 0, 0, 0); // refresh filter - getMainContainer().getContentContainer().getContentToolsContainer() - .setFilter(false); + getMainContainer().getTimelineToolbar().setFilter(false); if (animatorBrowserViwer != null && viewer != null) { viewer.refreshTimelineViewer(); viewer.setContents(model); diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineViewer.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineViewer.java index a1cbf3b..bf78735 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineViewer.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineViewer.java @@ -569,9 +569,7 @@ public class TimelineViewer extends TreeViewer implements ISelectionChangedListe Display.getDefault().asyncExec(new Runnable() { @Override public void run() { - boolean isFilter = - getMainContainer().getContentContainer().getContentToolsContainer() - .isFilter(); + boolean isFilter = getMainContainer().getTimelineToolbar().isFilter(); if (isFilter == true) { applyfilter(); } else { @@ -593,9 +591,7 @@ public class TimelineViewer extends TreeViewer implements ISelectionChangedListe Display.getDefault().asyncExec(new Runnable() { @Override public void run() { - boolean isFilter = - getMainContainer().getContentContainer().getContentToolsContainer() - .isFilter(); + boolean isFilter = getMainContainer().getTimelineToolbar().isFilter(); if (isFilter == true) { if (isAdd == true) { boolean isExist = findModelInTree(model); @@ -884,12 +880,12 @@ public class TimelineViewer extends TreeViewer implements ISelectionChangedListe @Override public void animationAdd(AnimatorModelEvent e) { - getMainContainer().getContentContainer().getContentToolsContainer().setFilter(false); + getMainContainer().getTimelineToolbar().setFilter(true); } @Override public void animationRemove(AnimatorModelEvent e) { - getMainContainer().getContentContainer().getContentToolsContainer().setFilter(false); + getMainContainer().getTimelineToolbar().setFilter(false); } @Override diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineConstants.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineConstants.java index 257c7cf..78c1bb1 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineConstants.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineConstants.java @@ -38,13 +38,14 @@ public class TimelineConstants { public static final int DEFAULT_LIFE_WIDGET_MIN_WIDTH = 10; public static final int DEFAULT_KEYFRAME_CONTROL_HEIGHT = 5; + public static final int DEFAULT_KEYFRAME_CONTROL_WIDTH = 11; public static final int DEFAULT_FRAME_WIDGET_WIDTH = 13; public static final int DEFAULT_FRAME_WIDGET_HEIGHT = 13; public static final int DEFAULT_FRAME_WIDGET_HALF_WIDTH = 6; public static final int DEFAULT_FRAME_WIDGET_CENTER_POINT = 7; - public static final int DEFAULT_FRAME_WIDGET_MARGIN = DEFAULT_KEYFRAME_MARGIN + 1 ; - public static final int DEFAULT_FRAME_WIDGET_MARGIN_LINUX = DEFAULT_KEYFRAME_MARGIN_LINUX + 1 ; + public static final int DEFAULT_FRAME_WIDGET_MARGIN = DEFAULT_KEYFRAME_MARGIN + 1; + public static final int DEFAULT_FRAME_WIDGET_MARGIN_LINUX = DEFAULT_KEYFRAME_MARGIN_LINUX + 1; public static final int DEFAULT_TIMELINE_LEFT_MARGIN = 3; public static final int DEFAULT_TIMEBAR_HEIGHT = 26; @@ -74,9 +75,9 @@ public class TimelineConstants { public static final int DEFAULT_TREE_SEPERATORCOLUMN_WIDTH = 0; public static final int DEFAULT_TREE_KEYFRAMECOLUMN_WIDTH = 100; public static final int DEFAULT_TREE_KEYFRAMECOLUMN_MIN_WIDTH = 50; - + public static final int DEFAULT_SASH_SEPERATOR_MARGIN_WIDTH = 11; - + public static final int DEFAULT_TIMELINE_TREE_HEIGHT = 23; public static final int DEFAULT_TIMELINE_TREE_HEIGHT_LINUX = 22; public static final int DEFAULT_TIMELINE_TREEITEM_HEIGHT = 21; diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.java index 0382b3e..5e06aad 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.java @@ -38,7 +38,7 @@ public class TimelineMessages { public static String PASTE_KEYFRAME; public static String Z_ORDER; - + public static String NEW_ANIMATION_GROUP; public static String DELETE_ANIMATION_GROUP; public static String EDIT_ANIMATION_GROUP; @@ -81,6 +81,11 @@ public class TimelineMessages { public static String START_TIME; public static String END_TIME; + public static String FILTER; + + public static String ZOOM_IN; + public static String ZOOM_OUT; + static { NLS.initializeMessages(BUNDLE_NAME, TimelineMessages.class); } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.properties b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.properties index 9c5de08..63e06f9 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.properties +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/TimelineMessages.properties @@ -31,8 +31,8 @@ WARNING = Warning NOTICE = Notice NONE = NONE -FORWARD = Move 0s -BACKWARD = Move last KeyFrame +FORWARD = Move last KeyFrame +BACKWARD = Move 0s PLAY = Play STOP = Stop REPEAT = Repeat @@ -50,3 +50,8 @@ ANIMATIONS = Animations - PLAY_TIME = Play Time - START_TIME = Start Time - END_TIME = End Time - + +FILTER = Filter + +ZOOM_IN = Zoom In +ZOOM_OUT = Zoom Out diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/PlayHeader.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/PlayHeader.java index 7585dfb..56bc1f8 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/PlayHeader.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/PlayHeader.java @@ -142,8 +142,8 @@ public class PlayHeader extends Composite { setPositionMarker(TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0); setCurrentPointTime(0); } else { - setPositionMarker((rMarker.x - mouseDownPoint + e.x) * TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL); - setLocation(getPositionMarker() / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL, + setPositionMarker((rMarker.x - mouseDownPoint + e.x)); + setLocation(getPositionMarker(), TimelineConstants.DEFAULT_TIMELINE_MARKER_Y); } @@ -205,7 +205,7 @@ public class PlayHeader extends Composite { this.setLocation(TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0, TimelineConstants.DEFAULT_TIMELINE_MARKER_Y); } else { - int timelineMarkerX = (int) ((getCurrentPointTime() * scale) - (startTime * scale)) / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL ; + int timelineMarkerX = (int) ((getCurrentPointTime() * scale) - (startTime * scale)) / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL; this.setLocation(timelineMarkerX, TimelineConstants.DEFAULT_TIMELINE_MARKER_Y); } @@ -260,10 +260,9 @@ public class PlayHeader extends Composite { */ public int getPlayHeaderTime() { double scale = ((TimeBar) getParent()).getScale(); - double startTime = ((TimeBar) getParent()).getStartTime(); + int startTime = ((TimeBar) getParent()).getStartTime(); - return (int) (((positionMarker / scale) + (startTime))); - /// TimelineConstants.DEFAULT_TIME_MILLISECOND; + return (int) (((positionMarker/scale)*TimelineConstants.DEFAULT_TIME_INTERVAL + (startTime))); } /** diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBar.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBar.java index 340ab6e..3bf538f 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBar.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBar.java @@ -174,7 +174,7 @@ public class TimeBar extends Canvas { toolBar.stopPlaying(); playHeader.setLocation(positionTime / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL, playHeader.getBounds().y); - playHeader.setPositionMarker(positionTime); + playHeader.setPositionMarker(positionTime / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL); int pointTime = playHeader.getPlayHeaderTime(); playHeader.setCurrentPointTime(pointTime); diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBarRenderer.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBarRenderer.java index 12ebc61..9e2178b 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBarRenderer.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBarRenderer.java @@ -103,9 +103,9 @@ public class TimeBarRenderer { drawTimeString(gc, startTime, xPixel, -1); gc.drawLine(xPixel, 0, xPixel, rt.height); } else if (startTime % 5 == 0) { - gc.drawLine(xPixel, rt.height - 8, xPixel, rt.height); + gc.drawLine(xPixel, rt.height - 12, xPixel, rt.height); } else { - gc.drawLine(xPixel, rt.height - 4, xPixel, rt.height); + gc.drawLine(xPixel, rt.height - 6, xPixel, rt.height); } } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineContentHeaderContainer.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineContentHeaderContainer.java index 2313543..9a45380 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineContentHeaderContainer.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineContentHeaderContainer.java @@ -52,7 +52,7 @@ public class TimelineContentHeaderContainer extends Composite { private TimelineOutlineHeader outlineHeader = null; private TimelineKeyframeHeader keyframeHeader = null; - private static final int OUTLINE_HEADER_MIN_WIDTH = 225; + private static final int OUTLINE_HEADER_MIN_WIDTH = 250; private static final int OUTLINE_HEADER_MAX_WIDTH = 450; private boolean isMinWidth = false; @@ -156,7 +156,7 @@ public class TimelineContentHeaderContainer extends Composite { // Keyframe Header keyframeHeader = new TimelineKeyframeHeader(contentHeadersashForm, SWT.BORDER); - contentHeadersashForm.setWeights(new int[] { 225, 666 }); + contentHeadersashForm.setWeights(new int[] { 263, 900 }); } /** diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineOutlineHeader.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineOutlineHeader.java index 0eca333..5b54933 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineOutlineHeader.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimelineOutlineHeader.java @@ -168,6 +168,7 @@ public class TimelineOutlineHeader extends Composite { menuDropDownButtonFormData.top = new FormAttachment(0, 1); menuDropDownButtonFormData.right = new FormAttachment(100); menuDropDownButton.setLayoutData(menuDropDownButtonFormData); + menuDropDownButton.setToolTipText(TimelineMessages.ADD_PREDEFINED_KEYFRAME); menuDropDownButton.addPaintListener(new PaintListener() { @Override @@ -233,8 +234,7 @@ public class TimelineOutlineHeader extends Composite { viewer.setContents(animationGroup); viewer.refreshTimelineViewer(); //refresh filter - getTimelineMainContainer().getContentContainer().getContentToolsContainer().setFilter(false); - + getTimelineMainContainer().getTimelineToolbar().setFilter(false); setTime2Zero(); } }); diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineContentToolsContainer.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineContentToolsContainer.java index 7fedb56..b91da17 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineContentToolsContainer.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineContentToolsContainer.java @@ -30,9 +30,7 @@ import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Scale; import org.eclipse.swt.widgets.ScrollBar; import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineContentContainer; @@ -43,13 +41,9 @@ import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineContentContaine */ public class TimelineContentToolsContainer extends Composite { - private Button filter = null; - private Composite toolsScalerContainer = null; - private Scale scale = null; private Composite toolsSliderContainer = null; private ScrollBar hScroll = null; - private boolean isFilter = false; /** * Construct * @@ -79,20 +73,6 @@ public class TimelineContentToolsContainer extends Composite { this.setLayout(new FormLayout()); this.setData("CompositeName", "contentToolsContainer"); - //button - filter = new Button(this, SWT.NONE); - filter.setData("name", "filter"); - filter.setText("filter"); - FormData filterFormData = new FormData(); - filterFormData.top = new FormAttachment(0); - filterFormData.bottom = new FormAttachment(100); - filterFormData.left = new FormAttachment(0); - filterFormData.right = new FormAttachment(10); - filter.setLayoutData(filterFormData); - //todo true - //filter.setEnabled(false); - //filter.setVisible(false); - // Scroll bar toolsSliderContainer = new Composite(this, SWT.H_SCROLL); toolsSliderContainer.setData("CompositeName", "toolsSlider"); @@ -102,7 +82,7 @@ public class TimelineContentToolsContainer extends Composite { scrollFormData.top = new FormAttachment(0); scrollFormData.bottom = new FormAttachment(100); scrollFormData.left = new FormAttachment(20); - scrollFormData.right = new FormAttachment(100, -120); + scrollFormData.right = new FormAttachment(100); toolsSliderContainer.setLayoutData(scrollFormData); hScroll = toolsSliderContainer.getHorizontalBar(); @@ -114,33 +94,6 @@ public class TimelineContentToolsContainer extends Composite { hScroll.setPageIncrement(10); hScroll.setThumb(30); - // Scaler - toolsScalerContainer = new Composite(this, SWT.NONE); - toolsScalerContainer.setData("CompositeName", "toolsScaler"); - toolsScalerContainer.setLayout(new FormLayout()); - - FormData toolsScalerContainerFormData = new FormData(); - toolsScalerContainerFormData.top = new FormAttachment(0); - toolsScalerContainerFormData.bottom = new FormAttachment(100); - toolsScalerContainerFormData.left = new FormAttachment(toolsSliderContainer, 10); - toolsScalerContainerFormData.right = new FormAttachment(100); - toolsScalerContainer.setLayoutData(toolsScalerContainerFormData); - - scale = new Scale(toolsScalerContainer, SWT.HORIZONTAL); - scale.setData("CompositeName", "scale"); - - FormData scaleFormData = new FormData(); - scaleFormData.top = new FormAttachment(0, -9); - scaleFormData.bottom = new FormAttachment(100); - scaleFormData.left = new FormAttachment(0); - scaleFormData.right = new FormAttachment(100); - scale.setLayoutData(scaleFormData); - - scale.setMinimum(1); - scale.setMaximum(4); - scale.setIncrement(1); - scale.setSelection(2); - } /********************************************************************************************** @@ -157,9 +110,8 @@ public class TimelineContentToolsContainer extends Composite { FormData scrollFormData = (FormData) toolsSliderContainer.getLayoutData(); scrollFormData.left = new FormAttachment(0, area.width + 10); - - toolsSliderContainer.setBounds(area.width + 10, bounds.y, parentArea.width - area.width - - 120, bounds.height); + toolsSliderContainer.setBounds(area.width + 10, bounds.y, parentArea.width + - (area.width + 10), bounds.height); } /********************************************************************************************** @@ -167,44 +119,6 @@ public class TimelineContentToolsContainer extends Composite { **********************************************************************************************/ /** - * Get Scale container - * - * @return {@link Composite} Scale container - */ - public Composite getToolsScalerContainer() { - return toolsScalerContainer; - } - - /** - * Set Scal container - * - * @param toolsScalerContainer - * {@link Composite} Scale container - */ - public void setToolsScalerContainer(Composite toolsScalerContainer) { - this.toolsScalerContainer = toolsScalerContainer; - } - - /** - * Get Scale - * - * @return {@line Scale} - */ - public Scale getScale() { - return scale; - } - - /** - * Set Scale - * - * @param scale - * {@link Scale} - */ - public void setScale(Scale scale) { - this.scale = scale; - } - - /** * Get horizontal scroll container * * @return {@link Composite} Horizontal scroll container @@ -241,36 +155,4 @@ public class TimelineContentToolsContainer extends Composite { public void sethScroll(ScrollBar hScroll) { this.hScroll = hScroll; } - - /** - * Get Filter Button - * @return - */ - public Button getFilter() { - return filter; - } - - /** - * Set Filter Button - * @param filter - */ - public void setFilter(Button filter) { - this.filter = filter; - } - - /** - * Check Filter flag - * @return - */ - public boolean isFilter() { - return isFilter; - } - - /** - * Set Filter flag - * @param isFilter - */ - public void setFilter(boolean isFilter) { - this.isFilter = isFilter; - } } diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineToolbar.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineToolbar.java index 0f1b987..32fac14 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineToolbar.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineToolbar.java @@ -40,8 +40,10 @@ import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FormAttachment; @@ -54,9 +56,11 @@ import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.Scale; import org.eclipse.swt.widgets.ScrollBar; import org.eclipse.swt.widgets.Text; import org.tizen.webuibuilder.BuilderConstants; +import org.tizen.webuibuilder.animator.AnimatorConstants; import org.tizen.webuibuilder.animator.gef.command.AnimationPropertyChangeCommand; import org.tizen.webuibuilder.animator.gef.viewer.AnimationEvent; import org.tizen.webuibuilder.animator.gef.viewer.AnimatorBrowserViewer; @@ -67,11 +71,14 @@ import org.tizen.webuibuilder.animator.model.AnimatorModel; import org.tizen.webuibuilder.animator.model.AnimatorModelEvent; import org.tizen.webuibuilder.animator.model.AnimatorModelListenerAdapter; import org.tizen.webuibuilder.animator.model.AnimatorSelector; +import org.tizen.webuibuilder.animator.model.descriptor.AnimatorDescriptorManager; +import org.tizen.webuibuilder.animator.model.descriptor.CssAnimationDescriptor; import org.tizen.webuibuilder.animator.model.part.AnimatorPagePart; import org.tizen.webuibuilder.animator.model.part.AnimatorPart; import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineContentContainer; import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineMainContainer; import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineViewer; +import org.tizen.webuibuilder.animator.ui.views.timeline.action.AddPredefinedKeyFrameAction; import org.tizen.webuibuilder.animator.ui.views.timeline.common.ColorResource; import org.tizen.webuibuilder.animator.ui.views.timeline.common.Formatter; import org.tizen.webuibuilder.animator.ui.views.timeline.common.TimelineConstants; @@ -82,6 +89,7 @@ import org.tizen.webuibuilder.animator.ui.views.timeline.widget.KeyFrame; import org.tizen.webuibuilder.animator.ui.views.timeline.widget.KeyFrameComponent; import org.tizen.webuibuilder.animator.utils.AnimatorUtils; import org.tizen.webuibuilder.model.Part; +import org.tizen.webuibuilder.model.app.AppManager; import org.tizen.webuibuilder.utility.Platform; import org.tizen.webuibuilder.utility.ResourceManager; @@ -104,8 +112,20 @@ public class TimelineToolbar extends Composite implements IAnimationListener { private Button easing = null; private String easeData = null; + private Button predefinedPanel = null; + private Button predefined = null; + + // private Button snap = null; + private Button filter = null; + + private Composite scaleContainer = null; + private Scale scale = null; + private Button zoomIn = null; + private Button zoomOut = null; + private boolean isRepeat = true; private boolean isPlaying = false; + private boolean isFilter = false; private String selectedAnimationGroupId = null; @@ -120,6 +140,11 @@ public class TimelineToolbar extends Composite implements IAnimationListener { // , 4:select down, 5:select hover private int repeatButtonState = 0; // 0:nomal , 1:down, 2:hover private int easingButtonState = 0; // 0:nomal , 1:down, 2:hover + private int predefinedButtonState = 0; // 0:nomal , 1:down, 2:hover + private int filterButtonState = 0; // 0:nomal , 1:down, 2: hover 3:select nomal + // , 4:select down, 5:select hover + private int zoomInButtonState = 0; // 0:nomal , 1:down, 2:hover + private int zoomOutButtonState = 0; // 0:nomal , 1:down, 2:hover /** * Construct @@ -145,7 +170,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { @Override public void widgetDisposed(DisposeEvent e) { AnimatorBrowserViewer.removeAnimationListener(TimelineToolbar.this); - + TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); Part rootPart = mainContainer.getPage().getRootPart(); ((AnimatorPart) rootPart).removeAnimatorModelListener(animatorModelEventAdapter); @@ -162,182 +187,6 @@ public class TimelineToolbar extends Composite implements IAnimationListener { public void createControls(Composite parent) { setLayout(new FormLayout()); - // TimeText - // ------------------------------------------------------------------------------- - timeText = new Text(this, SWT.SINGLE | SWT.CENTER); - - FormData timeTextFormData = new FormData(); - timeTextFormData.top = new FormAttachment(0, 4); - timeTextFormData.left = new FormAttachment(0, 269); - timeTextFormData.width = 113; - timeTextFormData.height = 21; - timeText.setLayoutData(timeTextFormData); - timeText.setBackgroundImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_time_text.png")); - setCurrentTime("00 : 00 . 000"); - - timeText.addFocusListener(new FocusListener() { - - @Override - public void focusLost(FocusEvent e) { - timeText.clearSelection(); - } - - @Override - public void focusGained(FocusEvent e) { - // TODO Auto-generated method stub - - } - }); - - timeText.addKeyListener(new KeyListener() { - - @Override - public void keyReleased(KeyEvent e) { - // TODO Auto-generated method stub - char myChar = e.character; - int caret = timeText.getCaretPosition(); - - String fullTime = timeText.getText(); - String[] first = null; - String[] second = null; - first = fullTime.split(":"); - second = fullTime.split(Pattern.quote(".")); - - int firstSplit = first[0].length() - 1; - int secSplit = second[0].length() - 1; - - boolean isNumber = Character.isDigit(myChar); - if (isNumber) { - if (caret <= firstSplit) { - - setCurrentTime(fullTime); - setTimeTextPoint(); - timeText.setSelection(caret); - } else if (caret > firstSplit + 3 && caret <= firstSplit + 5) { - int count = secSplit - firstSplit; - if (count > 5) { - if (firstSplit + 4 == caret) { - char lastSec = second[0].charAt(second[0].length() - 2); - fullTime = first[0] + ": " + myChar + lastSec + " ." + second[1]; - } else { - char firstSec = second[0].charAt(second[0].length() - 4); - fullTime = first[0] + ": " + firstSec + myChar + " ." + second[1]; - } - } else if (count <= 4) { - fullTime = first[0] + ": " + myChar + "0" + " ." + second[1]; - } else { - } - setCurrentTime(fullTime); - setTimeTextPoint(); - timeText.setSelection(caret); - } else if (caret > firstSplit + 8 && caret <= firstSplit + 11) { - int count = second[1].length(); - if (count > 4) { - fullTime = second[0] + "." + second[1].substring(0, 4); - } else if (count == 0 || count == 1) { - fullTime = second[0] + "." + " 000"; - } else if (count == 2) { - fullTime = second[0] + "." + second[1].substring(0, 2) + "00"; - } else if (count == 3) { - fullTime = second[0] + "." + second[1].substring(0, 3) + "0"; - } - setCurrentTime(fullTime); - setTimeTextPoint(); - timeText.setSelection(caret); - } else { - e.doit = false; - } - } - - if (caret > firstSplit && caret <= firstSplit + 2) { - timeText.setSelection(firstSplit + 3); - } else if (caret > secSplit && caret < secSplit + 3) { - timeText.setSelection(secSplit + 3); - } - } - - @Override - public void keyPressed(KeyEvent e) { - String fullTime = timeText.getText(); - char myChar = e.character; - int caret = timeText.getCaretPosition(); - - int selectionCount = timeText.getSelectionCount(); - - String[] first = null; - first = fullTime.split(":"); - int firstSplit = first[0].length() - 1; - - boolean isNumber = Character.isDigit(myChar); - if (isNumber) { - if (caret <= firstSplit) { - } else if ((selectionCount >= 1 && caret > firstSplit + 1 && caret <= firstSplit + 5) - || (selectionCount == 0 && caret >= firstSplit + 3 && caret < firstSplit + 5)) { - } else if ((selectionCount >= 1 && caret > firstSplit + 7 && caret <= firstSplit + 11) - || (selectionCount == 0 && caret >= firstSplit + 8 && caret < firstSplit + 11)) { - } else { - e.doit = false; - } - } else if (e.keyCode == SWT.ARROW_LEFT || e.keyCode == SWT.ARROW_RIGHT) { - - } else { - e.doit = false; - } - } - }); - - timeText.addMouseListener(new MouseListener() { - - @Override - public void mouseUp(MouseEvent e) { - int caret = timeText.getCaretPosition(); - String fullTime = timeText.getText(); - - String[] first = null; - String[] second = null; - first = fullTime.split(":"); - second = fullTime.split(Pattern.quote(".")); - - int firstSplit = first[0].length() - 1; - int secSplit = second[0].length() - 1; - - if (caret < firstSplit) { - timeText.setSelection(0, firstSplit); - } else if (caret > firstSplit && caret <= secSplit) { - timeText.setSelection(firstSplit + 3, secSplit); - } else if (caret > secSplit) { - timeText.setSelection(secSplit + 3, secSplit + 6); - } - } - - @Override - public void mouseDown(MouseEvent e) { - } - - @Override - public void mouseDoubleClick(MouseEvent e) { - - } - }); - - timeText.addListener(SWT.Paint, new Listener() { - - @Override - public void handleEvent(Event event) { - GC gc = event.gc; - String time = timeText.getText(); - - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_time_text.png"), 0, 0); - - if (time != null) { - timeText.setForeground(ColorResource.WHITE); - gc.drawText(time, 22, 3, true); - } - } - }); - // Animation play control // ------------------------------------------------------------------------------ // Backward @@ -345,12 +194,12 @@ public class TimelineToolbar extends Composite implements IAnimationListener { backward = new Button(this, SWT.NONE); FormData backwardFormData = new FormData(); - backwardFormData.top = new FormAttachment(0, 4); - backwardFormData.left = new FormAttachment(0, 390); + backwardFormData.top = new FormAttachment(0, 3); + backwardFormData.left = new FormAttachment(0, 0); backwardFormData.width = 31; backwardFormData.height = 21; backward.setLayoutData(backwardFormData); - backward.setToolTipText(TimelineMessages.FORWARD); + backward.setToolTipText(TimelineMessages.BACKWARD); backward.addListener(SWT.Paint, paintListener); backward.addMouseListener(new MouseAdapter() { @@ -411,8 +260,8 @@ public class TimelineToolbar extends Composite implements IAnimationListener { playNpause = new Button(this, SWT.TOGGLE); FormData playNpauseFormData = new FormData(); - playNpauseFormData.top = new FormAttachment(0, 4); - playNpauseFormData.left = new FormAttachment(0, 421); + playNpauseFormData.top = new FormAttachment(0, 3); + playNpauseFormData.left = new FormAttachment(backward); playNpauseFormData.width = 31; playNpauseFormData.height = 21; playNpause.setLayoutData(playNpauseFormData); @@ -485,12 +334,12 @@ public class TimelineToolbar extends Composite implements IAnimationListener { forward = new Button(this, SWT.NONE); FormData forwardFormData = new FormData(); - forwardFormData.top = new FormAttachment(0, 4); - forwardFormData.left = new FormAttachment(0, 452); + forwardFormData.top = new FormAttachment(0, 3); + forwardFormData.left = new FormAttachment(playNpause); forwardFormData.width = 32; forwardFormData.height = 21; forward.setLayoutData(forwardFormData); - forward.setToolTipText(TimelineMessages.BACKWARD); + forward.setToolTipText(TimelineMessages.FORWARD); forward.addListener(SWT.Paint, paintListener); forward.addMouseListener(new MouseAdapter() { @@ -505,22 +354,10 @@ public class TimelineToolbar extends Composite implements IAnimationListener { forButtonState = 1; setLastAnimationPoint(); - - TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); - TimelineContentToolsContainer contentToolsContainer = - mainContainer.getContentContainer().getContentToolsContainer(); - ScrollBar horizontalScrollBar = contentToolsContainer.gethScroll(); - horizontalScrollBar.setSelection(0); - - Event event = new Event(); - event.display = getDisplay(); - event.widget = horizontalScrollBar; - event.x = 0; - horizontalScrollBar.notifyListeners(SWT.Selection, event); + moveLastTimeScroll(); // play button isPlaying = false; - } @Override @@ -535,10 +372,11 @@ public class TimelineToolbar extends Composite implements IAnimationListener { .getKeyframeHeader().getTimeBar(); PlayHeader marker = timeBar.getPlayHeader(); - - int timelinePoint = (int) (lastTime * timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL); + + int timelinePoint = + (int) (lastTime * timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL); int timePoint = Formatter.timeToComputeTime(lastTime); - + marker.setPositionMarker(timelinePoint); marker.setCurrentPointTime(timePoint); marker.draw(true); @@ -577,8 +415,8 @@ public class TimelineToolbar extends Composite implements IAnimationListener { repeat = new Button(this, SWT.TOGGLE); FormData repeatFormData = new FormData(); - repeatFormData.top = new FormAttachment(0, 4); - repeatFormData.left = new FormAttachment(0, 490); + repeatFormData.top = new FormAttachment(0, 3); + repeatFormData.left = new FormAttachment(0, 100); repeatFormData.width = 27; repeatFormData.height = 21; repeat.setLayoutData(repeatFormData); @@ -630,86 +468,505 @@ public class TimelineToolbar extends Composite implements IAnimationListener { } }); - // Ease - // ----------------------------------------------------------------------------------- - // Panel - // ----------------------------------------------------------------------------- - easeData = TimelineMessages.EASE; - - easingPanel = new Button(this, SWT.FLAT); - easingPanel.setData("EASE", TimelineMessages.EASE); + // TimeText + // ------------------------------------------------------------------------------- + timeText = new Text(this, SWT.SINGLE | SWT.CENTER); - FormData easingPanelFormData = new FormData(); - easingPanelFormData.top = new FormAttachment(0, 4); - easingPanelFormData.right = new FormAttachment(100, -15); - easingPanelFormData.width = 20; - easingPanelFormData.height = 21; - easingPanel.setLayoutData(easingPanelFormData); - easingPanel.addListener(SWT.Paint, paintListener); - // Dropdown - // --------------------------------------------------------------------------- - easing = new Button(this, SWT.NONE); + FormData timeTextFormData = new FormData(); + timeTextFormData.top = new FormAttachment(0, 3); + timeTextFormData.left = new FormAttachment(0, 146); + timeTextFormData.width = 114; + timeTextFormData.height = 21; + timeText.setLayoutData(timeTextFormData); + timeText.setBackgroundImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, "animator_toolbar_time_input_window.png")); + setCurrentTime("00 : 00 . 000"); - FormData easingFormData = new FormData(); - easingFormData.top = new FormAttachment(0, 4); - easingFormData.right = new FormAttachment(100); - easingFormData.width = 15; - easingFormData.height = 21; - easing.setLayoutData(easingFormData); - easing.setToolTipText(TimelineMessages.EASE); - easing.addListener(SWT.Paint, paintListener); + timeText.addFocusListener(new FocusListener() { - easing.addMouseListener(new MouseAdapter() { @Override - public void mouseUp(MouseEvent e) { - easingButtonState = 0; + public void focusLost(FocusEvent e) { + timeText.clearSelection(); } @Override - public void mouseDown(MouseEvent e) { - easingButtonState = 1; - - TimelineViewer viewer = ((TimelineMainContainer) getParent()).getViewer(); - // Control selectedWidget = (Control) viewer.getLastSelectedKeyframeWidget(); - KeyFrameComponent selectedKeyFrame = viewer.getLastSelectedKeyframeComponent(); - createEasingMenu(selectedKeyFrame); + public void focusGained(FocusEvent e) { + // TODO Auto-generated method stub } }); - easing.addListener(SWT.MouseEnter, new Listener() { - @Override - public void handleEvent(Event event) { - easingButtonState = 2; - } - }); - easing.addListener(SWT.MouseExit, new Listener() { - @Override - public void handleEvent(Event event) { - easingButtonState = 0; - } - }); - } - - @Override - public void animationPlay(AnimationEvent e) { - if (isPlaying) { - int millSecond = e.getWparam(); - TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); + timeText.addKeyListener(new KeyListener() { - TimeBar timeBar = - mainContainer.getContentContainer().getContentHeaderContainer() - .getKeyframeHeader().getTimeBar(); + @Override + public void keyReleased(KeyEvent e) { + // TODO Auto-generated method stub + char myChar = e.character; + int caret = timeText.getCaretPosition(); + + String fullTime = timeText.getText(); + String[] first = null; + String[] second = null; + first = fullTime.split(":"); + second = fullTime.split(Pattern.quote(".")); + + int firstSplit = first[0].length() - 1; + int secSplit = second[0].length() - 1; + + boolean isNumber = Character.isDigit(myChar); + if (isNumber) { + if (caret <= firstSplit) { + + setCurrentTime(fullTime); + setTimeTextPoint(); + timeText.setSelection(caret); + } else if (caret > firstSplit + 3 && caret <= firstSplit + 5) { + int count = secSplit - firstSplit; + if (count > 5) { + if (firstSplit + 4 == caret) { + char lastSec = second[0].charAt(second[0].length() - 2); + fullTime = first[0] + ": " + myChar + lastSec + " ." + second[1]; + } else { + char firstSec = second[0].charAt(second[0].length() - 4); + fullTime = first[0] + ": " + firstSec + myChar + " ." + second[1]; + } + } else if (count <= 4) { + fullTime = first[0] + ": " + myChar + "0" + " ." + second[1]; + } else { + } + setCurrentTime(fullTime); + setTimeTextPoint(); + timeText.setSelection(caret); + } else if (caret > firstSplit + 8 && caret <= firstSplit + 11) { + int count = second[1].length(); + if (count > 4) { + fullTime = second[0] + "." + second[1].substring(0, 4); + } else if (count == 0 || count == 1) { + fullTime = second[0] + "." + " 000"; + } else if (count == 2) { + fullTime = second[0] + "." + second[1].substring(0, 2) + "00"; + } else if (count == 3) { + fullTime = second[0] + "." + second[1].substring(0, 3) + "0"; + } + setCurrentTime(fullTime); + setTimeTextPoint(); + timeText.setSelection(caret); + } else { + e.doit = false; + } + } + + if (caret > firstSplit && caret <= firstSplit + 2) { + timeText.setSelection(firstSplit + 3); + } else if (caret > secSplit && caret < secSplit + 3) { + timeText.setSelection(secSplit + 3); + } + } + + @Override + public void keyPressed(KeyEvent e) { + String fullTime = timeText.getText(); + char myChar = e.character; + int caret = timeText.getCaretPosition(); + + int selectionCount = timeText.getSelectionCount(); + + String[] first = null; + first = fullTime.split(":"); + int firstSplit = first[0].length() - 1; + + boolean isNumber = Character.isDigit(myChar); + if (isNumber) { + if (caret <= firstSplit) { + } else if ((selectionCount >= 1 && caret > firstSplit + 1 && caret <= firstSplit + 5) + || (selectionCount == 0 && caret >= firstSplit + 3 && caret < firstSplit + 5)) { + } else if ((selectionCount >= 1 && caret > firstSplit + 7 && caret <= firstSplit + 11) + || (selectionCount == 0 && caret >= firstSplit + 8 && caret < firstSplit + 11)) { + } else { + e.doit = false; + } + } else if (e.keyCode == SWT.ARROW_LEFT || e.keyCode == SWT.ARROW_RIGHT) { + + } else { + e.doit = false; + } + } + }); + + timeText.addMouseListener(new MouseListener() { + + @Override + public void mouseUp(MouseEvent e) { + int caret = timeText.getCaretPosition(); + String fullTime = timeText.getText(); + + String[] first = null; + String[] second = null; + first = fullTime.split(":"); + second = fullTime.split(Pattern.quote(".")); + + int firstSplit = first[0].length() - 1; + int secSplit = second[0].length() - 1; + + if (caret < firstSplit) { + timeText.setSelection(0, firstSplit); + } else if (caret > firstSplit && caret <= secSplit) { + timeText.setSelection(firstSplit + 3, secSplit); + } else if (caret > secSplit) { + timeText.setSelection(secSplit + 3, secSplit + 6); + } + } + + @Override + public void mouseDown(MouseEvent e) { + } + + @Override + public void mouseDoubleClick(MouseEvent e) { + + } + }); + + timeText.addListener(SWT.Paint, new Listener() { + + @Override + public void handleEvent(Event event) { + GC gc = event.gc; + String time = timeText.getText(); + + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_time_input_window.png"), 0, + 0); + + if (time != null) { + timeText.setForeground(ColorResource.BLACK); + gc.drawText(time, 22, 3, true); + } + } + }); + + // Ease + // ----------------------------------------------------------------------------------- + // Panel + // ----------------------------------------------------------------------------- + easeData = TimelineMessages.EASE; + + easingPanel = new Button(this, SWT.FLAT); + easingPanel.setData(TimelineMessages.EASE, TimelineMessages.EASE); + + FormData easingPanelFormData = new FormData(); + easingPanelFormData.top = new FormAttachment(0, 3); + easingPanelFormData.left = new FormAttachment(0, 270); + // easingPanelFormData.right = new FormAttachment(100, -15); + easingPanelFormData.width = 20; + easingPanelFormData.height = 21; + easingPanel.setLayoutData(easingPanelFormData); + easingPanel.setToolTipText(easeData); + easingPanel.addListener(SWT.Paint, paintListener); + // Dropdown + // --------------------------------------------------------------------------- + easing = new Button(this, SWT.NONE); + + FormData easingFormData = new FormData(); + easingFormData.top = new FormAttachment(0, 3); + easingFormData.left = new FormAttachment(easingPanel); + // easingFormData.right = new FormAttachment(100); + easingFormData.width = 15; + easingFormData.height = 21; + easing.setLayoutData(easingFormData); + easing.setToolTipText(easeData); + easing.addListener(SWT.Paint, paintListener); + + easing.addMouseListener(new MouseAdapter() { + @Override + public void mouseUp(MouseEvent e) { + easingButtonState = 0; + } + + @Override + public void mouseDown(MouseEvent e) { + easingButtonState = 1; + + TimelineViewer viewer = ((TimelineMainContainer) getParent()).getViewer(); + KeyFrameComponent selectedKeyFrame = viewer.getLastSelectedKeyframeComponent(); + createEasingMenu(selectedKeyFrame); + } + }); + easing.addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event event) { + easingButtonState = 2; + } + }); + easing.addListener(SWT.MouseExit, new Listener() { + @Override + public void handleEvent(Event event) { + easingButtonState = 0; + } + }); + + // Predefined KeyFrame + // ----------------------------------------------------------------------------------- + // Panel + // ----------------------------------------------------------------------------- + predefinedPanel = new Button(this, SWT.FLAT); + predefinedPanel.setData(TimelineMessages.ADD_PREDEFINED_KEYFRAME, + TimelineMessages.ADD_PREDEFINED_KEYFRAME); + + FormData predefinedPanelFormData = new FormData(); + predefinedPanelFormData.top = new FormAttachment(0, 3); + predefinedPanelFormData.left = new FormAttachment(0, 308); + predefinedPanelFormData.width = 20; + predefinedPanelFormData.height = 21; + predefinedPanel.setLayoutData(predefinedPanelFormData); + predefinedPanel.setToolTipText(TimelineMessages.ADD_PREDEFINED_KEYFRAME); + predefinedPanel.addListener(SWT.Paint, paintListener); + // Dropdown + // --------------------------------------------------------------------------- + predefined = new Button(this, SWT.NONE); + + FormData predefinedFormData = new FormData(); + predefinedFormData.top = new FormAttachment(0, 3); + predefinedFormData.left = new FormAttachment(predefinedPanel); + predefinedFormData.width = 15; + predefinedFormData.height = 21; + predefined.setLayoutData(predefinedFormData); + predefined.setToolTipText(TimelineMessages.ADD_PREDEFINED_KEYFRAME); + predefined.addListener(SWT.Paint, paintListener); + + predefined.addMouseListener(new MouseAdapter() { + @Override + public void mouseUp(MouseEvent e) { + predefinedButtonState = 0; + } + + @Override + public void mouseDown(MouseEvent e) { + predefinedButtonState = 1; + + Menu menu = drawDetailMenu(predefined); + insertPreDefinedAnimations(menu); + } + }); + predefined.addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event event) { + predefinedButtonState = 2; + } + }); + predefined.addListener(SWT.MouseExit, new Listener() { + @Override + public void handleEvent(Event event) { + predefinedButtonState = 0; + } + }); + + // Filter + filter = new Button(this, SWT.NONE); + filter.setData(TimelineMessages.FILTER, TimelineMessages.FILTER); + filter.setToolTipText(TimelineMessages.FILTER); + FormData filterFormData = new FormData(); + filterFormData.top = new FormAttachment(0, 3); + filterFormData.left = new FormAttachment(0, 346); + filterFormData.width = 21; + filterFormData.height = 21; + filter.setLayoutData(filterFormData); + filter.addListener(SWT.Paint, paintListener); + + filter.addMouseListener(new MouseAdapter() { + @Override + public void mouseUp(MouseEvent e) { + if (isFilter()) { + setFilter(false); + filterButtonState = 0; + } else { + setFilter(true); + filterButtonState = 3; + } + } + + @Override + public void mouseDown(MouseEvent e) { + if (isFilter()) { + filterButtonState = 4; + } else { + filterButtonState = 1; + } + } + }); + + filter.addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event event) { + if (isFilter()) { + filterButtonState = 2; + } else { + filterButtonState = 5; + } + } + }); + + filter.addListener(SWT.MouseExit, new Listener() { + @Override + public void handleEvent(Event event) { + if (isFilter()) { + filterButtonState = 3; + } else { + filterButtonState = 0; + } + } + }); + + filter.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + // boolean isFilter = isFilter(); + // setFilter(!isFilter); + TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); + mainContainer.getViewer().refreshClickedFilter(); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + }); + + // scale + scaleContainer = new Composite(this, SWT.NONE); + scaleContainer.setData("CompositeName", "toolsScaler"); + scaleContainer.setLayout(new FormLayout()); + + FormData toolsScalerContainerFormData = new FormData(); + toolsScalerContainerFormData.top = new FormAttachment(0); + toolsScalerContainerFormData.right = new FormAttachment(100); + scaleContainer.setLayoutData(toolsScalerContainerFormData); + + zoomIn = new Button(scaleContainer, SWT.NONE); + FormData zoomInFormData = new FormData(); + zoomInFormData.top = new FormAttachment(0, 5); + zoomInFormData.left = new FormAttachment(0); + zoomInFormData.height = 16; + zoomInFormData.width = 16; + zoomIn.setLayoutData(zoomInFormData); + zoomIn.setToolTipText(TimelineMessages.ZOOM_IN); + zoomIn.addListener(SWT.Paint, paintListener); + + zoomIn.addMouseListener(new MouseAdapter() { + @Override + public void mouseUp(MouseEvent e) { + zoomInButtonState = 0; + } + + @Override + public void mouseDown(MouseEvent e) { + zoomInButtonState = 1; + if (scale != null && scale.isDisposed() == false) { + int selection = scale.getSelection(); + scale.setSelection(--selection); + updateScale(); + } + } + }); + zoomIn.addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event event) { + zoomInButtonState = 2; + } + }); + zoomIn.addListener(SWT.MouseExit, new Listener() { + @Override + public void handleEvent(Event event) { + zoomInButtonState = 0; + } + }); + + scale = new Scale(scaleContainer, SWT.HORIZONTAL); + scale.setData("CompositeName", "scale"); + + FormData scaleFormData = new FormData(); + scaleFormData.top = new FormAttachment(0, -7); + scaleFormData.left = new FormAttachment(zoomIn); + scaleFormData.height = 32; + scaleFormData.width = 100; + scale.setLayoutData(scaleFormData); + + scale.setMinimum(1); + scale.setMaximum(4); + scale.setIncrement(1); + scale.setSelection(2); + + // Scale changing + scale.addListener(SWT.Selection, new Listener() { + @Override + public void handleEvent(Event event) { + updateScale(); + } + }); + + zoomOut = new Button(scaleContainer, SWT.NONE); + FormData zoomOutFormData = new FormData(); + zoomOutFormData.top = new FormAttachment(0, 5); + zoomOutFormData.left = new FormAttachment(scale); + zoomOutFormData.height = 16; + zoomOutFormData.width = 16; + zoomOut.setLayoutData(zoomOutFormData); + zoomOut.setToolTipText(TimelineMessages.ZOOM_OUT); + zoomOut.addListener(SWT.Paint, paintListener); + + zoomOut.addMouseListener(new MouseAdapter() { + @Override + public void mouseUp(MouseEvent e) { + zoomOutButtonState = 0; + } + + @Override + public void mouseDown(MouseEvent e) { + zoomOutButtonState = 1; + if (scale != null && scale.isDisposed() == false) { + int selection = scale.getSelection(); + scale.setSelection(++selection); + updateScale(); + } + } + }); + zoomOut.addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event event) { + zoomOutButtonState = 2; + } + }); + zoomOut.addListener(SWT.MouseExit, new Listener() { + @Override + public void handleEvent(Event event) { + zoomOutButtonState = 0; + } + }); + + } + + @Override + public void animationPlay(AnimationEvent e) { + if (isPlaying) { + int millSecond = e.getWparam(); + + TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); + + TimeBar timeBar = + mainContainer.getContentContainer().getContentHeaderContainer() + .getKeyframeHeader().getTimeBar(); PlayHeader marker = timeBar.getPlayHeader(); - - int timelinePoint = (int) (timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL); + + int timelinePoint = + (int) (timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL); double pointTime = Formatter.computeTimeTotime(millSecond); - //int timePoint = Formatter.timeToComputeTime(millSecond); - + // int timePoint = Formatter.timeToComputeTime(millSecond); + marker.setPositionMarker((int) (pointTime * timelinePoint)); marker.setCurrentPointTime(millSecond); - + if (Platform.getOS().equals(Platform.OS_WIN32)) { marker.draw(false); } else if (Platform.getOS().equals(Platform.OS_LINUX) @@ -717,7 +974,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { marker.draw(true); } - //double markerTime = marker.getPlayHeaderTime(); + // double markerTime = marker.getPlayHeaderTime(); String time = AnimatorUtils.convertTimetoTimeText(pointTime); setCurrentTime(time); @@ -749,12 +1006,6 @@ public class TimelineToolbar extends Composite implements IAnimationListener { @Override public void animationSnapShot(AnimationEvent e) { - // Logger.error("###################################################################"); - // Logger.error("####################### " + e.getEventType()); - // Logger.error("####################### " + e.getLparam()); - // Logger.error("####################### " + e.getWparam()); - // Logger.error("###################################################################"); - if (e.getLparam() != null) { setMap((Map) e.getLparam()); } @@ -767,7 +1018,6 @@ public class TimelineToolbar extends Composite implements IAnimationListener { /** * set TimeTextPoint */ - private void setTimeTextPoint() { TimelineContentContainer contentContainer = ((TimelineMainContainer) getParent()).getContentContainer(); @@ -780,10 +1030,10 @@ public class TimelineToolbar extends Composite implements IAnimationListener { contentContainer.refreshHScroll(newTime, 1, 0, 2); double startTime = timeBar.getStartTime(); - + int currentPositionTime = (int) (newTime * (scale)); int startPositionTime = (int) (startTime * (scale)); - + int positionTime = (currentPositionTime - startPositionTime); timeBar.setPosition(positionTime); contentContainer.refreshPlayHeader(true); @@ -796,30 +1046,30 @@ public class TimelineToolbar extends Composite implements IAnimationListener { * Set Last Animation Point */ private void setLastAnimationPoint() { - double lastTime = 0.0; + int lastTime = 0; String animationGroupId = AnimatorUtils.getActiveAnimatorBrowserViewer().getCurrentAnimationGroupId(); TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); lastTime = mainContainer.getContentContainer().getLastTimeInAnimationGroup(); - + TimeBar timeBar = mainContainer.getContentContainer().getContentHeaderContainer().getKeyframeHeader() .getTimeBar(); PlayHeader marker = timeBar.getPlayHeader(); - - int timelinePoint = (int) (lastTime * timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL); - int timePoint = Formatter.timeToComputeTime(timelinePoint); - + + int timelinePoint = + (int) (lastTime * timeBar.getScale()) / TimelineConstants.DEFAULT_TIME_INTERVAL; + marker.setPositionMarker(timelinePoint); - marker.setCurrentPointTime(timePoint); + marker.setCurrentPointTime(lastTime); marker.draw(true); double markerTime = marker.getPlayHeaderTime(); - String time = AnimatorUtils.convertTimetoTimeText(markerTime); + String time = AnimatorUtils.convertTimetoTimeIntText(lastTime); setCurrentTime(time); AnimatorUtils.getActiveAnimatorBrowserViewer().showAnimationAtMoment(animationGroupId, @@ -882,7 +1132,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); AnimatorPagePart pagePart = mainContainer.getPage().getPagePart(); - + AnimatorAnimation animation = pagePart.getAnimation(selectedAnimationGroupId); List widgets = animation.getChildren(); for (AnimatorModel widget : widgets) { @@ -897,93 +1147,486 @@ public class TimelineToolbar extends Composite implements IAnimationListener { if (canPlay) { break; - } + } + } + + return canPlay; + } + + /** + * Create Easing Menu + * + * @param selectedWidget + * {@link Control} widget in timeline + * + */ + private void createEasingMenu(final KeyFrameComponent selectedWidget) { + Menu easingMenu = new Menu(easing.getShell(), SWT.POP_UP); + + for (int i = 0; i < 5; i++) { + final MenuItem menuItem = new MenuItem(easingMenu, SWT.CHECK); + switch (i) { + case 0: + menuItem.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_ease_linear.png")); + menuItem.setText(TimelineMessages.LINEAR); + break; + case 1: + menuItem.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_ease.png")); + menuItem.setText(TimelineMessages.EASE); + break; + case 2: + menuItem.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_ease_in.png")); + menuItem.setText(TimelineMessages.EASE_IN); + break; + case 3: + menuItem.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_ease_out.png")); + menuItem.setText(TimelineMessages.EASE_OUT); + break; + case 4: + menuItem.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_ease_inout.png")); + menuItem.setText(TimelineMessages.EASE_IN_OUT); + break; + default: + menuItem.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_ease_linear.png")); + menuItem.setText(TimelineMessages.LINEAR); + break; + } + + if (selectedWidget instanceof KeyFrame) { + menuItem.setEnabled(true); + easeData = + ((AnimatorFrame) ((KeyFrame) selectedWidget).getModel()) + .getEasingProperty(); + if (menuItem.getText().equals(easeData)) { + menuItem.setSelection(true); + easingPanel.redraw(); + } + } else { + menuItem.setEnabled(false); + } + menuItem.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + easeData = menuItem.getText(); + easingPanel.setData(easeData); + easingPanel.setToolTipText(easeData); + easing.setToolTipText(easeData); + // easingPanel.redraw(); + + AnimatorFrame frame = (AnimatorFrame) ((KeyFrame) selectedWidget).getModel(); + + String beforeEaseData = frame.getEasingProperty(); + if (!beforeEaseData.equals(easeData)) { + AnimationPropertyChangeCommand propertyCommand = + new AnimationPropertyChangeCommand( + frame, + "-webkit-animation-timing-function", + easeData); + + TimelineViewer viewer = ((TimelineMainContainer) getParent()).getViewer(); + viewer.getEditDomain().getCommandStack().execute(propertyCommand); + } + } + }); + } + + Rectangle easingPanelBounds = easingPanel.getBounds(); + Point menuPoint = + easing.toDisplay(new Point(0, easingPanelBounds.y + easingPanelBounds.height)); + + easingMenu.setLocation(menuPoint); + easingMenu.setVisible(true); + + } + + /** + * Refresh Toolbar + * + * @param animationGroupId + * AnimationGroup id + */ + public void refreshToolbar(String animationGroupId) { + + // selection animationGroupid + setSelectedAnimationGroupId(animationGroupId); + + // redraw text button + setCurrentTime("00 : 00 . 000"); + timeText.redraw(); + + // redraw play button + playNpause.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_play_normal.png")); + + isPlaying = false; + playNpause.redraw(); + + // redraw retpeatButton + redrawRepeatButton(animationGroupId); + + } + + /** + * Refresh Ease panel + * + * @param model + */ + private void refreshEasing(AnimatorModel model) { + if (model instanceof AnimatorFrame) { + easeData = ((AnimatorFrame) model).getEasingProperty(); + easingPanel.redraw(); + } + } + + /** + * Clicked stop play button + */ + public void stopPlaying() { + if (isPlaying) { + isPlaying = false; + playNpause.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_play_normal.png")); + } + } + + /** + * Draw Predefined Detail Menu + * + * @param parent + * @return + */ + private Menu drawDetailMenu(Button parent) { + Point menuPoint = null; + Menu menu = null; + Rectangle rect = parent.getBounds(); + + menu = new Menu(predefined.getShell(), SWT.POP_UP); + menuPoint = predefined.toDisplay(new Point(0, rect.y + rect.height)); + menu.setLocation(menuPoint); + menu.setVisible(true); + return menu; + } + + /** + * Insert Predefined Animation to menu + * + * @param menu + */ + private void insertPreDefinedAnimations(Menu menu) { + + AppManager appManager = AnimatorUtils.getAppManager(); + AnimatorDescriptorManager manager = AnimatorDescriptorManager.getInstance(appManager); + + List cssAnimations = manager.getCssAnimations(); + MenuItem preSubMenuItem = null; + for (CssAnimationDescriptor cssAnimation : cssAnimations) { + + String category = cssAnimation.getCategory(); + if (preSubMenuItem != null && !preSubMenuItem.getText().equals(category)) { + MenuItem[] items = menu.getItems(); + + boolean isExist = false; + for (int i = 0; i < menu.getItemCount(); i++) { + MenuItem item = items[i]; + if (item.getText().equals(category)) { + isExist = true; + preSubMenuItem = item; + break; + } + } + + if (!isExist) + preSubMenuItem = null; + } + + if (preSubMenuItem == null) { + preSubMenuItem = new MenuItem(menu, SWT.CASCADE); + preSubMenuItem.setText(category); + Menu preSubMenu = new Menu(preSubMenuItem); + preSubMenuItem.setMenu(preSubMenu); + } + + String id = cssAnimation.getId(); + String displayName = cssAnimation.getDisplayName(); + String iconPath16 = cssAnimation.getIconPath16(); + + MenuItem item = new MenuItem(preSubMenuItem.getMenu(), SWT.PUSH); + item.setData(id, cssAnimation); + item.setText(displayName); + + Image image = ResourceManager.getImage(AnimatorConstants.ICON_DIR, iconPath16); + item.setImage(image); + item.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + Object source = e.getSource(); + if (source instanceof MenuItem) { + MenuItem currentItem = (MenuItem) source; + String parentMenuText = + currentItem.getParent().getParentItem().getText().trim(); + String menuText = currentItem.getText().trim(); + menuText = menuText.replaceAll(" ", ""); + String generateKeyForGetData = + generateKeyForGetData(parentMenuText, menuText); + + CssAnimationDescriptor cssAnimation = + (CssAnimationDescriptor) (currentItem + .getData(generateKeyForGetData)); + + TimelineViewer viewer = ((TimelineMainContainer) getParent()).getViewer(); + AddPredefinedKeyFrameAction newPredefined = + new AddPredefinedKeyFrameAction(cssAnimation, viewer); + if (newPredefined != null) { + newPredefined.run(); + } + } + } + }); + } + } + + /** + * GenerateKey for GetData + * + * @param parentMenuText + * @param menuText + * @return + */ + private String generateKeyForGetData(String parentMenuText, String menuText) { + String key = null; + + key = "tizen.animator." + parentMenuText + "." + menuText; + + return key; + } + + /** + * update Scale + */ + private void updateScale() { + TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); + + int currentValue = scale.getSelection(); + double timeScale = 0.0d; + switch (currentValue) { + case 1: + timeScale = TimeBar.SCALE_50; + scale.setToolTipText("50%"); + break; + case 2: + timeScale = TimeBar.SCALE_100; + scale.setToolTipText("100%"); + break; + case 3: + timeScale = TimeBar.SCALE_200; + scale.setToolTipText("200%"); + break; + case 4: + timeScale = TimeBar.SCALE_400; + scale.setToolTipText("400%"); + break; + } + + TimeBar timeBar = + mainContainer.getContentContainer().getContentHeaderContainer().getKeyframeHeader() + .getTimeBar(); + + timeBar.setScale(timeScale); + timeBar.redraw(); + + PlayHeader marker = timeBar.getPlayHeader(); + marker.draw(true); + + mainContainer.getContentContainer().refeshTimeline(); + } + + /** + * Move LastTime Scroll + */ + private void moveLastTimeScroll() { + int lastTime = 0; + TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); + TimelineContentToolsContainer contentToolsContainer = + mainContainer.getContentContainer().getContentToolsContainer(); + ScrollBar horizontalScrollBar = contentToolsContainer.gethScroll(); + lastTime = mainContainer.getContentContainer().getLastTimeInAnimationGroup(); + Point point = getSize(); + int location = lastTime / TimelineConstants.DEFAULT_TIME_INTERVAL; + if (point.x < location) { + horizontalScrollBar.setSelection(lastTime + / TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL - 30); + } else { + horizontalScrollBar.setSelection(0); + } + Event event = new Event(); + event.display = getDisplay(); + event.widget = horizontalScrollBar; + event.x = 0; + horizontalScrollBar.notifyListeners(SWT.Selection, event); + } + + /** + * Draw Image Button + * + * @param gc + * @param button + */ + public void drawImage(GC gc, Button button) { + if (button.equals(backward)) { + refreshBackwardButton(gc); + } else if (button.equals(forward)) { + refreshForwardButton(gc); + } else if (button.equals(playNpause)) { + refreshPlayButton(gc); + } else if (button.equals(repeat)) { + refreshRepeatButton(gc); + } else if (button.equals(easing)) { + refreshEasingButton(gc); + } else if (button.equals(easingPanel)) { + refreshEasePanel(gc); + } else if (button.equals(predefined)) { + refreshPredefinedButton(gc); + } else if (button.equals(predefinedPanel)) { + refreshPredefinedPanel(gc); + } else if (button.equals(filter)) { + refreshFilterButton(gc); + } else if (button.equals(zoomIn)) { + refreshZoomInButton(gc); + } else if (button.equals(zoomOut)) { + refreshZoomOutButton(gc); + } + } + + /** + * Refresh Backward Button + * + * @param gc + * {@link GC} + */ + private void refreshBackwardButton(GC gc) { + switch (backButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_backward_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_backward_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_backward_hover.png"), 0, 0); + break; + default: + break; + } + } + + /** + * Refresh Forward Button + * + * @param gc + * {@link GC} + */ + private void refreshForwardButton(GC gc) { + switch (forButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_forward_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_forward_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_forward_hover.png"), 0, 0); + break; + default: + break; + } + } + + /** + * Refresh Play Button + * + * @param gc + * {@link GC} + */ + private void refreshPlayButton(GC gc) { + switch (playButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_play_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_play_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_play_hover.png"), 0, 0); + break; + case 3: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_stop_normal.png"), 0, 0); + break; + case 4: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_stop_push.png"), 0, 0); + break; + case 5: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_stop_hover.png"), 0, 0); + break; + default: + break; } - - return canPlay; } /** - * Create Easing Menu - * - * @param selectedWidget - * {@link Control} widget in timeline + * Refresh Repeat Button * + * @param gc */ - private void createEasingMenu(final KeyFrameComponent selectedWidget) { - Menu easingMenu = new Menu(easing.getShell(), SWT.POP_UP); - - for (int i = 0; i < 5; i++) { - final MenuItem menuItem = new MenuItem(easingMenu, SWT.CHECK); - switch (i) { - case 0: - menuItem.setText(TimelineMessages.LINEAR); - break; - case 1: - menuItem.setText(TimelineMessages.EASE); - break; - case 2: - menuItem.setText(TimelineMessages.EASE_IN); - break; - case 3: - menuItem.setText(TimelineMessages.EASE_OUT); - break; - case 4: - menuItem.setText(TimelineMessages.EASE_IN_OUT); - break; - default: - menuItem.setText(TimelineMessages.LINEAR); - break; - } - - if (selectedWidget instanceof KeyFrame) { - menuItem.setEnabled(true); - easeData = - ((AnimatorFrame) ((KeyFrame) selectedWidget).getModel()) - .getEasingProperty(); - if (menuItem.getText().equals(easeData)) { - menuItem.setSelection(true); - easingPanel.redraw(); - } - } else { - menuItem.setEnabled(false); - } - menuItem.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - easeData = menuItem.getText(); - easingPanel.setData(easeData); - //easingPanel.redraw(); - - AnimatorFrame frame = (AnimatorFrame) ((KeyFrame) selectedWidget).getModel(); - - String beforeEaseData = frame.getEasingProperty(); - if (!beforeEaseData.equals(easeData)) { - AnimationPropertyChangeCommand propertyCommand = - new AnimationPropertyChangeCommand( - frame, - "-webkit-animation-timing-function", - easeData); - - TimelineViewer viewer = ((TimelineMainContainer) getParent()).getViewer(); - viewer.getEditDomain().getCommandStack().execute(propertyCommand); - -/* AnimatorModelManager manager = - AnimatorUtils.getAppManager().getAnimatorModelManager(); - manager.fireEvent(AnimatorModelEvent.EventType.PROPERTY_CHANGE, - AnimatorModelEvent.Origin.TIMELINE, frame);*/ - } - } - }); + private void refreshRepeatButton(GC gc) { + switch (repeatButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_repeat_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_repeat_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_repeat_hover.png"), 0, 0); + break; + case 3: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_repeat_selected_normal.png"), 0, 0); + break; + case 4: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_repeat_selected_push.png"), + 0, 0); + break; + case 5: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_repeat_selected_hover.png"), + 0, 0); + break; + default: + break; } - - Rectangle easingPanelBounds = easingPanel.getBounds(); - Point menuPoint = - easing.toDisplay(new Point(0, easingPanelBounds.y + easingPanelBounds.height)); - - easingMenu.setLocation(menuPoint); - easingMenu.setVisible(true); - } /** @@ -993,212 +1636,180 @@ public class TimelineToolbar extends Composite implements IAnimationListener { if (easeData == null || easeData.equals(TimelineMessages.LINEAR)) { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_ease_linear.png"), 0, 0); + "animator_toolbar_ease_linear.png"), 0, 0); } else if (easeData.equals(TimelineMessages.EASE)) { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_ease.png"), 0, 0); + "animator_toolbar_ease.png"), 0, 0); } else if (easeData.equals(TimelineMessages.EASE_IN)) { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_ease_in.png"), 0, 0); + "animator_toolbar_ease_in.png"), 0, 0); } else if (easeData.equals(TimelineMessages.EASE_OUT)) { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_ease_out.png"), 0, 0); + "animator_toolbar_ease_out.png"), 0, 0); } else if (easeData.equals(TimelineMessages.EASE_IN_OUT)) { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_ease_inout.png"), 0, 0); + "animator_toolbar_ease_inout.png"), 0, 0); } else { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_ease_linear.png"), 0, 0); + "animator_toolbar_ease_linear.png"), 0, 0); } } /** - * Refresh Toolbar + * Refresh Ease Button * - * @param animationGroupId - * AnimationGroup id + * @param gc */ - public void refreshToolbar(String animationGroupId) { - - // selection animationGroupid - setSelectedAnimationGroupId(animationGroupId); - - // redraw text button - setCurrentTime("00 : 00 . 000"); - timeText.redraw(); - - // redraw play button - playNpause.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_play_normal.png")); - - isPlaying = false; - playNpause.redraw(); - - // redraw retpeatButton - redrawRepeatButton(animationGroupId); + private void refreshEasingButton(GC gc) { + switch (easingButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_hover.png"), 0, 0); + break; + default: + break; + } + } + /** + * Refresh Predefined Panel + * + * @param gc + * {@link GC} + */ + private void refreshPredefinedPanel(GC gc) { + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_predefined_keyframe.png"), + 0, 0); } /** - * Refresh Ease panel + * Refresh Predefined KeyFrame Button * - * @param model + * @param gc + * {@link GC} */ - private void refreshEasing(AnimatorModel model) { - if(model instanceof AnimatorFrame) { - easeData = ((AnimatorFrame) model).getEasingProperty(); - easingPanel.redraw(); + private void refreshPredefinedButton(GC gc) { + switch (predefinedButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_dropdown_hover.png"), 0, 0); + break; + default: + break; } } /** - * Clicked stop play button + * Refresh Filter Button + * + * @param gc + * {@link GC} */ - public void stopPlaying() { - if (isPlaying) { - isPlaying = false; - playNpause.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_play_normal.png")); + private void refreshFilterButton(GC gc) { + switch (filterButtonState) { + case 0: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_filter_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_filter_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_filter_hover.png"), 0, 0); + break; + case 3: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_filter_selected_normal.png"), 0, 0); + break; + case 4: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_filter_selected_push.png"), + 0, 0); + break; + case 5: + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_filter_selected_hover.png"), + 0, 0); + break; + default: + break; } } /** - * Draw Image Button + * Refresh ZoomIn Button * * @param gc - * @param button */ - public void drawImage(GC gc, Button button) { - if (button.equals(backward)) { - switch (backButtonState) { - case 0: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_backward_normal.png"), - 0, 0); - break; - case 1: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_backward_push.png"), 0, - 0); - break; - case 2: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_backward_hover.png"), - 0, 0); - break; - default: - break; - - } - } else if (button.equals(forward)) { - switch (forButtonState) { - case 0: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_forward_normal.png"), - 0, 0); - break; - case 1: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_forward_push.png"), 0, - 0); - break; - case 2: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_forward_hover.png"), 0, - 0); - break; - default: - break; - - } - } else if (button.equals(playNpause)) { - switch (playButtonState) { - case 0: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_play_normal.png"), 0, 0); - break; - case 1: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_play_push.png"), 0, 0); - break; - case 2: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_play_hover.png"), 0, 0); - break; - case 3: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_stop_normal.png"), 0, 0); - break; - case 4: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_stop_push.png"), 0, 0); - break; - case 5: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_stop_hover.png"), 0, 0); - break; - default: - break; + private void refreshZoomInButton(GC gc) { + switch (zoomInButtonState) { + case 0: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_timeline_zoom_minus_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_timeline_zoom_minus_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_timeline_zoom_minus_hover.png"), 0, 0); + break; + default: + break; + } - } - } else if (button.equals(repeat)) { - switch (repeatButtonState) { - case 0: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_repeat_normal.png"), 0, - 0); - break; - case 1: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_repeat_push.png"), 0, 0); - break; - case 2: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_repeat_hover.png"), 0, - 0); - break; - case 3: - gc.drawImage(ResourceManager - .getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_repeat_selected_normal.png"), 0, 0); - break; - case 4: - gc.drawImage(ResourceManager - .getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_repeat_selected_push.png"), 0, 0); - break; - case 5: - gc.drawImage(ResourceManager - .getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_repeat_selected_hover.png"), 0, 0); - break; - default: - break; - } - } else if (button.equals(easing)) { + } - switch (easingButtonState) { - case 0: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_dropdown_normal.png"), - 0, 0); - break; - case 1: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_dropdown_push.png"), 0, - 0); - break; - case 2: - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_dropdown_hover.png"), - 0, 0); - break; - default: - break; - } - } else if (button.equals(easingPanel)) { - refreshEasePanel(gc); + /** + * Refresh ZoomIn Button + * + * @param gc + */ + private void refreshZoomOutButton(GC gc) { + switch (zoomOutButtonState) { + case 0: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_timeline_zoom_plus_normal.png"), 0, 0); + break; + case 1: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_timeline_zoom_plus_push.png"), 0, 0); + break; + case 2: + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_timeline_zoom_plus_hover.png"), 0, 0); + break; + default: + break; } + } /***************************************************************************************** @@ -1270,6 +1881,24 @@ public class TimelineToolbar extends Composite implements IAnimationListener { timeText.setText(currentTime); } + /** + * Check Filter + * + * @return + */ + public boolean isFilter() { + return isFilter; + } + + /** + * Set Filter + * + * @param isFilter + */ + public void setFilter(boolean isFilter) { + this.isFilter = isFilter; + } + /***************************************************************************************** * Listener , Event *****************************************************************************************/ diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tree/TimelineOutlineElement.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tree/TimelineOutlineElement.java index 9e80176..1611186 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tree/TimelineOutlineElement.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tree/TimelineOutlineElement.java @@ -54,6 +54,7 @@ import org.tizen.webuibuilder.animator.model.part.AnimatorWidgetPart; import org.tizen.webuibuilder.animator.ui.views.timeline.TimelineViewer; import org.tizen.webuibuilder.animator.ui.views.timeline.command.TimelineFrameCreateCommand; import org.tizen.webuibuilder.animator.ui.views.timeline.common.ColorResource; +import org.tizen.webuibuilder.animator.ui.views.timeline.common.TimelineMessages; import org.tizen.webuibuilder.animator.ui.views.timeline.editpart.TimelineEditPart; import org.tizen.webuibuilder.animator.utils.AnimatorUtils; import org.tizen.webuibuilder.model.Part; @@ -129,21 +130,14 @@ public class TimelineOutlineElement extends Canvas { } createControls(); - - if (elementType == 0) { - setBackground(ColorResource.PARENT_TREEITEM); - } else { - this.setBackground(ColorResource.CHILD_TREEITEM); - } addMouseListener(outlineElementMouseListener); - if (getElementType() == 1) { - addListener(SWT.MouseHover, mouseHEListener); - addListener(SWT.MouseExit, mouseHEListener); - } + addListener(SWT.MouseHover, mouseHEListener); + addListener(SWT.MouseExit, mouseHEListener); + addPaintListener(outlineElementPaintListener); - } + } /** * Create Controls @@ -468,20 +462,44 @@ public class TimelineOutlineElement extends Canvas { Listener mouseHEListener = new Listener() { @Override public void handleEvent(Event event) { - boolean isContainAddFrame = addFrameButtonImage.contains(event.x, event.y); - if (!getEditPart().isLock() && isContainAddFrame == true) { - GC gc = new GC(TimelineOutlineElement.this); + boolean isContainAddFrame = false; + boolean isLock = false; + boolean isVisible = false; + if (addFrameButtonImage != null) { + isContainAddFrame = addFrameButtonImage.contains(event.x, event.y); + } + if (lockableButtonImage != null) { + isLock = lockableButtonImage.contains(event.x, event.y); + } + if (visibleButtonImage != null) { + isVisible = visibleButtonImage.contains(event.x, event.y); + } + GC gc = new GC(TimelineOutlineElement.this); + if (!getEditPart().isLock()) { if (event.type == SWT.MouseHover) { - gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, - "animator_outline_add_frame_hover.png"), - addFrameButtonImage.x, addFrameButtonImage.y); - } else if (event.type == SWT.MouseExit) { + if (isContainAddFrame == true) { + gc.drawImage(ResourceManager + .getImage(BuilderConstants.ICON_DIR, + "animator_outline_add_frame_hover.png"), + addFrameButtonImage.x, addFrameButtonImage.y); + TimelineOutlineElement.this.setToolTipText(TimelineMessages.ADD_KEYFRAME); + } else if (isLock == true) { + TimelineOutlineElement.this.setToolTipText(TimelineMessages.LOCK); + } else if (isVisible == true) { + TimelineOutlineElement.this.setToolTipText(TimelineMessages.VISIBLE); + } + + } + } + if (event.type == SWT.MouseExit) { + if (addFrameButtonImage != null) { gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, "animator_outline_add_frame_normal.png"), addFrameButtonImage.x, addFrameButtonImage.y); } - gc.dispose(); + TimelineOutlineElement.this.setToolTipText(""); } + gc.dispose(); } }; @@ -527,14 +545,15 @@ public class TimelineOutlineElement extends Canvas { drawOutlineElement(e.gc, clientArea); - /*e.gc.drawRectangle(clientArea.x , clientArea.y, clientArea.width -1, - clientArea.height );*/ - e.gc.drawLine(clientArea.x , clientArea.height - 1 , clientArea.width*2, - clientArea.height); - e.gc.drawLine(clientArea.x , clientArea.y , clientArea.x, - clientArea.height -1); - e.gc.drawLine(clientArea.width -1 , clientArea.y , clientArea.width , - clientArea.height *2); + /* + * e.gc.drawRectangle(clientArea.x , clientArea.y, clientArea.width -1, + * clientArea.height ); + */ + e.gc.drawLine(clientArea.x, clientArea.height - 1, clientArea.width * 2, + clientArea.height); + e.gc.drawLine(clientArea.x, clientArea.y, clientArea.x, clientArea.height - 1); + e.gc.drawLine(clientArea.width - 1, clientArea.y, clientArea.width, + clientArea.height * 2); } private void drawOutlineElement(GC gc, Rectangle clientArea) { diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/widget/KeyFrameUnit.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/widget/KeyFrameUnit.java index 9136778..159276e 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/widget/KeyFrameUnit.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/widget/KeyFrameUnit.java @@ -8,6 +8,7 @@ import java.util.List; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Rectangle; +import org.tizen.webuibuilder.BuilderConstants; import org.tizen.webuibuilder.animator.model.AnimatorFrame; import org.tizen.webuibuilder.animator.model.AnimatorKeyframe; import org.tizen.webuibuilder.animator.model.AnimatorModel; @@ -16,6 +17,7 @@ import org.tizen.webuibuilder.animator.ui.views.timeline.common.ColorResource; import org.tizen.webuibuilder.animator.ui.views.timeline.common.TimelineConstants; import org.tizen.webuibuilder.animator.ui.views.timeline.tree.TimeTreeElement; import org.tizen.webuibuilder.utility.Platform; +import org.tizen.webuibuilder.utility.ResourceManager; /** @@ -84,16 +86,23 @@ public class KeyFrameUnit extends KeyFrameComponent { * Create KeyFrameUnitControl */ public void createKeyFrameUnitControl() { - + int frameSize = keyframelist.size(); - if(frameSize > 1){ + if (frameSize > 1) { int startPoint = keyframeUnit.x; int endPoint = startPoint + keyframeUnit.width; - if(startKeyFrameUnitControl == null) - startKeyFrameUnitControl = new Rectangle(startPoint - 3, 0, 5, 5); - if(endKeyFrameUnitControl == null) - endKeyFrameUnitControl = new Rectangle(endPoint - 3, 0, 5, 5); - + if (startKeyFrameUnitControl == null) + startKeyFrameUnitControl = + new Rectangle(startPoint + - TimelineConstants.DEFAULT_KEYFRAME_CONTROL_HEIGHT, 0, + TimelineConstants.DEFAULT_KEYFRAME_CONTROL_WIDTH, + TimelineConstants.DEFAULT_KEYFRAME_CONTROL_HEIGHT); + if (endKeyFrameUnitControl == null) + endKeyFrameUnitControl = + new Rectangle(endPoint - TimelineConstants.DEFAULT_KEYFRAME_CONTROL_HEIGHT, + 0, TimelineConstants.DEFAULT_KEYFRAME_CONTROL_WIDTH, + TimelineConstants.DEFAULT_KEYFRAME_CONTROL_HEIGHT); + } } @@ -163,9 +172,9 @@ public class KeyFrameUnit extends KeyFrameComponent { } else { // none selected gc.setForeground(ColorResource.BLACK); - if(component instanceof KeyFrame) { + if (component instanceof KeyFrame) { KeyFrameUnit keyFrameUnit = ((KeyFrame) component).getKeyFrameUnit(); - if(this.equals(keyFrameUnit)) { + if (this.equals(keyFrameUnit)) { refreshKeyFrameUnitControl(gc); } } else { @@ -175,23 +184,30 @@ public class KeyFrameUnit extends KeyFrameComponent { gc.setForeground(ColorResource.LIFE_WIDGET_BORDER); } gc.drawRectangle(getKeyframeUnit()); - + } for (KeyFrame child : getKeyframelist()) { child.redraw(gc); } } - + private void refreshKeyFrameUnitControl(GC gc) { - if(startKeyFrameUnitControl != null) { - startKeyFrameUnitControl.x = keyframeUnit.x - 4; - gc.drawRectangle(startKeyFrameUnitControl); + if (startKeyFrameUnitControl != null) { + startKeyFrameUnitControl.x = + keyframeUnit.x - TimelineConstants.DEFAULT_KEYFRAME_CONTROL_HEIGHT; + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_keyframes_extention_handle.png"), + startKeyFrameUnitControl.x, startKeyFrameUnitControl.y); } - - if(endKeyFrameUnitControl != null) { - endKeyFrameUnitControl.x = keyframeUnit.x + keyframeUnit.width - 2; - gc.drawRectangle(endKeyFrameUnitControl); + + if (endKeyFrameUnitControl != null) { + endKeyFrameUnitControl.x = + keyframeUnit.x + keyframeUnit.width + - TimelineConstants.DEFAULT_KEYFRAME_CONTROL_HEIGHT; + gc.drawImage(ResourceManager.getImage(BuilderConstants.ICON_DIR, + "animator_keyframes_extention_handle.png"), + endKeyFrameUnitControl.x, startKeyFrameUnitControl.y); } } @@ -221,7 +237,7 @@ public class KeyFrameUnit extends KeyFrameComponent { } } - + /** * Refresh * @@ -230,9 +246,9 @@ public class KeyFrameUnit extends KeyFrameComponent { */ public void refreshFrame(boolean isStart) { int size = keyframelist.size(); - //Rectangle firstTime = keyframelist.get(0).getKeyframe(); - if(isStart == true) { - for (int i = 1; i < size ; ++i ) { + // Rectangle firstTime = keyframelist.get(0).getKeyframe(); + if (isStart == true) { + for (int i = 1; i < size; ++i) { KeyFrame keyFrame = keyframelist.get(i); keyFrame.getKeyframe().x = @@ -241,7 +257,7 @@ public class KeyFrameUnit extends KeyFrameComponent { - timeTreeElement.getVisibleStartTimePoint(); } } else { - for (int i = 0; i < size - 1 ; ++i ) { + for (int i = 0; i < size - 1; ++i) { KeyFrame keyFrame = keyframelist.get(i); keyFrame.getKeyframe().x = getKeyFrameUnitModelXpoint() + keyFrame.getKeyFrameModelXpoint() @@ -249,7 +265,7 @@ public class KeyFrameUnit extends KeyFrameComponent { - timeTreeElement.getVisibleStartTimePoint(); } } - + } /** @@ -388,7 +404,7 @@ public class KeyFrameUnit extends KeyFrameComponent { public Rectangle findNextKeyFrameBounds() { KeyFrame findKeyFrame = null; int size = keyframeModel.getChildrenSize(); - if(size > 1) { + if (size > 1) { AnimatorFrame keyFrame = (AnimatorFrame) keyframeModel.getChild(1); findKeyFrame = findCurrentKeyFrame(keyFrame); return findKeyFrame.getKeyframe(); @@ -402,12 +418,12 @@ public class KeyFrameUnit extends KeyFrameComponent { public Rectangle findBeforeKeyFrameBounds() { KeyFrame findKeyFrame = null; int size = keyframeModel.getChildrenSize(); - if(size > 1) { - AnimatorFrame keyFrame = (AnimatorFrame) keyframeModel.getChild(size -2); + if (size > 1) { + AnimatorFrame keyFrame = (AnimatorFrame) keyframeModel.getChild(size - 2); findKeyFrame = findCurrentKeyFrame(keyFrame); return findKeyFrame.getKeyframe(); } - + return null; } @@ -416,8 +432,8 @@ public class KeyFrameUnit extends KeyFrameComponent { */ public KeyFrame findCurrentKeyFrame(AnimatorFrame keyFrame) { KeyFrame findKeyFrame = null; - for(KeyFrame currentkeyFrame : keyframelist) { - if(currentkeyFrame.getModel().equals(keyFrame)) { + for (KeyFrame currentkeyFrame : keyframelist) { + if (currentkeyFrame.getModel().equals(keyFrame)) { findKeyFrame = currentkeyFrame; break; } -- 2.7.4