ANIMATOR : Synchronize Animation stop time 32/21832/5
authorjinwooim.bae <jinwooim.bae@samsung.com>
Wed, 28 May 2014 08:57:37 +0000 (17:57 +0900)
committerjinwooim.bae <jinwooim.bae@samsung.com>
Thu, 29 May 2014 01:58:32 +0000 (10:58 +0900)
When the animation stops during operation time synchronization.

Change-Id: I08e5f39550c7d5cc5a70c8cb60a39742ae269706
Signed-off-by: jinwooim.bae <jinwooim.bae@samsung.com>
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/common/Formatter.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/PlayHeader.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/header/TimeBar.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineToolbar.java

index 5c7911e..6e03d59 100644 (file)
@@ -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;
 
index 56bc1f8..4569dbb 100644 (file)
@@ -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)));
     }
 
     /**
index 3bf538f..5286376 100644 (file)
@@ -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);
index 7b5162c..122c612 100644 (file)
@@ -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);
     }
 
     /**