package ilarkesto.mda.legacy.generator;
import ilarkesto.io.FilenameComparator;
import java.io.File;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.ImageBundle;
public class GwtImageBundleGenerator extends AClassGenerator {
private String packageName;
public GwtImageBundleGenerator(String packageName) {
super();
this.packageName = packageName;
}
@Override
protected void writeContent() {
File folder = new File("src/main/java/" + packageName.replace('.', '/'));
File[] files = folder.listFiles();
if (files == null) throw new RuntimeException("Can not read folder contents: " + folder.getAbsolutePath());
Arrays.sort(files, new FilenameComparator());
for (File file : files) {
String name = file.getName();
String nameLower = name.toLowerCase();
if (nameLower.endsWith(".png") || nameLower.endsWith(".gif") || nameLower.endsWith(".jpg")) {
writeImage(name);
}
}
}
private void writeImage(String fileName) {
String name = fileName;
int idx = name.lastIndexOf('.');
if (idx > 0) {
name = name.substring(0, idx);
}
ln();
ln(" @Resource(value=\"" + fileName + "\")");
ln(" " + AbstractImagePrototype.class.getName(), name + "();");
}
@Override
protected String getSuperclass() {
return ImageBundle.class.getName();
}
@Override
protected Set<String> getImports() {
Set<String> ret = new LinkedHashSet<String>(super.getImports());
ret.add(com.google.gwt.user.client.ui.ImageBundle.class.getName());
return ret;
}
@Override
protected String getName() {
return "GImageBundle";
}
@Override
protected String getPackage() {
return packageName;
}
@Override
protected boolean isInterface() {
return true;
}
@Override
protected boolean isOverwrite() {
return true;
}
}