package com.yoghurt.crypto.transactions.client.widget; import com.googlecode.gwt.crypto.bouncycastle.util.encoders.Hex; import com.googlecode.gwt.crypto.util.Str; import com.yoghurt.crypto.transactions.client.util.misc.Color; public class ValueViewer extends ContextFieldSet<String> { private Color color; protected String value; private boolean animate; public ValueViewer() {} public ValueViewer(final Color color) { this(color, new SimpleContextFactory<String>() { @Override protected String getTextValue(final String value) { return value; } }); } public ValueViewer(final String text) { super(text); } public ValueViewer(final Color color, final String text) { super(text); this.color = color; } public ValueViewer(final Color color, final FieldContextFactory<String> contextFactory) { super(contextFactory); this.color = color; } @Override protected Color getFieldColor(final String value) { return color; } @Override protected String getFieldText(final String value) { return value; } public void setValue(final byte[] hash) { if(hash != null && hash.length != 0) { setValue(Str.toString(Hex.encode(hash)).toUpperCase()); } } public void setValue(final Object obj) { setValue(String.valueOf(obj)); } public void setValue(final String value) { this.value = value; if(fields.isEmpty()) { forceSetValue(value); } else { final ContextField<String> contextField = fields.get(0); contextField.setValue(value); contextField.setContent(value, animate); } } private void forceSetValue(final String value) { clear(); addField(value); } public void setAnimate(final boolean animate) { this.animate = animate; } public void setColor(final Color color) { this.color = color; } }