Example usage for com.google.gwt.user.rebind StringSourceWriter StringSourceWriter

List of usage examples for com.google.gwt.user.rebind StringSourceWriter StringSourceWriter

Introduction

In this page you can find the example usage for com.google.gwt.user.rebind StringSourceWriter StringSourceWriter.

Prototype

StringSourceWriter

Source Link

Usage

From source file:cc.alcina.framework.entity.gen.SimpleCssResourceGenerator.java

License:Apache License

@Override
public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method)
        throws UnableToCompleteException {
    try {//www. ja  v  a  2  s  . co m
        ConfigurationProperty cp = context.getGeneratorContext().getPropertyOracle()
                .getConfigurationProperty(IGNORE_DATA_URLS);
        logMissingUrlResources = !Boolean.valueOf(cp.getValues().get(0));
    } catch (BadPropertyValueException e1) {
        e1.printStackTrace();
    }
    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();
    }
    URL resource = resources[0];
    SourceWriter sw = new StringSourceWriter();
    // Write the expression to create the subtype.
    sw.println("new " + SimpleCssResource.class.getName() + "() {");
    sw.indent();
    if (!AbstractResourceGenerator.STRIP_COMMENTS) {
        // Convenience when examining the generated code.
        sw.println("// " + resource.toExternalForm());
    }
    sw.println("public String getText() {");
    sw.indent();
    String toWrite = Util.readURLAsString(resource);
    if (context.supportsDataUrls()) {
        try {
            toWrite = replaceWithDataUrls(context, toWrite);
        } catch (Exception e) {
            logger.log(Type.ERROR, "css data url gen", e);
            throw new UnableToCompleteException();
        }
    }
    if (toWrite.length() > MAX_STRING_CHUNK) {
        writeLongString(sw, toWrite);
    } else {
        sw.println("return \"" + Generator.escape(toWrite) + "\";");
    }
    sw.outdent();
    sw.println("}");
    sw.println("public String getName() {");
    sw.indent();
    sw.println("return \"" + method.getName() + "\";");
    sw.outdent();
    sw.println("}");
    sw.outdent();
    sw.println("}");
    return sw.toString();
}

From source file:com.bramosystems.oss.player.core.rebind.PlatformPropertyGenerator.java

License:Apache License

@Override
public String generate(TreeLogger logger, SortedSet<String> possibleValues, String fallback,
        SortedSet<ConfigurationProperty> configProperties) throws UnableToCompleteException {
    StringSourceWriter sw = new StringSourceWriter();
    sw.println("{");
    sw.indent();//  w  w w.  j  a  va  2  s.co  m
    sw.println("var pltf = navigator.platform.toLowerCase();");
    Iterator<String> it = possibleValues.iterator();
    if (it.hasNext()) {
        fillCode(sw, it.next());
        sw.print("else ");
        while (it.hasNext()) {
            fillCode(sw, it.next());
            sw.print("else ");
        }
        sw.println("{");
        sw.indent();
        sw.print("return 'other';");
        sw.outdent();
        sw.print("}");
    }
    sw.outdent();
    sw.println("}");
    return sw.toString();
}

From source file:com.googlecode.mgwt.useragent.rebind.UserAgentPropertyGenerator.java

License:Apache License

@Override
public String generate(TreeLogger logger, SortedSet<String> possibleValues, String fallback,
        SortedSet<ConfigurationProperty> configProperties) {
    assertUserAgents(logger, possibleValues);

    StringSourceWriter body = new StringSourceWriter();
    body.println("{");
    body.indent();//from w  ww .  j a  v a 2 s .c  o  m
    writeUserAgentPropertyJavaScript(body, possibleValues, fallback);
    body.outdent();
    body.println("}");

    return body.toString();
}

From source file:com.guit.rebind.binder.BinderContextImpl.java

License:Apache License

@Override
public String build(StringSourceWriter writer) {
    StringSourceWriter build = new StringSourceWriter();

    build.print(beforeWrappers.toString());
    for (SourceWriter w : wrappersBefore) {
        build.print(w.toString());/* ww  w.  j a  v a2s .  co  m*/
    }
    build.print(beforeHandler.toString());
    build.print(writer.toString());
    build.print(afterHandler.toString());
    for (SourceWriter w : wrappersAfter) {
        build.print(w.toString());
    }
    build.print(afterWrappers.toString());

    return build.toString();
}

