javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Canvas.java
author toni.epple@eppleton.de
Tue, 21 May 2013 16:10:52 +0200
branchcanvas
changeset 1125 a3d504d7e588
parent 1114 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/HTML5Canvas.java@03fc8090dfcc
child 1134 0a2190f2a210
permissions -rw-r--r--
Refactored names to unpopular naming scheme, because (a) bck2brwsr Canvas implementation must be named Canvas due to mapping in bck2brwsr and I don't want interface and impl to have the same name. (b) with the "I" prefix at least it's consistent, even if nobody uses that anymore. (c) names are the same as in HTML5 Canvas Javascript API, so it's more familiar...
toni@521
     1
/**
toni@521
     2
 * Back 2 Browser Bytecode Translator
toni@521
     3
 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
toni@521
     4
 *
toni@521
     5
 * This program is free software: you can redistribute it and/or modify
toni@521
     6
 * it under the terms of the GNU General Public License as published by
toni@521
     7
 * the Free Software Foundation, version 2 of the License.
toni@521
     8
 *
toni@521
     9
 * This program is distributed in the hope that it will be useful,
toni@521
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
toni@521
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
toni@521
    12
 * GNU General Public License for more details.
toni@521
    13
 *
toni@521
    14
 * You should have received a copy of the GNU General Public License
toni@521
    15
 * along with this program. Look for COPYING file in the top folder.
toni@521
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
toni@521
    17
 */
toni@521
    18
package org.apidesign.bck2brwsr.htmlpage.api;
toni@521
    19
toni@1125
    20
import net.java.html.canvas.ICanvas;
toni@1125
    21
import net.java.html.canvas.IGraphicsContext;
toni@521
    22
import org.apidesign.bck2brwsr.core.JavaScriptBody;
toni@809
    23
import static org.apidesign.bck2brwsr.htmlpage.api.Element.getAttribute;
toni@521
    24
toni@521
    25
/**
toni@521
    26
 *
toni@521
    27
 * @author Anton Epple <toni.epple@eppleton.de>
toni@521
    28
 */
toni@1125
    29
public class Canvas extends Element implements ICanvas{
toni@521
    30
toni@1125
    31
    public Canvas(String id) {
toni@521
    32
        super(id);
toni@521
    33
    }
toni@521
    34
toni@1114
    35
    @Override
toni@521
    36
    public void setHeight(int height) {
toni@521
    37
        setAttribute(this, "height", height);
toni@521
    38
    }
toni@521
    39
toni@1114
    40
    @Override
toni@521
    41
    public int getHeight() {
toni@809
    42
       Object ret =  getAttribute(this, "height");
toni@809
    43
       return (ret instanceof Number) ? ((Number)ret).intValue(): Integer.MIN_VALUE;
toni@521
    44
    }
toni@521
    45
    
toni@1114
    46
    @Override
toni@521
    47
    public void setWidth(int width) {
toni@521
    48
        setAttribute(this, "width", width);
toni@521
    49
    }
toni@521
    50
toni@1114
    51
    @Override
toni@811
    52
    public int getWidth() {
toni@809
    53
       Object ret =  getAttribute(this, "width");
toni@809
    54
       return (ret instanceof Number) ? ((Number)ret).intValue(): Integer.MIN_VALUE;
toni@521
    55
    }
toni@521
    56
toni@521
    57
    @JavaScriptBody(
toni@521
    58
            args = {"el"},
jaroslav@592
    59
            body = "var e = window.document.getElementById(el._id());\n"
toni@521
    60
            + "return e.getContext('2d');\n")
toni@1125
    61
    private native static Object getContextImpl(Canvas el);
toni@521
    62
toni@1125
    63
    public IGraphicsContext getContext() {
toni@1125
    64
        return new GraphicsContext(getContextImpl(this));
toni@521
    65
    }
toni@521
    66
toni@521
    67
    @Override
toni@521
    68
    void dontSubclass() {
toni@521
    69
    }
toni@521
    70
}