package com.dgex.offspring.application.handlers;
import nxt.Account;
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.InspectAccountDialog;
import com.dgex.offspring.user.service.IUserService;
public class LookupAccountHandler {
class AccountValidator implements IInputValidator {
@Override
public String isValid(String text) {
text = text.trim();
if (text == null || text.isEmpty()) {
return "Invalid Account Number";
}
Long id = Convert.parseUnsignedLong(text);
if (id == null) {
return "Invalid Account Number";
}
Account account = Account.getAccount(id);
if (account == null) {
return "That account 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 Account", "Enter account number", "", new AccountValidator());
if (dialog.open() == Window.OK) {
Long id = Convert.parseUnsignedLong(dialog.getValue());
InspectAccountDialog.show(id, nxt, engine, userService, sync,
ContactsService.getInstance());
}
}
}