@@ -0,0 +1,2887 @@
+package com.sometrik.framework;%0A%0Aimport com.sometrik.framework.NativeCommand.Selector;%0A%0Aimport android.content.res.Resources;%0Aimport android.graphics.Color;%0Aimport android.graphics.Bitmap.Config;%0Aimport android.util.TypedValue;%0Aimport android.view.View;%0Aimport android.view.ViewGroup;%0Aimport android.view.animation.Animation;%0Aimport android.view.animation.TranslateAnimation;%0Aimport android.widget.LinearLayout;%0Aimport android.widget.ScrollView;%0A%0Apublic class FWScrollLayout extends ScrollView implements NativeCommandHandler %7B%0A  FrameWork frame;%0A  private ViewStyleManager normalStyle, activeStyle, currentStyle;%0A    %0A  public FWScrollLayout(FrameWork frameWork, int id) %7B%0A    super(frameWork);%0A    %0A    this.setId(id);%0A    this.frame = frameWork;%0A    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);%0A    this.setLayoutParams(params);%0A    // this.setFillViewport(true);%0A    %0A    final float scale = getContext().getResources().getDisplayMetrics().density;%0A    this.normalStyle = currentStyle = new ViewStyleManager(frame.bitmapCache, scale, true);%0A    this.activeStyle = new ViewStyleManager(frame.bitmapCache, scale, false);%0A  %7D%0A  %0A  @Override%0A  public void addChild(View view) %7B%0A    if (this.getChildCount() %3E 0) %7B%0A      System.out.println(%22FWScrollLayout already has a child%22);%0A    %7D else %7B%0A      addView(view);%0A    %7D%0A  %7D%0A  %0A  @Override%0A  public void addOption(int optionId, String text) %7B%0A  %7D%0A%0A  @Override%0A  public void setValue(String v) %7B%0A  %7D%0A%0A  @Override%0A  public void setValue(int v) %7B %7D%0A%0A  @Override%0A  public void setStyle(Selector selector, String key, String value) %7B%0A    if (selector == Selector.NORMAL) %7B%0A      normalStyle.setStyle(key, value);%0A      if (normalStyle == currentStyle) normalStyle.apply(this);%0A    %7D else if (selector == Selector.ACTIVE) %7B%0A      activeStyle.setStyle(key, value);      %0A      if (activeStyle == currentStyle) activeStyle.apply(this);%0A    %7D%0A  %7D%0A%0A  @Override%0A  public void setError(boolean hasError, String errorText) %7B %7D%0A%0A  @Override%0A  public int getElementId() %7B%0A    return getId();%0A  %7D%0A%0A  @Override%0A  public void onScreenOrientationChange(boolean isLandscape) %7B%0A    invalidate();%0A  %7D%0A%0A  @Override%0A  public void addData(String text, int row, int column, int sheet) %7B %7D%0A%0A  @Override%0A  public void setViewVisibility(boolean visibility) %7B%0A    if (visibility)%7B%0A      this.setVisibility(VISIBLE);%0A    %7D else %7B%0A      this.setVisibility(INVISIBLE);%0A    %7D%0A  %7D%0A%0A  @Override%0A  public void clear() %7B %7D%0A%0A  @Override%0A  public void flush() %7B %7D%0A%0A  @Override%0A  public void addColumn(String text, int columnType) %7B %7D%0A  %0A  @Override%0A  public void reshape(int value, int size) %7B %7D%0A%0A  @Override%0A  public void setImage(byte%5B%5D bytes, int width, int height, Config config) %7B %7D%0A%0A  @Override%0A  public void reshape(int size) %7B %7D%0A%0A  @Override%0A  public void deinitialize() %7B %7D%0A%7D%0A

add FWScrollLayout.java