From source file:com.guit.rebind.binder.contributor.HasAttributeContributor.java

License:Apache License

@Override
public void contribute(BinderContext binderContext, TreeLogger logger, GeneratorContext context)
        throws UnableToCompleteException {
    JMethod m = binderContext.getMethod();
    JClassType eventType = binderContext.getEventType();
    JClassType presenterType = binderContext.getPresenterType();
    if (!eventType.getPackage().getName().equals(domEventsPackage)) {
        logger.log(Type.ERROR,/*from   w  w  w  .j  a v  a2s . co m*/
                String.format("@HasAttribute annotation is only valid for dom events. Found: %s.%s",
                        presenterType.getQualifiedSourceName(), m.getName()));
        throw new UnableToCompleteException();
    }

    String[] attributes = binderContext.getMethod().getAnnotation(HasAttribute.class).value();

    StringSourceWriter writer = new StringSourceWriter();
    writer.println(elementName + " _has_attribute_element = (" + elementName
            + ")event.getNativeEvent().getEventTarget().cast();");
    writer.print("if (");
    for (int n = 0; n < attributes.length; n++) {
        if (n > 0) {
            writer.print(" || ");
        }
        writer.print("!_has_attribute_element.hasAttribute(\"" + attributes[n] + "\")");
    }
    writer.print(") {return;}");
    binderContext.addBeforeWrappers(writer);
}

From source file:com.guit.rebind.binder.contributor.HasClassContributor.java

License:Apache License

@Override
public void contribute(BinderContext binderContext, TreeLogger logger, GeneratorContext context)
        throws UnableToCompleteException {
    JMethod m = binderContext.getMethod();
    JClassType eventType = binderContext.getEventType();
    JClassType presenterType = binderContext.getPresenterType();
    if (!eventType.getPackage().getName().equals(domEventsPackage)) {
        logger.log(Type.ERROR, String.format("@HasClass annotation is only valid for dom events. Found: %s.%s",
                presenterType.getQualifiedSourceName(), m.getName()));
        throw new UnableToCompleteException();
    }//from ww  w.j  a v  a2s. c  o  m

    String[] attributes = binderContext.getMethod().getAnnotation(HasClass.class).value();

    StringSourceWriter writer = new StringSourceWriter();
    writer.println(elementName + " _has_class_element = (" + elementName
            + ")event.getNativeEvent().getEventTarget().cast();");
    writer.print("if (");
    for (int n = 0; n < attributes.length; n++) {
        if (n > 0) {
            writer.print(" || ");
        }
        writer.print("!_has_class_element.getClassName().contains(\"" + attributes[n] + "\")");
    }
    writer.print(") {return;}");
    binderContext.addBeforeWrappers(writer);
}

From source file:com.guit.rebind.binder.contributor.KeyCodeContributor.java

License:Apache License

@Override
public void contribute(BinderContext binderContext, TreeLogger logger, GeneratorContext context)
        throws UnableToCompleteException {
    JClassType eventType = binderContext.getEventType();
    String eventName = eventType.getQualifiedSourceName();
    if (!eventName.equals(KeyPressEvent.class.getCanonicalName())
            && !eventName.equals(KeyDownEvent.class.getCanonicalName())
            && !eventName.equals(KeyUpEvent.class.getCanonicalName())) {
        logger.log(Type.ERROR,//from   www.  j a v  a  2s.  co m
                String.format("The binder annotation %s is only valid in %s, %s or %s events. Found: %s.%s",
                        KeyCode.class.getCanonicalName(), KeyPressEvent.class.getCanonicalName(),
                        KeyDownEvent.class.getCanonicalName(), KeyUpEvent.class.getCanonicalName(),
                        binderContext.getPresenterType().getQualifiedSourceName(),
                        binderContext.getMethod().getName()));
        throw new UnableToCompleteException();
    }

    int[] keycodes = binderContext.getMethod().getAnnotation(KeyCode.class).value();
    StringBuilder condition = new StringBuilder();
    for (int keyCode : keycodes) {
        if (condition.length() > 0) {
            condition.append(" && ");
        }
        condition.append("_____keyCode != " + keyCode);
    }

    StringSourceWriter writer = new StringSourceWriter();
    writer.println("int _____keyCode = event.getNativeEvent().getKeyCode();");
    writer.println("if (" + condition.toString() + ") {");
    writer.indent();
    writer.println("return;");
    writer.outdent();
    writer.println("}");
    binderContext.addBeforeWrappers(writer);
}

