package com.dgex.offspring.application.handlers; import nxt.Nxt; import nxt.Transaction; import nxt.util.Convert; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.e4.ui.di.UISynchronize; import org.eclipse.e4.ui.services.IStylingEngine; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Display; import com.dgex.offspring.config.ContactsService; import com.dgex.offspring.nxtCore.service.INxtService; import com.dgex.offspring.ui.InspectTransactionDialog; import com.dgex.offspring.user.service.IUserService; public class LookupTransactionHandler { class TransactionValidator implements IInputValidator { @Override public String isValid(String text) { text = text.trim(); if (text == null || text.isEmpty()) { return "Invalid Transaction Id"; } Long id = Convert.parseUnsignedLong(text); if (id == null) { return "Invalid Transaction Id"; } Transaction transaction = Nxt.getBlockchain().getTransaction(id); if (transaction == null) { return "That transaction does not exist"; } return null; } } @Execute public void execute(INxtService nxt, IStylingEngine engine, IUserService userService, UISynchronize sync) { InputDialog dialog = new InputDialog(Display.getCurrent().getActiveShell(), "Lookup Transaction", "Enter transaction id", "", new TransactionValidator()); if (dialog.open() == Window.OK) { Long id = Convert.parseUnsignedLong(dialog.getValue()); InspectTransactionDialog.show(id, nxt, engine, userService, sync, ContactsService.getInstance()); } } }