// Path: timeline/src/main/java/org/mpilone/vaadin/timeline/shared/TimelineState.java
// public class TimelineState extends JavaScriptComponentState {
// 
//   public Options options;
// 
//   public static class TimeAxis {
// 
//     public String scale;
//     public int step;
//   }
// 
//   public static class Editable {
// 
//     public boolean add;
//     public boolean remove;
//     public boolean updateGroup;
//     public boolean updateTime;
//   }
// 
//   public static class Format {
// 
//     public FormatLabels majorLabels;
//     public FormatLabels minorLabels;
//   }
// 
//   public static class FormatLabels {
// 
//     public String millisecond;
//     public String second;
//     public String minute;
//     public String hour;
//     public String weekday;
//     public String day;
//     public String month;
//     public String year;
//   }
// 
//   public static class Margin {
// 
//     public int axis;
//     public MarginItem item;
//   }
// 
//   public static class MarginItem {
// 
//     public int vertical;
//     public int horizontal;
//   }
// 
//   public static class Orientation {
// 
//     public String axis;
//     public String item;
//   }
// 
//   public static class Options {
// 
//     public String align;
//     public boolean autoResize;
//     public boolean clickToUse;
//     public Editable editable;
//     public Long end;
//     public Format format;
//     public String groupOrder;
//     public Margin margin;
//     public Long max;
//     public Long min;
//     public String moment;
//     public boolean moveable;
//     public boolean multiselect;
//     public Orientation orientation;
//     public boolean selectable;
//     public boolean showCurrentTime;
//     public boolean showMajorLabels;
//     public boolean showMinorLabels;
//     public boolean stack;
//     public Long start;
//     public TimeAxis timeAxis;
//     public String type;
//     public boolean zoomable;
//     public int zoomMax;
//     public int zoomMin;
//   }
// 
// }


import java.util.Date;
import org.mpilone.vaadin.timeline.shared.TimelineState;
package org.mpilone.vaadin.timeline;



/**
 * The various options that can be configured on the timeline. Refer to
 * http://visjs.org/docs/timeline.html#Configuration_Options for detailed
 * documentation.
 *
 * @author mpilone
 */
public interface TimelineOptions {

  /**
   * When a Timeline is configured to be clickToUse, it will react to mouse and
   * touch events only when active. When active, a blue shadow border is
   * displayed around the Timeline. The Timeline is set active by clicking on
   * it, and is changed to inactive again by clicking outside the Timeline or by
   * pressing the ESC key.
   *
   * @return true if enabled
   */
  public boolean isClickToUse();

  /**
   * When a Timeline is configured to be clickToUse, it will react to mouse and
   * touch events only when active.
   *
   * @param enabled true to enable, false to disable
   */
  public void setClickToUse(boolean enabled);

  public boolean isMoveable();

  public void setMoveable(boolean moveable);

  public boolean isZoomable();

  public void setZoomable(boolean zoomable);

  public boolean isSelectable();

  public void setSelectable(boolean selectable);

  public ItemAlignment getAlign();

  public void setAlign(ItemAlignment align);

  public boolean isAutoResize();

  public void setAutoResize(boolean autoResize);

// Path: timeline/src/main/java/org/mpilone/vaadin/timeline/shared/TimelineState.java
// public class TimelineState extends JavaScriptComponentState {
// 
//   public Options options;
// 
//   public static class TimeAxis {
// 
//     public String scale;
//     public int step;
//   }
// 
//   public static class Editable {
// 
//     public boolean add;
//     public boolean remove;
//     public boolean updateGroup;
//     public boolean updateTime;
//   }
// 
//   public static class Format {
// 
//     public FormatLabels majorLabels;
//     public FormatLabels minorLabels;
//   }
// 
//   public static class FormatLabels {
// 
//     public String millisecond;
//     public String second;
//     public String minute;
//     public String hour;
//     public String weekday;
//     public String day;
//     public String month;
//     public String year;
//   }
// 
//   public static class Margin {
// 
//     public int axis;
//     public MarginItem item;
//   }
// 
//   public static class MarginItem {
// 
//     public int vertical;
//     public int horizontal;
//   }
// 
//   public static class Orientation {
// 
//     public String axis;
//     public String item;
//   }
// 
//   public static class Options {
// 
//     public String align;
//     public boolean autoResize;
//     public boolean clickToUse;
//     public Editable editable;
//     public Long end;
//     public Format format;
//     public String groupOrder;
//     public Margin margin;
//     public Long max;
//     public Long min;
//     public String moment;
//     public boolean moveable;
//     public boolean multiselect;
//     public Orientation orientation;
//     public boolean selectable;
//     public boolean showCurrentTime;
//     public boolean showMajorLabels;
//     public boolean showMinorLabels;
//     public boolean stack;
//     public Long start;
//     public TimeAxis timeAxis;
//     public String type;
//     public boolean zoomable;
//     public int zoomMax;
//     public int zoomMin;
//   }
// 
// }


// Path: timeline/src/main/java/org/mpilone/vaadin/timeline/TimelineOptions.java
import java.util.Date;
import org.mpilone.vaadin.timeline.shared.TimelineState;

package org.mpilone.vaadin.timeline;



/**
 * The various options that can be configured on the timeline. Refer to
 * http://visjs.org/docs/timeline.html#Configuration_Options for detailed
 * documentation.
 *
 * @author mpilone
 */
public interface TimelineOptions {

  /**
   * When a Timeline is configured to be clickToUse, it will react to mouse and
   * touch events only when active. When active, a blue shadow border is
   * displayed around the Timeline. The Timeline is set active by clicking on
   * it, and is changed to inactive again by clicking outside the Timeline or by
   * pressing the ESC key.
   *
   * @return true if enabled
   */
  public boolean isClickToUse();

  /**
   * When a Timeline is configured to be clickToUse, it will react to mouse and
   * touch events only when active.
   *
   * @param enabled true to enable, false to disable
   */
  public void setClickToUse(boolean enabled);

  public boolean isMoveable();

  public void setMoveable(boolean moveable);

  public boolean isZoomable();

  public void setZoomable(boolean zoomable);

  public boolean isSelectable();

  public void setSelectable(boolean selectable);

  public ItemAlignment getAlign();

  public void setAlign(ItemAlignment align);

  public boolean isAutoResize();

  public void setAutoResize(boolean autoResize);

  public TimelineState.Editable getEditable();