ANIMATOR : Refresh Scroll Zoom In/out 13/21813/2
authorjinwooim.bae <jinwooim.bae@samsung.com>
Wed, 28 May 2014 06:03:52 +0000 (15:03 +0900)
committerjinwooim.bae <jinwooim.bae@samsung.com>
Wed, 28 May 2014 06:09:38 +0000 (15:09 +0900)
Scroll is refreshed when zoom in/out flow.

Change-Id: I114ba67b79dd6ba8dde3851374bba9b89cb9c5aa
Signed-off-by: jinwooim.bae <jinwooim.bae@samsung.com>
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/TimelineContentContainer.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineContentToolsContainer.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/ui/views/timeline/tool/TimelineToolbar.java

index 8def9da..f7694cf 100644 (file)
@@ -391,10 +391,20 @@ public class TimelineContentContainer extends Composite {
         double scale = timeBar.getScale();
         int lastTime = (int) (timeBarSize.x * TimelineConstants.DEFAULT_TIME_INTERVAL / scale);
         int fullTime = startTime + lastTime;
+        int currentTime = timeBar.getPlayHeader().getCurrentPointTime();
         
-        if(fullTime - 30 <= currentPointTime) {
+        if(startTime > currentTime) {
+            int lastTimeSel = currentTime/TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL - (int)(30 /scale);
+            hScroll.setSelection(lastTimeSel);
+
+            timeBar.setStartTime(currentTime);
+            timeBar.redraw();
 
-            int lastTimeSel = hScroll.getSelection() + 1;
+            // loop setting timeElement
+            refeshTimeline();
+        } else if(fullTime - 30 <= currentPointTime) {
+            int computeSel = (int) (lastTime - (TimelineConstants.DEFAULT_TIME_INTERVAL*scale)/TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL);
+            int lastTimeSel = hScroll.getSelection() + computeSel;
             hScroll.setSelection(lastTimeSel);
 
             // start Time
index b91da17..b69b69f 100644 (file)
@@ -26,13 +26,18 @@ package org.tizen.webuibuilder.animator.ui.views.timeline.tool;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.PaintEvent;
 import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Point;
 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.Composite;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.ScrollBar;
 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.common.TimelineConstants;
+import org.tizen.webuibuilder.animator.ui.views.timeline.header.TimeBar;
 
 
 /**
@@ -114,6 +119,63 @@ public class TimelineContentToolsContainer extends Composite {
                 - (area.width + 10), bounds.height);
     }
 
+    /**
+     * Set Horizontal Scroll MaxSel
+     */
+    public void setHScrollMaxSel() {
+        int lastTime = 0;
+        double scale = 0;
+        
+        TimelineMainContainer mainContainer = (TimelineMainContainer)  getParent().getParent();
+        ScrollBar horizontalScrollBar = hScroll;
+        TimeBar timeBar =
+                mainContainer.getContentContainer().getContentHeaderContainer().getKeyframeHeader()
+                        .getTimeBar();
+
+        scale = timeBar.getScale();
+        lastTime = mainContainer.getContentContainer().getLastTimeInAnimationGroup();
+        Point point = getSize();
+        
+        int location = (int) (lastTime * scale / TimelineConstants.DEFAULT_TIME_INTERVAL);
+        if (point.x < location) {
+            horizontalScrollBar.setMaximum(location/10);
+        }
+    }
+    
+    
+    /**
+     * Move LastTime Scroll
+     */
+    public void moveLastTimeScroll() {
+        int lastTime = 0;
+        double scale = 0;
+        
+        TimelineMainContainer mainContainer = (TimelineMainContainer)  getParent().getParent();
+        TimeBar timeBar =
+                mainContainer.getContentContainer().getContentHeaderContainer().getKeyframeHeader()
+                        .getTimeBar();
+
+        scale = timeBar.getScale();
+        lastTime = mainContainer.getContentContainer().getLastTimeInAnimationGroup();
+        Point point = getSize();
+        int location = (int) (lastTime * scale / TimelineConstants.DEFAULT_TIME_INTERVAL);
+        if (point.x < location) {
+            int computeSel = lastTime
+                    / TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL - (int)(30 /scale);
+
+            hScroll.setMaximum(location/10);
+            hScroll.setSelection(computeSel);
+            
+        } else {
+            hScroll.setSelection(0);
+        }
+        Event event = new Event();
+        event.display = getDisplay();
+        event.widget = hScroll;
+        event.x = 0;
+        hScroll.notifyListeners(SWT.Selection, event);
+    }
+
     /**********************************************************************************************
      * Getter - Setter
      **********************************************************************************************/
index 50a2601..7b5162c 100644 (file)
@@ -215,6 +215,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
             public void mouseDown(MouseEvent e) {
                 isPlaying = false;
                 backButtonState = 1;
+                playButtonState = 0;
 
                 TimelineMainContainer mainContainer = (TimelineMainContainer) getParent();
                 PlayHeader marker =
@@ -301,7 +302,6 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
                 if (!canPlayAnimation()) {
                     return;
                 }
-
                 if (!isPlaying) {
                     playButtonState = 1;
                     playNpause.setToolTipText(TimelineMessages.STOP);
@@ -355,49 +355,15 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
             public void mouseDown(MouseEvent e) {
                 isPlaying = false;
                 forButtonState = 1;
+                playButtonState = 0;
 
                 setLastAnimationPoint();
                 moveLastTimeScroll();
-
-                // play button
-                isPlaying = false;
             }
 
             @Override
             public void mouseDoubleClick(MouseEvent e) {
-                double lastTime = 0.0;
-
-                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(lastTime);
-
-                marker.setPositionMarker(timelinePoint);
-                marker.setCurrentPointTime(timePoint);
-                marker.draw(true);
-
-                double markerTime = marker.getPlayHeaderTime();
-                String time = AnimatorUtils.convertTimetoTimeText(markerTime);
-                setCurrentTime(time);
-
-                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);
             }
         });
         forward.addListener(SWT.MouseEnter, new Listener() {
@@ -882,25 +848,25 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
         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);
+        zoomOut = new Button(scaleContainer, SWT.NONE);
+        FormData zoomOutFormData = new FormData();
+        zoomOutFormData.top = new FormAttachment(0, 5);
+        zoomOutFormData.left = new FormAttachment(0);
+        zoomOutFormData.height = 16;
+        zoomOutFormData.width = 16;
+        zoomOut.setLayoutData(zoomOutFormData);
+        zoomOut.setToolTipText(TimelineMessages.ZOOM_OUT);
+        zoomOut.addListener(SWT.Paint, paintListener);
 
-        zoomIn.addMouseListener(new MouseAdapter() {
+        zoomOut.addMouseListener(new MouseAdapter() {
             @Override
             public void mouseUp(MouseEvent e) {
-                zoomInButtonState = 0;
+                zoomOutButtonState = 0;
             }
 
             @Override
             public void mouseDown(MouseEvent e) {
-                zoomInButtonState = 1;
+                zoomOutButtonState = 1;
                 if (scale != null && scale.isDisposed() == false) {
                     int selection = scale.getSelection();
                     scale.setSelection(--selection);
@@ -908,16 +874,16 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
                 }
             }
         });
-        zoomIn.addListener(SWT.MouseEnter, new Listener() {
+        zoomOut.addListener(SWT.MouseEnter, new Listener() {
             @Override
             public void handleEvent(Event event) {
-                zoomInButtonState = 2;
+                zoomOutButtonState = 2;
             }
         });
-        zoomIn.addListener(SWT.MouseExit, new Listener() {
+        zoomOut.addListener(SWT.MouseExit, new Listener() {
             @Override
             public void handleEvent(Event event) {
-                zoomInButtonState = 0;
+                zoomOutButtonState = 0;
             }
         });
 
@@ -926,7 +892,7 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
 
         FormData scaleFormData = new FormData();
         scaleFormData.top = new FormAttachment(0, -7);
-        scaleFormData.left = new FormAttachment(zoomIn);
+        scaleFormData.left = new FormAttachment(zoomOut);
         scaleFormData.height = 32;
         scaleFormData.width = 100;
         scale.setLayoutData(scaleFormData);
@@ -944,25 +910,25 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
             }
         });
 
-        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);
+        zoomIn = new Button(scaleContainer, SWT.NONE);
+        FormData zoomInFormData = new FormData();
+        zoomInFormData.top = new FormAttachment(0, 5);
+        zoomInFormData.left = new FormAttachment(scale);
+        zoomInFormData.height = 16;
+        zoomInFormData.width = 16;
+        zoomIn.setLayoutData(zoomInFormData);
+        zoomIn.setToolTipText(TimelineMessages.ZOOM_IN);
+        zoomIn.addListener(SWT.Paint, paintListener);
 
-        zoomOut.addMouseListener(new MouseAdapter() {
+        zoomIn.addMouseListener(new MouseAdapter() {
             @Override
             public void mouseUp(MouseEvent e) {
-                zoomOutButtonState = 0;
+                zoomInButtonState = 0;
             }
 
             @Override
             public void mouseDown(MouseEvent e) {
-                zoomOutButtonState = 1;
+                zoomInButtonState = 1;
                 if (scale != null && scale.isDisposed() == false) {
                     int selection = scale.getSelection();
                     scale.setSelection(++selection);
@@ -970,16 +936,16 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
                 }
             }
         });
-        zoomOut.addListener(SWT.MouseEnter, new Listener() {
+        zoomIn.addListener(SWT.MouseEnter, new Listener() {
             @Override
             public void handleEvent(Event event) {
-                zoomOutButtonState = 2;
+                zoomInButtonState = 2;
             }
         });
-        zoomOut.addListener(SWT.MouseExit, new Listener() {
+        zoomIn.addListener(SWT.MouseExit, new Listener() {
             @Override
             public void handleEvent(Event event) {
-                zoomOutButtonState = 0;
+                zoomInButtonState = 0;
             }
         });
     }
@@ -1000,7 +966,6 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
             int timelinePoint =
                     (int) (timeBar.getScale() * TimelineConstants.DEFAULT_TIME_POSITION_INTERVAL);
             double pointTime = Formatter.computeTimeTotime(millSecond);
-            // int timePoint = Formatter.timeToComputeTime(millSecond);
 
             marker.setPositionMarker((int) (pointTime * timelinePoint));
             marker.setCurrentPointTime(millSecond);
@@ -1482,32 +1447,28 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
         PlayHeader marker = timeBar.getPlayHeader();
         marker.draw(true);
 
+        setHScrollMaxSel();
         mainContainer.getContentContainer().refeshTimeline();
     }
 
     /**
+     * Set H Scroll MaxSel
+     */
+    private void setHScrollMaxSel() {
+        TimelineMainContainer mainContainer = (TimelineMainContainer) getParent();
+        TimelineContentToolsContainer contentToolsContainer =
+                mainContainer.getContentContainer().getContentToolsContainer();
+        contentToolsContainer.setHScrollMaxSel();
+    }
+
+    /**
      * 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);
+        contentToolsContainer.moveLastTimeScroll();
     }
 
     /**
@@ -1535,10 +1496,10 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
             refreshPredefinedPanel(gc);
         } else if (button.equals(filter)) {
             refreshFilterButton(gc);
-        } else if (button.equals(zoomIn)) {
-            refreshZoomInButton(gc);
         } else if (button.equals(zoomOut)) {
             refreshZoomOutButton(gc);
+        } else if (button.equals(zoomIn)) {
+            refreshZoomInButton(gc);
         }
     }
 
@@ -1800,8 +1761,8 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
      * 
      * @param gc
      */
-    private void refreshZoomInButton(GC gc) {
-        switch (zoomInButtonState) {
+    private void refreshZoomOutButton(GC gc) {
+        switch (zoomOutButtonState) {
             case 0:
                 gc.drawImage(ResourceManager
                         .getImage(BuilderConstants.ICON_DIR,
@@ -1828,8 +1789,8 @@ public class TimelineToolbar extends Composite implements IAnimationListener {
      * 
      * @param gc
      */
-    private void refreshZoomOutButton(GC gc) {
-        switch (zoomOutButtonState) {
+    private void refreshZoomInButton(GC gc) {
+        switch (zoomInButtonState) {
             case 0:
                 gc.drawImage(ResourceManager
                         .getImage(BuilderConstants.ICON_DIR,