List of usage examples for com.google.gwt.user.rebind StringSourceWriter StringSourceWriter
StringSourceWriter
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); }