javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PredefinedFields.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 02 May 2013 10:19:07 +0200
branchelements
changeset 1074 3ab2f70b300d
parent 866 9b4751828ceb
permissions -rw-r--r--
Hide what can be hidden
jan@866
     1
/**
jan@866
     2
 * Back 2 Browser Bytecode Translator
jan@866
     3
 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jan@866
     4
 *
jan@866
     5
 * This program is free software: you can redistribute it and/or modify
jan@866
     6
 * it under the terms of the GNU General Public License as published by
jan@866
     7
 * the Free Software Foundation, version 2 of the License.
jan@866
     8
 *
jan@866
     9
 * This program is distributed in the hope that it will be useful,
jan@866
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
jan@866
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
jan@866
    12
 * GNU General Public License for more details.
jan@866
    13
 *
jan@866
    14
 * You should have received a copy of the GNU General Public License
jan@866
    15
 * along with this program. Look for COPYING file in the top folder.
jan@866
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
jan@866
    17
 */
jan@866
    18
package org.apidesign.bck2brwsr.htmlpage;
jan@866
    19
jan@866
    20
import java.io.IOException;
jan@866
    21
import java.io.Writer;
jan@866
    22
import java.util.HashMap;
jan@866
    23
import java.util.Map;
jan@866
    24
jan@866
    25
/**
jan@866
    26
 *
jan@866
    27
 * @author Jan Horvath <jhorvath@netbeans.org>
jan@866
    28
 */
jaroslav@1074
    29
final class PredefinedFields {
jan@866
    30
    
jan@866
    31
    private static final Map<String, String> IMPORTS = new HashMap<String, String>() {
jan@866
    32
        {
jan@866
    33
            put("canvas", "import org.apidesign.bck2brwsr.core.JavaScriptBody;");
jan@866
    34
        }
jan@866
    35
    };
jan@866
    36
    
jan@866
    37
    private static final Map<String, String> FIELDS = new HashMap<String, String>() {
jan@866
    38
        {
jan@866
    39
            put("canvas", 
jan@866
    40
                    "    @JavaScriptBody(\n" +
jan@866
    41
                    "            args = {\"el\"},\n" +
jan@866
    42
                    "            body = \"var e = window.document.getElementById(el._id());\\n\"\n" +
jan@866
    43
                    "            + \"return e.getContext('2d');\\n\")\n" +
jan@866
    44
                    "    private native static Object getContextImpl(Canvas el);\n" +
jan@866
    45
                    "    \n" +
jan@866
    46
                    "    public GraphicsContext getContext() {\n" +
jan@866
    47
                    "        return new GraphicsContext(getContextImpl(this));\n" +
jan@866
    48
                    "    }");
jan@866
    49
        }
jan@866
    50
    };
jan@866
    51
    
jan@866
    52
    static void appendImports(Writer w, String tag) throws IOException {
jan@866
    53
        String text = IMPORTS.get(tag.toLowerCase());
jan@866
    54
        if (text != null) {
jan@866
    55
            w.append(text).append("\n");
jan@866
    56
        }
jan@866
    57
    }
jan@866
    58
    
jan@866
    59
    static void appendFields(Writer w, String tag) throws IOException {
jan@866
    60
        String text = FIELDS.get(tag.toLowerCase());
jan@866
    61
        if (text != null) {
jan@866
    62
            w.append(text).append("\n");
jan@866
    63
        }
jan@866
    64
    }
jan@866
    65
}