Package com.eclipsesource.tabris.internal

Source Code of com.eclipsesource.tabris.internal.SwipeManager

/*******************************************************************************
* Copyright (c) 2013 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    EclipseSource - initial API and implementation
******************************************************************************/
package com.eclipsesource.tabris.internal;

import static com.eclipsesource.tabris.internal.Preconditions.checkArgumentNotNull;

import java.io.Serializable;

import org.eclipse.swt.SWT;

import com.eclipsesource.tabris.widgets.swipe.SwipeContext;
import com.eclipsesource.tabris.widgets.swipe.SwipeItemProvider;


public class SwipeManager implements Serializable {

  private final SwipeItemProvider provider;
  private final SwipeContext context;
  private final SwipeItemHolder itemHolder;
  private final SwipeItemIndexer indexer;
  private int leftLock;
  private int rightLock;

  public SwipeManager( SwipeItemProvider provider ) {
    checkArgumentNotNull( provider, "SwipeItemProvier" );
    this.provider = provider;
    this.context = new SwipeContext();
    this.itemHolder = new SwipeItemHolder();
    this.indexer = new SwipeItemIndexer();
    this.leftLock = -1;
    this.rightLock = -1;
  }

  public SwipeItemProvider getProvider() {
    return provider;
  }

  public SwipeContext getContext() {
    return context;
  }

  public SwipeItemHolder getItemHolder() {
    return itemHolder;
  }

  public SwipeItemIndexer getIndexer() {
    return indexer;
  }

  public void lock( int direction, int index, boolean locked ) {
    if( locked ) {
      lock( direction, index );
    } else {
      unlock( direction );
    }
  }

  public void unlock( int direction ) {
    if( direction == SWT.LEFT ) {
      leftLock = -1;
    } else {
      rightLock = -1;
    }
  }

  private void lock( int direction, int index ) {
    if( direction == SWT.LEFT ) {
      leftLock = index;
    } else {
      rightLock = index;
    }
  }

  public boolean isMoveAllowed( int fromIndex, int toIndex ) {
    int direction = SWT.LEFT;
    if( toIndex > fromIndex ) {
      direction = SWT.RIGHT;
    }
    return isValidMove( toIndex, direction );
  }

  private boolean isValidMove( int toIndex, int direction ) {
    boolean result;
    if( direction == SWT.LEFT ) {
      result = leftLock == -1 || toIndex >= leftLock;
    } else {
      result = rightLock == -1 || toIndex <= rightLock;
    }
    return result;
  }

  public int getLeftLock() {
    return leftLock;
  }

  public int getRightLock() {
    return rightLock;
  }
}
TOP

Related Classes of com.eclipsesource.tabris.internal.SwipeManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.