/*
* Scriptographer
*
* This file is part of Scriptographer, a Scripting Plugin for Adobe Illustrator
* http://scriptographer.org/
*
* Copyright (c) 2002-2010, Juerg Lehni
* http://scratchdisk.com/
*
* All rights reserved. See LICENSE file for details.
*
* File created on Jun 2, 2010.
*/
package com.scriptographer.adm.ui;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import com.scriptographer.adm.Dialog;
import com.scriptographer.adm.Image;
import com.scriptographer.adm.ImageType;
import com.scriptographer.ai.Color;
import com.scriptographer.ui.Component;
import com.scriptographer.ui.Palette;
import com.scriptographer.ui.PaletteProxy;
import com.scriptographer.ui.UiFactory;
/**
* @author lehni
*
* @jshide
*/
public class AdmUiFactory extends UiFactory {
public void alert(String title, String message) {
AlertDialog.alert(title, message);
}
public boolean confirm(String title, String message) {
return ConfirmDialog.confirm(title, message);
}
public Object[] prompt(String title, Component[] components) {
return PromptDialog.prompt(title, components);
}
public PaletteProxy createPalette(Palette palette, Component[] components) {
return new AdmPaletteProxy(palette, components);
}
public File chooseDirectory(String message, File selectedDir) {
return Dialog.chooseDirectory(message, selectedDir);
}
public File fileOpen(String message, String[] filters, File selectedFile) {
return Dialog.fileOpen(message, filters, selectedFile);
}
public File fileSave(String message, String[] filters, File selectedFile) {
return Dialog.fileSave(message, filters, selectedFile);
}
public Color chooseColor(Color color) {
return Dialog.chooseColor(color);
}
/**
* Load image from resource with given name
*/
protected static Image getImage(String filename) {
Image image = images.get(filename);
if (image == null) {
try {
image = new Image(AdmUiFactory.class.getClassLoader().getResource(
"com/scriptographer/ui/resources/" + filename));
} catch (IOException e) {
System.err.println(e);
image = new Image(1, 1, ImageType.RGB);
}
}
images.put(filename, image);
return image;
}
// Cache for getImage.
private static HashMap<String, Image> images = new HashMap<String, Image>();
}