Example usage for com.google.gwt.resources.ext ResourceContext deploy

List of usage examples for com.google.gwt.resources.ext ResourceContext deploy

Introduction

In this page you can find the example usage for com.google.gwt.resources.ext ResourceContext deploy.

Prototype

@Deprecated
String deploy(URL resource, boolean forceExternal) throws UnableToCompleteException;

Source Link

Document

Cause a specific collection of bytes to be available in the program's compiled output.

Usage

From source file:gwt.g2d.resources.ExternalImageResourceGenerator.java

License:Apache License

@Override
public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method)
        throws UnableToCompleteException {
    String name = "ExternalImageResourceGenerator.createAssignment";
    URL[] resources = ResourceGeneratorUtil.findResources(logger, context, method);

    SourceWriter sw = new StringSourceWriter();
    // Write the expression to create the subtype.
    sw.println("new " + ExternalImageResource.class.getName() + "() {");
    sw.indent();/*from   w ww .java  2s. c  o  m*/

    sw.println(String.format("public void getImage(%s<%s> callback) {", ResourceCallback.class.getName(),
            ImageElementResource.class.getName()));
    sw.indent();

    int index = 0;
    String abstractImageElementResourceClassName = AbstractImageElementResource.class.getName();
    for (URL resource : resources) {
        String outputUrlExpression = context.deploy(resource, false);
        sw.println("{");
        sw.println(abstractImageElementResourceClassName + " imgResource = new "
                + abstractImageElementResourceClassName + "() {");

        sw.indent();

        sw.println("public String getName() {");
        sw.indent();
        sw.println("return \"" + name + "\";");
        sw.outdent();
        sw.println("}");

        sw.println("public String getBaseUrl() {");
        sw.indent();
        sw.println("return \"" + ResourceGeneratorUtil.baseName(resource) + "\";");
        sw.outdent();
        sw.println("}");

        sw.println("public int getIndex() {");
        sw.indent();
        sw.println("return " + index + ";");
        sw.outdent();
        sw.println("}");

        sw.outdent();
        sw.println("};");

        sw.println(ImageLoader.class.getName() + ".loadImageAsync(" + outputUrlExpression
                + ", imgResource, callback);");
        sw.println("}");
        index++;
    }
    sw.outdent();
    sw.println("}");

    sw.println("public String getName() {");
    sw.indent();
    sw.println("return \"" + name + "\";");
    sw.outdent();
    sw.println("}");

    sw.outdent();
    sw.println("}");

    return sw.toString();
}

From source file:gwt.g3d.resources.ExternalMeshResourceGenerator.java

License:Apache License

@Override
public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method)
        throws UnableToCompleteException {
    URL[] resources = ResourceGeneratorUtil.findResources(logger, context, method);

    if (resources.length != 1) {
        logger.log(TreeLogger.ERROR, "Exactly one resource must be specified", null);
        throw new UnableToCompleteException();
    }/*w  w  w  .jav  a2s  .c o  m*/

    MeshDataInfo meshDataInfo = getMeshDataInfo(method);

    String url = null;
    URL modelUrl = resources[0];
    if (modelUrl.getFile().endsWith(".obj")) {
        try {
            String content = Util.readURLAsString(modelUrl);
            File outFile = File.createTempFile("temp", ".json");
            BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));
            new ObjParser().parse(content).export(meshDataInfo, writer);
            writer.close();
            url = context.deploy(outFile.toURI().toURL(), true);
        } catch (ParserException e) {
            e.printStackTrace();
            throw new UnableToCompleteException();
        } catch (IOException e) {
            e.printStackTrace();
            throw new UnableToCompleteException();
        }
    } else if (modelUrl.getFile().endsWith(".json")) {
        url = context.deploy(modelUrl, true);
    } else {
        // Unsupported format.
        throw new UnableToCompleteException();
    }

    SourceWriter sw = new StringSourceWriter();
    sw.println(String.format("new %s() {", AbstractExternalMeshResource.class.getName()));
    sw.indent();

    // Creates method: void getMesh(ResourceCallback<MeshResource>);
    sw.println(String.format("public void getMesh(%s<%s> callback) {", ResourceCallback.class.getName(),
            MeshResource.class.getName()));
    sw.indent();

    // Creates the MeshDataInfo.
    sw.println(String.format("%s meshDataInfo = new %s();", MeshDataInfo.class.getName(),
            MeshDataInfo.class.getName()));

    sw.println(String.format("meshDataInfo.setPositionDataType(%s.%s);", DataType.class.getName(),
            meshDataInfo.getPositionDataType()));
    sw.println(String.format("meshDataInfo.setPositionDataSize(%s);", meshDataInfo.getPositionDataSize()));

    sw.println(String.format("meshDataInfo.setNormalDataType(%s.%s);", DataType.class.getName(),
            meshDataInfo.getNormalDataType()));
    sw.println(String.format("meshDataInfo.setNormalDataSize(%s);", meshDataInfo.getNormalDataSize()));
    sw.println(String.format("meshDataInfo.setNormalized(%s);", meshDataInfo.isNormalized()));

    sw.println(String.format("meshDataInfo.setTexCoordDataType(%s.%s);", DataType.class.getName(),
            meshDataInfo.getTexCoordDataType()));
    sw.println(String.format("meshDataInfo.setTexCoordDataSize(%s);", meshDataInfo.getTexCoordDataSize()));

    sw.println(String.format("getMesh(%s, meshDataInfo, callback);", url));
    sw.outdent();
    sw.println("}");

    // Creates method: String getName();
    sw.println("public String getName() {");
    sw.indent();
    sw.println("return \"" + method.getName() + "\";");
    sw.outdent();
    sw.println("}");

    sw.outdent();
    sw.println("}");

    return sw.toString();
}