package net.jeeeyul.eclipse.themes.css.dynamicresource;
import java.util.ArrayList;
import java.util.List;
import net.jeeeyul.eclipse.themes.SharedImages;
import net.jeeeyul.swtend.ui.HSB;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.RGB;
/**
* A factory that generated {@link ImageData} for ImageBasedFrame.
*
* @author Jeeeyul
*/
public class FrameFactory {
/**
* Generates an image for frame-image.
*
* @param backgroundColor
* background color.
* @return An image data for frame.
*/
public ImageData create(HSB backgroundColor) {
ImageData source = SharedImages.getImageDescriptor(SharedImages.FRAME).getImageData();
List<RGB> newRGBs = new ArrayList<RGB>();
for (RGB each : source.palette.colors) {
try {
HSB copy = backgroundColor.getCopy();
HSB hsb = new HSB(each);
copy.brightness = hsb.brightness;
copy = copy.mixWith(backgroundColor, 0.6f);
newRGBs.add(copy.toRGB());
} catch (Exception e) {
e.printStackTrace();
}
}
source.palette.colors = newRGBs.toArray(new RGB[newRGBs.size()]);
return source;
}
}