Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.googlecode.mgwt.ui.client.util.impl;

import com.google.gwt.core.client.JsArrayInteger;
import com.google.gwt.user.client.Element;

import com.googlecode.mgwt.ui.client.MGWT;

public class WebkitCssUtilImpl implements CssUtilImpl {

  private boolean has3d;

  public WebkitCssUtilImpl() {
    has3d = _has3d();
  }

  @Override
  public void translate(Element el, int x, int y) {
    String cssText = null;
    if (has3d() && !MGWT.getOsDetection().isDesktop()) {
      cssText = "translate3d(" + x + "px, " + y + "px, 0px)";
    } else {
      cssText = "translate( " + x + "px, " + y + "px )";
    }

    _translate(el, cssText);

  }

  @Override
  public native void setDelay(Element el, int milliseconds) /*-{
		el.style.webkitTransitionDelay = milliseconds + "ms";
  }-*/;

  @Override
  public native void setOpacity(Element el, double opacity) /*-{
		el.style.opacity = opacity;

  }-*/;

  @Override
  public native void setDuration(Element el, int time) /*-{
		el.style.webkitTransitionDuration = time + "ms";

  }-*/;

  private native void _translate(Element el, String css)/*-{
		el.style.webkitTransform = css;
  }-*/;

  @Override
  public void rotate(Element el, int degree) {
    if (MGWT.getOsDetection().isAndroid()) {
      el.getStyle().setProperty("WebkitTransform", "rotate(" + degree + "deg)");
      // _translate(el, );
    } else {
      el.getStyle().setProperty("WebkitTransform", "rotate(" + degree + "deg) translateZ(0)");
      // _translate(el,"rotate(" + degree + "deg) translateZ(0)");

    }

  }

  @Override
  public boolean hasTransform() {
    // TODO maybe we need runtime checks for older devices, but for now this
    // is okay!
    return true;
  }

  @Override
  public boolean hasTransistionEndEvent() {
    // TODO this is okay for android from 2.1
    // so we should be okay without a runtime check
    return true;
  }

  @Override
  public boolean has3d() {
    return has3d;
  }

  private static native boolean _has3d()/*-{
		return ('WebKitCSSMatrix' in $wnd && 'm11' in new WebKitCSSMatrix())
  }-*/;

  @Override
  public String getTransformProperty() {
    return "-webkit-transform";
  }

  @Override
  public int[] getPositionFromTransForm(Element element) {
    JsArrayInteger array = getPositionFromTransform(element);
    return new int[] {array.get(0), array.get(1)};
  }

  private native JsArrayInteger getPositionFromTransform(Element el)/*-{
		var matrix = getComputedStyle(el, null)['webkitTransform'].replace(
				/[^0-9-.,]/g, '').split(',');
		var x = matrix[4] * 1;
		var y = matrix[5] * 1;
		return [ x, y ];
  }-*/;

  @Override
  public native int getTopPositionFromCssPosition(Element element) /*-{
		return getComputedStyle(element, null).top.replace(/[^0-9-]/g, '') * 1;
  }-*/;

  @Override
  public native int getLeftPositionFromCssPosition(Element element)/*-{
		return getComputedStyle(element, null).left.replace(/[^0-9-]/g, '') * 1;
  }-*/;

  @Override
  public native void resetTransform(Element el) /*-{
		el.style.webkitTransform = "";
  }-*/;

  @Override
  public native void setTransistionProperty(Element element, String string) /*-{
		element.webkitTransitionProperty = string;
  }-*/;

  @Override
  public native void setTransFormOrigin(Element el, int x, int y) /*-{
		el.webkitTransformOrigin = x + " " + y;
  }-*/;

  @Override
  public native void setTransistionTimingFunction(Element element, String string) /*-{
		el.webkitTransitionTimingFunction = string;
  }-*/;

  @Override
  public void setTranslateAndZoom(Element el, int x, int y, double scale) {
    String cssText = null;
    if (MGWT.getOsDetection().isAndroid() || MGWT.getOsDetection().isDesktop()) {
      cssText = "translate( " + x + "px, " + y + "px ) scale(" + scale + ")";
    } else {
      cssText = "translate3d(" + x + "px, " + y + "px, 0px) scale(" + scale + ")";
    }
    el.getStyle().setProperty("WebkitTransform", cssText);

  }

}

Commits for litesoft/trunk/mobileGWT/mgwt.changetracking/mgwt/src/main/java/com/googlecode/mgwt/ui/client/util/impl/WebkitCssUtilImpl.java

Diff revisions: vs.
Revision Author Commited Message
906 Diff Diff GeorgeS picture GeorgeS Fri 07 Jun, 2013 22:50:38 +0000

Update to latest gwt-phonegap & MGWT.

881 GeorgeS picture GeorgeS Mon 10 Dec, 2012 03:55:49 +0000

Updated to current Version