From source file:com.guit.rebind.binder.contributor.MouseButtonContributor.java

License:Apache License

@Override
public void contribute(BinderContext binderContext, TreeLogger logger, GeneratorContext context)
        throws UnableToCompleteException {
    JClassType eventType = binderContext.getEventType();
    String eventName = eventType.getQualifiedSourceName();
    if (!eventName.equals(MouseDownEvent.class.getCanonicalName())
            && !eventName.equals(MouseUpEvent.class.getCanonicalName())) {
        logger.log(Type.ERROR,//from   www. java2  s.  com
                String.format("The binder annotation %s is only valid in %s or %s events. Found: %s.%s",
                        MouseButton.class.getCanonicalName(), MouseDownEvent.class.getCanonicalName(),
                        MouseUpEvent.class.getCanonicalName(),
                        binderContext.getPresenterType().getQualifiedSourceName(),
                        binderContext.getMethod().getName()));
        throw new UnableToCompleteException();
    }

    MouseButtons[] keycodes = binderContext.getMethod().getAnnotation(MouseButton.class).value();
    StringBuilder condition = new StringBuilder();
    for (MouseButtons button : keycodes) {
        if (condition.length() > 0) {
            condition.append(" && ");
        }

        // LEFT by default
        int buttonNumber = 1;
        switch (button) {
        case MIDDLE:
            buttonNumber = 4;
            break;
        case RIGHT:
            buttonNumber = 2;
            break;
        default:
            break;
        }
        condition.append("_____mouseButton != " + buttonNumber);
    }

    StringSourceWriter writer = new StringSourceWriter();
    writer.println("int _____mouseButton = event.getNativeEvent().getButton();");
    writer.println("if (" + condition.toString() + ") {");
    writer.indent();
    writer.println("return;");
    writer.outdent();
    writer.println("}");
    binderContext.addBeforeWrappers(writer);
}

From source file:com.guit.rebind.binder.contributor.PreventDefaultContributor.java

License:Apache License

@Override
public void contribute(BinderContext binderContext, TreeLogger logger, GeneratorContext context)
        throws UnableToCompleteException {
    JMethod m = binderContext.getMethod();
    JClassType eventType = binderContext.getEventType();
    JClassType presenterType = binderContext.getPresenterType();
    if (!eventType.getPackage().getName().equals(domEventsPackage)) {
        logger.log(Type.ERROR,/* ww w. j  a v  a 2  s  .  c  o m*/
                String.format("@PreventDefault annotation is only valid for dom events. Found: %s.%s",
                        presenterType.getQualifiedSourceName(), m.getName()));
        throw new UnableToCompleteException();
    }

    StringSourceWriter writer = new StringSourceWriter();
    writer.print("event.preventDefault();");
    binderContext.addBeforeHandler(writer);
}

From source file:com.guit.rebind.binder.contributor.RunAsyncContributor.java

License:Apache License

@Override
public void contribute(BinderContext binderContext, TreeLogger logger, GeneratorContext context)
        throws UnableToCompleteException {

    StringSourceWriter before = new StringSourceWriter();
    before.println("GWT.runAsync(new " + AbstractRunAsyncCallback.class.getCanonicalName() + "() {");
    before.indent();/*from  ww  w.  j  a v a  2s .com*/
    before.println("@Override");
    before.println("public void success() {");
    before.indent();

    StringSourceWriter after = new StringSourceWriter();
    after.outdent();
    after.println("}");
    after.outdent();
    after.println("});");

    binderContext.addWrapper(before, after);
}