Example usage for com.google.gwt.resources.ext ResourceGeneratorUtil baseName

List of usage examples for com.google.gwt.resources.ext ResourceGeneratorUtil baseName

Introduction

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

Prototype

public static String baseName(URL resource) 

Source Link

Document

Returns the base filename of a resource.

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();/*  ww w  . ja  v  a2s  .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();
}