package com.yoghurt.crypto.transactions.client.widget;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.yoghurt.crypto.transactions.client.place.AddressPlaceRouter;
import com.yoghurt.crypto.transactions.client.util.address.AddressParseUtil;
import com.yoghurt.crypto.transactions.shared.domain.Address;
import com.yoghurt.crypto.transactions.shared.domain.ScriptType;
import com.yoghurt.crypto.transactions.shared.domain.TransactionOutput;
public class TransactionOutputWidget extends Composite {
interface TransactionOutputWidgetUiBinder extends UiBinder<Widget, TransactionOutputWidget> {}
private static final TransactionOutputWidgetUiBinder UI_BINDER = GWT.create(TransactionOutputWidgetUiBinder.class);
@UiField HeadingWidget outputTitle;
@UiField ValueViewer amountViewer;
@UiField(provided = true) ScriptViewer signatureScriptViewer;
@UiField LabelledWidget outputContainer;
@UiField(provided = true) AddressViewer outputAddress;
public TransactionOutputWidget(final AddressPlaceRouter router, final TransactionOutput output) {
outputAddress = new AddressViewer(router);
signatureScriptViewer = new ScriptViewer(ScriptType.SCRIPT_PUB_KEY, false);
initWidget(UI_BINDER.createAndBindUi(this));
outputTitle.setText("Output #" + output.getOutputIndex());
amountViewer.setValue(output.getTransactionValue() / 100000000d + " BTC");
signatureScriptViewer.setScript(output.getInstructions());
final Address address = AddressParseUtil.tryParseAddress(output);
outputContainer.setVisible(address != null);
if(address != null) {
outputAddress.setValue(address);
}
}
}