Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: client/view/ConveyorView.dart

Issue 9382027: Move client/{base, observable, layout, touch, util, view} to samples/ui_lib . (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/view/CompositeView.dart ('k') | client/view/MeasureText.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/view/ConveyorView.dart
===================================================================
--- client/view/ConveyorView.dart (revision 4144)
+++ client/view/ConveyorView.dart (working copy)
@@ -1,98 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Holds a number of child views. As you switch between views, the old
- * view is pushed off to the side and the new view slides in from the other
- * side.
- */
-class ConveyorView extends CompositeView {
- // TODO(jmesserly): some places use this property to know when the slide
- // transition is finished. It would be better to have an event that fires
- // when we're done sliding
- static final ANIMATE_SECONDS = 0.25;
-
- View targetView;
- // TODO(rnystrom): Should not be settable.
- View selectedView;
- // TODO(rnystrom): Hackish. Should use a real multicast event-like class.
- // Or just have it depend on an Observable to select a view and indicate
- // which view is selected? (e.g. the MVVM pattern)
- Function viewSelected;
-
- int animationTimeoutId;
-
- ConveyorView()
- : super('conveyor-view', true),
- animationTimeoutId = null {
- }
-
- Element render() {
- final result = super.render();
- // TODO(rnystrom): Have to do this in render() because container doesn't
- // exist before then. Hack. Should find a cleaner solution. One of:
- // - Add a ctor param to CompositeView for container class name.
- // - Make ConveyorView contain a CompositeView instead of subclass.
- // - Add method to CompositeView to set class name.
- container.attributes['class'] = 'conveyor-view-container';
- return result;
- }
-
- void selectView(View targetView_, [bool animate = true]) {
- selectedView = targetView_;
-
- // Only animate if we're actually in the document now.
- if (isRendered) {
- adjustOffset(animate);
- }
- }
-
- void adjustOffset(bool animate) {
- int index = getIndexOfSelectedView();
- final durationSeconds = animate ? ANIMATE_SECONDS : 0.0;
-
- final style = container.style;
- // TODO(jacobr): modify setTransitionDuration so the input is always
- // specified in miliseconds rather than accepting a string.
- style.transitionDuration = '${durationSeconds}s';
- final xTranslationPercent = -index * 100;
- style.transform = 'translate3d(${xTranslationPercent}%, 0px, 0px)';
-
- if (animationTimeoutId != null) {
- window.clearTimeout(animationTimeoutId);
- }
-
- if (animate) {
- animationTimeoutId = window.setTimeout(
- () { _onAnimationEnd(); }, (durationSeconds * 1000).toInt());
- }
- // TODO(mattsh), we should set the visibility to hide everything but the
- // selected view.
- }
-
- int getIndexOfSelectedView() {
- for (int i = 0; i < childViews.length; i++) {
- if (childViews[i] == selectedView) {
- return i;
- }
- }
- throw "view not found";
- }
-
- /**
- * Adds a child view to the ConveyorView. The views are stacked horizontally
- * in the order they are added.
- */
- View addChild(View view) {
- view.addClass('conveyor-item');
- view.transform = 'translate3d(' + (childViews.length * 100) + '%, 0, 0)';
- return super.addChild(view);
- }
-
- void _onAnimationEnd() {
- if (viewSelected != null) {
- viewSelected(selectedView);
- }
- }
-}
« no previous file with comments | « client/view/CompositeView.dart ('k') | client/view/MeasureText.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698