TransactionTypeWrapper(final Transaction t) {
      super();

      if (t instanceof InvestmentTransaction) {
        setValue(t.getTransactionType().toString());
      } else if (t.getAmount(accountProperty.get()).signum() > 0) {
        setValue(resources.getString("Item.CashDeposit"));
      } else {
        setValue(resources.getString("Item.CashWithdrawal"));
      }
    }
  @Override
  public void modifyTransaction(@NotNull final Transaction transaction) {
    if (!(transaction.getTransactionType() == TransactionType.REMOVESHARE
        || transaction.getTransactionType() == TransactionType.ADDSHARE)) {
      throw new IllegalArgumentException(
          resources.getString("Message.Error.InvalidTransactionType"));
    }

    clearForm();

    datePicker.setValue(transaction.getLocalDate());
    memoTextField.setText(transaction.getMemo());
    numberComboBox.setValue(transaction.getNumber());
    priceField.setDecimal(((InvestmentTransaction) transaction).getPrice());
    quantityField.setDecimal(((InvestmentTransaction) transaction).getQuantity());
    securityComboBox.setSecurityNode(((InvestmentTransaction) transaction).getSecurityNode());

    setReconciledState(transaction.getReconciled(accountProperty().get()));

    modTrans = transaction;
    modTrans = attachmentPane.modifyTransaction(modTrans);
  }
  @Override
  public void modifyTransaction(Transaction tran) {

    assert tran instanceof InvestmentTransaction;

    assert tran.getTransactionType() == TransactionType.ADDSHARE
        || tran.getTransactionType() == TransactionType.REMOVESHARE;

    InvestmentTransaction _tran = (InvestmentTransaction) tran;

    clearForm();

    modTrans = tran;

    datePanel.setDate(tran.getLocalDate());
    memoField.setText(tran.getMemo());
    priceField.setDecimal(_tran.getPrice());
    quantityField.setDecimal(_tran.getQuantity());
    securityCombo.setSelectedNode(_tran.getSecurityNode());

    setReconciledState(tran.getReconciled(getAccount()));

    updateTotalField();
  }
 @Override
 boolean canModifyTransaction(final Transaction t) {
   return t.getTransactionType() == TransactionType.SINGLENTRY;
 }