2014-03-18 18:22:39 +01:00
|
|
|
package org.gcube.portlets.user.td.columnwidget.client.custom;
|
|
|
|
|
|
|
|
import com.google.gwt.core.client.GWT;
|
|
|
|
import com.google.gwt.resources.client.ClientBundle;
|
|
|
|
import com.google.gwt.resources.client.CssResource;
|
|
|
|
import com.google.gwt.resources.client.ImageResource;
|
|
|
|
import com.google.gwt.safehtml.shared.SafeHtml;
|
|
|
|
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
|
|
|
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
|
|
|
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
|
|
|
import com.sencha.gxt.core.client.XTemplates;
|
2014-04-16 11:51:49 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author "Giancarlo Panichi"
|
|
|
|
*
|
|
|
|
*/
|
2014-03-18 18:22:39 +01:00
|
|
|
public class ActionButtonCellAppearance {
|
|
|
|
|
|
|
|
public interface Style extends CssResource {
|
|
|
|
String image();
|
|
|
|
}
|
|
|
|
|
|
|
|
public interface Template extends XTemplates {
|
|
|
|
@XTemplate(source = "ActionButton.html")
|
|
|
|
SafeHtml template(Style style, SafeHtml img, String title);
|
|
|
|
}
|
|
|
|
|
|
|
|
public interface Resources extends ClientBundle {
|
|
|
|
@Source("ActionButton.css")
|
|
|
|
Style style();
|
|
|
|
}
|
|
|
|
|
|
|
|
private final Style style;
|
|
|
|
private final Template template;
|
|
|
|
|
|
|
|
public ImageResource icon;
|
|
|
|
public String title;
|
|
|
|
|
|
|
|
public ActionButtonCellAppearance(){
|
|
|
|
this((Resources) GWT.create(Resources.class));
|
|
|
|
}
|
|
|
|
|
|
|
|
public ActionButtonCellAppearance(Resources resources){
|
|
|
|
this.style = resources.style();
|
|
|
|
this.style.ensureInjected();
|
|
|
|
this.template = GWT.create(Template.class);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void render(SafeHtmlBuilder sb) {
|
|
|
|
sb.append(template.template(style, makeImage(icon), title));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Make icons available as SafeHtml to be displayed inside the table
|
|
|
|
*
|
|
|
|
* @param resource
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
private static SafeHtml makeImage(ImageResource resource) {
|
|
|
|
AbstractImagePrototype proto = AbstractImagePrototype.create(resource);
|
|
|
|
String html = proto.getHTML();
|
|
|
|
return SafeHtmlUtils.fromTrustedString(html);
|
|
|
|
}
|
|
|
|
}
|