Render compare gallery for wizard banner icons
Wizard banner icons are bigger than the "normal" 16x16 icons. So let's
create them in separate compare galleries
Change-Id: I0889db532483522938eb6b605d773285e3ad6dad
Signed-off-by: Matthias Becker <ma.becker@sap.com>
diff --git a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/ExtractCSSMojo.java b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/ExtractCSSMojo.java
index ab5acfe..c6360fc 100644
--- a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/ExtractCSSMojo.java
+++ b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/ExtractCSSMojo.java
@@ -87,7 +87,7 @@
String child = dirName;
File outputBase = new File(outputDir, child);
- IconGatherer.gatherIcons(icons, "svg", file, file, outputBase, true);
+ IconGatherer.gatherIcons(icons, "svg", file, file, outputBase, true, FolderState.include);
}
ForkJoinPool forkJoinPool = new ForkJoinPool(4);
diff --git a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/FolderState.java b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/FolderState.java
new file mode 100644
index 0000000..195a609
--- /dev/null
+++ b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/FolderState.java
@@ -0,0 +1,7 @@
+package org.eclipse.images.renderer;
+
+public enum FolderState {
+ exclude,
+ include,
+ only,
+}
\ No newline at end of file
diff --git a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/GalleryMojo.java b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/GalleryMojo.java
index 3f661c2..c1cea52 100644
--- a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/GalleryMojo.java
+++ b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/GalleryMojo.java
@@ -96,7 +96,7 @@
}
List<IconEntry> icons = new ArrayList<>();
- IconGatherer.gatherIcons(icons, "png", file, file, iconDirectoryRoot, false);
+ IconGatherer.gatherIcons(icons, "png", file, file, iconDirectoryRoot, false, FolderState.exclude);
galleryIconSets.put(file.getName(), icons);
}
@@ -115,6 +115,19 @@
master.mkdirs();
renderGalleries(galleryDir, gifCompare, master, galleryIconSets, 16, 800, pngDir, gifDir);
+
+ galleryIconSets.clear();
+ // Search each subdir in the root dir for svg icons
+ for (File file : iconDirectoryRoot.listFiles()) {
+ if(!file.isDirectory()) {
+ continue;
+ }
+ List<IconEntry> icons = new ArrayList<>();
+ IconGatherer.gatherIcons(icons, "png", file, file, iconDirectoryRoot, false, FolderState.only);
+
+ galleryIconSets.put(file.getName(), icons);
+ }
+ renderWizardBannerCompareGalleries(gifCompare, galleryIconSets, 75, 800, pngDir, gifDir);
}
/**
@@ -145,7 +158,7 @@
log.info("Creating gallery for: " + key);
renderGallery(galleryDir, key, value, iconSize, width, 3);
- renderGifCompareGallery(gifCompare, key, value, iconSize, width, 6, pngDir, gifDir);
+ renderGifCompareGallery(gifCompare, key, value, iconSize, width, 6, pngDir, gifDir, GIF_EXT);
}
// Render the master image
@@ -159,6 +172,28 @@
}
/**
+ * <p>Renders each icon set into a gallery image for reviewing and showing off
+ * icons, and then composes them into a master gallery image.</p>
+ *
+ * @param gifCompare
+ * @param iconSets
+ * @param iconSize
+ * @param width
+ * @param pngDir
+ * @param gifDir
+ */
+ public void renderWizardBannerCompareGalleries(File gifCompare, Map<String, List<IconEntry>> iconSets, int iconSize, int width, String pngDir, String gifDir) {
+ // Render each icon set
+ for (Entry<String, List<IconEntry>> entry : iconSets.entrySet()) {
+ String key = entry.getKey();
+ List<IconEntry> value = entry.getValue();
+
+ log.info("Creating wizard banner compare gallery for: " + key);
+ renderGifCompareGallery(gifCompare, key, value, iconSize, width, 6, pngDir, gifDir, ".png");
+ }
+ }
+
+ /**
* <p>
* Renders comparison images, the new png/svg icons vs old gifs.
* </p>
@@ -173,7 +208,7 @@
* @param gifDir
*/
private void renderGifCompareGallery(File outputDir, String key, List<IconEntry> icons, int iconSize, int width,
- int margin, String pngDir, String gifDir) {
+ int margin, String pngDir, String gifDir, String fileExt) {
int leftColumnWidth = 300;
int textHeaderHeight = 31;
int outputSize = iconSize;
@@ -207,7 +242,7 @@
g.setColor(Color.DARK_GRAY);
g.fillRect(second + (margin / 2) + iconSize + 20, 0, (margin * 2) + (iconSize * 2) + 10, height);
- g.drawString(key + " (GIF / PNG)", 15, 20);
+ g.drawString(key + " (Old / New)", 15, 20);
Collections.sort(icons);
@@ -222,14 +257,14 @@
BufferedImage pngImage = ImageIO.read(entry.inputPath);
// Munge the gif path
- File gifLocalPath = new File(entry.inputPath.getParentFile(), entry.nameBase + GIF_EXT);
+ File gifLocalPath = new File(entry.inputPath.getParentFile(), entry.nameBase + fileExt);
String absoluteLocalPath = gifLocalPath.getAbsolutePath();
String gifAbsPath = absoluteLocalPath.replaceFirst(pngDir, gifDir);
File gifPath = new File(gifAbsPath);
- log.debug("Search for GIF...");
+ log.debug("Search for old images...");
log.debug("Entry path: " + entry.inputPath.getAbsolutePath());
- log.debug("GIF path: " + gifPath.getAbsolutePath());
+ log.debug("Old image path: " + gifPath.getAbsolutePath());
BufferedImage gifImage = null;
BufferedImage sizedGifImage = null;
@@ -238,7 +273,7 @@
if (gifPath.exists()) {
gifImage = ImageIO.read(gifPath);
} else {
- log.debug("GIF not found: " + gifPath.getAbsolutePath());
+ log.debug("Old image not found: " + gifPath.getAbsolutePath());
}
g.drawString(entry.nameBase, 5, y + (margin * 3));
diff --git a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/IconGatherer.java b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/IconGatherer.java
index 3e7fd73..23db007 100644
--- a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/IconGatherer.java
+++ b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/IconGatherer.java
@@ -41,7 +41,7 @@
* @param generateDisabledDirs
*/
public static void gatherIcons(List<IconEntry> icons, String extension, File rootDir, File iconDir, File outputBase,
- boolean generateDisabledDirs) {
+ boolean generateDisabledDirs, FolderState wizardBannerState) {
File[] listFiles = iconDir.listFiles();
for (File child : listFiles) {
@@ -49,8 +49,17 @@
if (child.getName().startsWith("d") && !("dgm".equals(child.getName()))) {
continue;
}
+ if (wizardBannerState == FolderState.exclude) {
+ if ("wizban".equals(child.getName())) {
+ continue;
+ }
+ }
- gatherIcons(icons, extension, rootDir, child, outputBase, generateDisabledDirs);
+ gatherIcons(icons, extension, rootDir, child, outputBase, generateDisabledDirs, wizardBannerState);
+ continue;
+ }
+
+ if (!child.getName().endsWith(extension)) {
continue;
}
@@ -68,6 +77,9 @@
File disabledOutputDir = null;
File parentFile = child.getParentFile();
+ if (wizardBannerState == FolderState.only && !"wizban".equals(parentFile.getName())) {
+ continue;
+ }
/*
* Determine if/where to put a disabled version of the icon Eclipse
diff --git a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/RenderMojo.java b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/RenderMojo.java
index 613654c..ac4b4b0 100644
--- a/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/RenderMojo.java
+++ b/org.eclipse.images.renderer/src/main/java/org/eclipse/images/renderer/RenderMojo.java
@@ -623,7 +623,7 @@
createFragmentFiles(outputBase, dirName);
}
- IconGatherer.gatherIcons(icons, "svg", file, file, outputBase, true);
+ IconGatherer.gatherIcons(icons, "svg", file, file, outputBase, true, FolderState.include);
}
log.info("Working directory: " + outputDir.getAbsolutePath());