package org.gcube.portlets.user.td.columnwidget.client.custom; import org.gcube.portlets.user.td.columnwidget.client.custom.ErrorMessageDialog.ErrorMessageDialogAppearance; 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.resources.client.ClientBundle.Source; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.sencha.gxt.core.client.XTemplates; import com.sencha.gxt.core.client.dom.XElement; public class DefaultErrorMessageDialogApperance implements ErrorMessageDialogAppearance { public interface Template extends XTemplates { @XTemplate(source = "ErrorMessageDialog.html") SafeHtml template(ErrorMessageDialogStyle style); } public interface ErrorMessageDialogStyle extends CssResource { @ClassName("container") public String getContainer(); @ClassName("error") public String getError(); @ClassName("errorExtended") public String getErrorExtended(); @ClassName("errorExtendedContainer") public String getErrorExtendedContainer(); } private final ErrorMessageDialogStyle style; private final Template template; public interface ErrorMessageDialogResources extends ClientBundle { public static final ErrorMessageDialogResources INSTANCE = GWT.create(ErrorMessageDialogResources.class); @Source("ErrorMessageDialog.css") ErrorMessageDialogStyle style(); @Source("exclamation.png") ImageResource error(); @Source("exclamation_32.png") ImageResource error32(); } public DefaultErrorMessageDialogApperance() { this(ErrorMessageDialogResources.INSTANCE); } public DefaultErrorMessageDialogApperance(ErrorMessageDialogResources resources) { this.style = resources.style(); this.style.ensureInjected(); this.template = GWT.create(Template.class); } public void render(SafeHtmlBuilder sb) { sb.append(template.template(style)); } public XElement getMessageElement(XElement parent) { XElement element = parent.selectNode("." + style.getError()); return element; } public XElement getExtendedElement(XElement parent) { XElement element = parent.selectNode("." + style.getErrorExtended()); return element; } public ImageResource getWindowIcon(){ return ErrorMessageDialogResources.INSTANCE.error(); }; /*public void onUpdateIcon(XElement parent, ImageResource icon) { XElement element = parent.selectNode("." + style.getIconButtonImage()); Image image=new Image(icon); Element img=image.getElement(); img.setClassName(style.getIconButtonRef()); element.appendChild(img); }*/ }