List of usage examples for com.google.gwt.resources.ext ResourceContext deploy
@Deprecated String deploy(URL resource, boolean forceExternal) throws UnableToCompleteException;
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(); }