package org.ovirt.engine.ui.common.widget.table.cell; import com.google.gwt.core.client.GWT; import com.google.gwt.safehtml.client.SafeHtmlTemplates; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; /** * PasswordTextInputCell. Does not support tooltips. * */ public class PasswordTextInputCell extends TextInputCell { interface PasswordTemplate extends SafeHtmlTemplates { @Template("<input id=\"{0}\" type=\"password\" value=\"{1}\" tabindex=\"-1\"></input>") SafeHtml inputWithValue(String id, String value); @Template("<input id=\"{0}\" type=\"password\" tabindex=\"-1\"></input>") SafeHtml input(String id); } private static PasswordTemplate template; public PasswordTextInputCell() { if (template == null) { template = GWT.create(PasswordTemplate.class); } } @Override public void render(Context context, String value, SafeHtmlBuilder sb, String id) { // Get the view data. Object key = context.getKey(); ViewData viewData = getViewData(key); if (viewData != null && viewData.getCurrentValue().equals(value)) { clearViewData(key); viewData = null; } String s = (viewData != null) ? viewData.getCurrentValue() : value; if (s != null) { sb.append(template.inputWithValue(id, s)); } else { sb.append(template.input(id)); } } }