From 86dd9614b68ad4b0cf9c95438fffad19310f8fbb Mon Sep 17 00:00:00 2001 From: "jinwooim.bae" Date: Wed, 28 May 2014 17:57:37 +0900 Subject: [PATCH] ANIMATOR : Synchronize Animation stop time When the animation stops during operation time synchronization. Change-Id: I08e5f39550c7d5cc5a70c8cb60a39742ae269706 Signed-off-by: jinwooim.bae --- .../ui/views/timeline/common/Formatter.java | 2 +- .../ui/views/timeline/header/PlayHeader.java | 51 ++++-------- .../animator/ui/views/timeline/header/TimeBar.java | 5 +- .../ui/views/timeline/tool/TimelineToolbar.java | 94 +++++++++------------- 4 files changed, 59 insertions(+), 93 deletions(-) diff --git a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/Formatter.java b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/Formatter.java index 5c7911e..6e03d59 100644 --- a/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/Formatter.java +++ b/org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/Formatter.java @@ -38,7 +38,7 @@ public class Formatter { public static String toTimeFormat(double time) { int mst = (int) time; - int ms = (int) ((time - (double) mst) * 1000.000); + int ms = (int) ((time * 1000) - (mst * 1000.000)); int minute = mst / 60; int second = mst % 60; 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 56bc1f8..4569dbb 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 @@ -53,11 +53,8 @@ public class PlayHeader extends Composite { private boolean markerflag = false; private int mouseDownPoint = 0; - private int positionMarker = TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0; private int currentPointTime = 0; - private TimelineToolbar toolbar = null; - private int beforePoint = 0; /** @@ -71,7 +68,8 @@ public class PlayHeader extends Composite { public PlayHeader(Composite parent, int style) { super(parent, style); - setBounds(getPositionMarker(), TimelineConstants.DEFAULT_TIMELINE_MARKER_Y, + setBounds(TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0, + TimelineConstants.DEFAULT_TIMELINE_MARKER_Y, TimelineConstants.DEFAULT_TIMELINE_MARKER_WIDTH, TimelineConstants.DEFAULT_TIMELINE_MARKER_HEIGHT); @@ -81,7 +79,7 @@ public class PlayHeader extends Composite { Rectangle clientArea = getClientArea(); Rectangle bounds = getBounds(); - + e.gc.setBackground(ColorResource.TIMEBAR_BOTTOM); e.gc.setForeground(ColorResource.TIMEBAR_TOP); @@ -114,7 +112,7 @@ public class PlayHeader extends Composite { markerflag = false; mouseDownPoint = 0; - int pointTime = getPlayHeaderTime(); + int pointTime = getCurrentPointTime(); if (pointTime < 0) { pointTime = 0; } @@ -134,21 +132,18 @@ public class PlayHeader extends Composite { int startTime = timebar.getStartTime(); Point timeBarsize = timebar.getSize(); - if (startTime == 0 - && rMarker.x < TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0) { + if (startTime == 0 && rMarker.x < TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0) { markerflag = false; setLocation(TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0, TimelineConstants.DEFAULT_TIMELINE_MARKER_Y); - setPositionMarker(TimelineConstants.DEFAULT_TIMELINE_TIMEBAR_0); setCurrentPointTime(0); } else { - setPositionMarker((rMarker.x - mouseDownPoint + e.x)); - setLocation(getPositionMarker(), + setLocation((rMarker.x - mouseDownPoint + e.x), TimelineConstants.DEFAULT_TIMELINE_MARKER_Y); } // update marker point time - int pointTime = getPlayHeaderTime(); + int pointTime = getCurrentPointTime(); if (pointTime < 0) { pointTime = 0; } @@ -158,8 +153,7 @@ public class PlayHeader extends Composite { refreshPlayHeaderLine(); - int incresementPoint = - timeBarsize.x - TimelineConstants.DEFAULT_TIMEBAR_HEIGHT; + int incresementPoint = timeBarsize.x - TimelineConstants.DEFAULT_TIMEBAR_HEIGHT; // Logger.trace("marker : " + rMarker.x); if (rMarker.x > incresementPoint) { @@ -205,11 +199,13 @@ 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); } - - if(isPlayHeaderLine == true) { + + if (isPlayHeaderLine == true) { refreshPlayHeaderLine(); } @@ -234,24 +230,6 @@ public class PlayHeader extends Composite { /********************************************************************************************** * Getter - Setter **********************************************************************************************/ - /** - * Get TimeMarker position - * - * @return {@link PlayHeader} TimeMarker position - */ - public int getPositionMarker() { - return positionMarker; - } - - /** - * Set TimeMarker position - * - * @param positionMarker - * x position value - */ - public void setPositionMarker(int positionMarker) { - this.positionMarker = positionMarker; - } /** * Get TimeMarker current Time @@ -261,8 +239,9 @@ public class PlayHeader extends Composite { public int getPlayHeaderTime() { double scale = ((TimeBar) getParent()).getScale(); int startTime = ((TimeBar) getParent()).getStartTime(); + int xPosition = getBounds().x; - return (int) (((positionMarker/scale)*TimelineConstants.DEFAULT_TIME_INTERVAL + (startTime))); + return (int) (((xPosition / 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 3bf538f..5286376 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 @@ -173,8 +173,9 @@ public class TimeBar extends Canvas { TimelineToolbar toolBar = mainContainer.getTimelineToolbar(); toolBar.stopPlaying(); - playHeader.setLocation(positionTime / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL, playHeader.getBounds().y); - playHeader.setPositionMarker(positionTime / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL); + playHeader + .setLocation(positionTime / TimelineConstants.DEFAULT_CONVERTTIME_POSITION_INTERVAL, + playHeader.getBounds().y); int pointTime = playHeader.getPlayHeaderTime(); playHeader.setCurrentPointTime(pointTime); 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 7b5162c..122c612 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 @@ -83,7 +83,6 @@ 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; import org.tizen.webuibuilder.animator.ui.views.timeline.common.TimelineMessages; import org.tizen.webuibuilder.animator.ui.views.timeline.header.PlayHeader; import org.tizen.webuibuilder.animator.ui.views.timeline.header.TimeBar; @@ -120,7 +119,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { // private Button snap = null; private Button filter = null; - private Composite scaleContainer = null; + //private Composite scaleContainer = null; private Scale scale = null; private Button zoomIn = null; private Button zoomOut = null; @@ -222,7 +221,6 @@ public class TimelineToolbar extends Composite implements IAnimationListener { mainContainer.getContentContainer().getContentHeaderContainer() .getKeyframeHeader().getTimeBar().getPlayHeader(); - marker.setPositionMarker(0); marker.setCurrentPointTime(0); marker.draw(true); @@ -282,18 +280,20 @@ public class TimelineToolbar extends Composite implements IAnimationListener { if (!isPlaying) { isPlaying = true; playButtonState = 3; + playNpause.setToolTipText(TimelineMessages.STOP); AnimatorUtils.getActiveAnimatorBrowserViewer().playCurrentAnimation(); } else { isPlaying = false; playButtonState = 0; + playNpause.setToolTipText(TimelineMessages.PLAY); TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); PlayHeader marker = mainContainer.getContentContainer().getContentHeaderContainer() .getKeyframeHeader().getTimeBar().getPlayHeader(); AnimatorUtils.getActiveAnimatorBrowserViewer() - .pauseAnimation(marker.getPlayHeaderTime()); + .pauseAnimation(marker.getCurrentPointTime()); } } @@ -304,10 +304,8 @@ public class TimelineToolbar extends Composite implements IAnimationListener { } if (!isPlaying) { playButtonState = 1; - playNpause.setToolTipText(TimelineMessages.STOP); } else { playButtonState = 4; - playNpause.setToolTipText(TimelineMessages.PLAY); } } }); @@ -448,7 +446,8 @@ public class TimelineToolbar extends Composite implements IAnimationListener { timeTextFormData.height = 21; timeText.setLayoutData(timeTextFormData); timeText.setBackgroundImage(ResourceManager - .getImage(BuilderConstants.ICON_DIR, "animator_toolbar_time_input_window_input_text.png")); + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_time_input_window_input_text.png")); setCurrentTime("00 : 00 . 000"); Font initialFont = timeText.getFont(); FontData[] fontData = initialFont.getFontData(); @@ -609,7 +608,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { textBoxState = 2; } }); - + timeText.addListener(SWT.MouseExit, new Listener() { @Override public void handleEvent(Event event) { @@ -631,13 +630,15 @@ public class TimelineToolbar extends Composite implements IAnimationListener { break; case 1: gc.drawImage(ResourceManager - .getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_time_input_window_input_text.png"), 0, 0); + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_time_input_window_input_text.png"), + 0, + 0); break; case 2: gc.drawImage(ResourceManager - .getImage(BuilderConstants.ICON_DIR, - "animator_toolbar_time_input_window_hover.png"), 0, 0); + .getImage(BuilderConstants.ICON_DIR, + "animator_toolbar_time_input_window_hover.png"), 0, 0); break; default: break; @@ -839,19 +840,18 @@ public class TimelineToolbar extends Composite implements IAnimationListener { }); // scale - scaleContainer = new Composite(this, SWT.NONE); +/* 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); - - zoomOut = new Button(scaleContainer, SWT.NONE); +*/ + zoomOut = new Button(this, SWT.NONE); FormData zoomOutFormData = new FormData(); zoomOutFormData.top = new FormAttachment(0, 5); - zoomOutFormData.left = new FormAttachment(0); + zoomOutFormData.right = new FormAttachment(100, -116); zoomOutFormData.height = 16; zoomOutFormData.width = 16; zoomOut.setLayoutData(zoomOutFormData); @@ -887,7 +887,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { } }); - scale = new Scale(scaleContainer, SWT.HORIZONTAL); + scale = new Scale(this, SWT.HORIZONTAL); scale.setData("CompositeName", "scale"); FormData scaleFormData = new FormData(); @@ -910,7 +910,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener { } }); - zoomIn = new Button(scaleContainer, SWT.NONE); + zoomIn = new Button(this, SWT.NONE); FormData zoomInFormData = new FormData(); zoomInFormData.top = new FormAttachment(0, 5); zoomInFormData.left = new FormAttachment(scale); @@ -952,39 +952,31 @@ public class TimelineToolbar extends Composite implements IAnimationListener { @Override public void animationPlay(AnimationEvent e) { - if (isPlaying) { - int millSecond = e.getWparam(); - - TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); + int millSecond = e.getWparam(); - TimeBar timeBar = - mainContainer.getContentContainer().getContentHeaderContainer() - .getKeyframeHeader().getTimeBar(); - - PlayHeader marker = timeBar.getPlayHeader(); - - int timelinePoint = - (int) (timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL); - double pointTime = Formatter.computeTimeTotime(millSecond); + TimelineMainContainer mainContainer = (TimelineMainContainer) getParent(); - marker.setPositionMarker((int) (pointTime * timelinePoint)); - marker.setCurrentPointTime(millSecond); + TimeBar timeBar = + mainContainer.getContentContainer().getContentHeaderContainer().getKeyframeHeader() + .getTimeBar(); - if (Platform.getOS().equals(Platform.OS_WIN32)) { - marker.draw(false); - } else if (Platform.getOS().equals(Platform.OS_LINUX) - || (Platform.getOS().equals(Platform.OS_MACOSX))) { - marker.draw(true); - } + PlayHeader marker = timeBar.getPlayHeader(); + double pointTime = Formatter.computeTimeTotime(millSecond); + marker.setCurrentPointTime(millSecond); + + if (Platform.getOS().equals(Platform.OS_WIN32)) { + marker.draw(false); + } else if (Platform.getOS().equals(Platform.OS_LINUX) + || (Platform.getOS().equals(Platform.OS_MACOSX))) { + marker.draw(true); + } - // double markerTime = marker.getPlayHeaderTime(); - String time = AnimatorUtils.convertTimetoTimeText(pointTime); + String time = AnimatorUtils.convertTimetoTimeText(pointTime); - setCurrentTime(time); - timeText.redraw(); + setCurrentTime(time); + timeText.redraw(); - mainContainer.getContentContainer().refreshHCurrentScroll(millSecond); - } + mainContainer.getContentContainer().refreshHCurrentScroll(millSecond); } @Override @@ -1063,21 +1055,15 @@ public class TimelineToolbar extends Composite implements IAnimationListener { .getTimeBar(); PlayHeader marker = timeBar.getPlayHeader(); - - int timelinePoint = - (int) (lastTime * timeBar.getScale()) / TimelineConstants.DEFAULT_TIME_INTERVAL; - - marker.setPositionMarker(timelinePoint); marker.setCurrentPointTime(lastTime); - marker.draw(true); - double markerTime = marker.getPlayHeaderTime(); String time = AnimatorUtils.convertTimetoTimeIntText(lastTime); setCurrentTime(time); + double selectedTime = Formatter.computeTimeTotime(lastTime); AnimatorUtils.getActiveAnimatorBrowserViewer().showAnimationAtMoment(animationGroupId, - markerTime); + selectedTime); } /** -- 2.7.4