Remove #initialize method from model classes

... in favor of initialization via constructors. It's fine to break out
a separate private initialization method, but it appears to be
unnecessary to formally model an initialization lifecycle distinct from
construction.
This commit is contained in:
Chris Beams 2014-11-22 11:22:18 +01:00
parent c7e98df174
commit feb891b0dc
No known key found for this signature in database
GPG key ID: 3D214F8F5BC5ED73
22 changed files with 23 additions and 151 deletions

View file

@ -64,9 +64,6 @@ public class CachedViewCB<T extends PresentationModel> extends ViewCB<T> {
deactivate(); deactivate();
}); });
} }
if (presentationModel != null)
presentationModel.initialize();
} }
/** /**

View file

@ -32,12 +32,6 @@ public class PresentationModel<T extends UIModel> {
public PresentationModel() { public PresentationModel() {
} }
public void initialize() {
log.trace("Lifecycle: initialize " + this.getClass().getSimpleName());
if (model != null)
model.initialize();
}
public void activate() { public void activate() {
log.trace("Lifecycle: activate " + this.getClass().getSimpleName()); log.trace("Lifecycle: activate " + this.getClass().getSimpleName());
if (model != null) if (model != null)

View file

@ -23,10 +23,6 @@ import org.slf4j.LoggerFactory;
public class UIModel { public class UIModel {
private static final Logger log = LoggerFactory.getLogger(UIModel.class); private static final Logger log = LoggerFactory.getLogger(UIModel.class);
public void initialize() {
log.trace("Lifecycle: initialize " + this.getClass().getSimpleName());
}
public void activate() { public void activate() {
log.trace("Lifecycle: activate " + this.getClass().getSimpleName()); log.trace("Lifecycle: activate " + this.getClass().getSimpleName());
} }

View file

@ -68,9 +68,6 @@ public class ViewCB<T extends PresentationModel> implements Initializable {
terminate(); terminate();
}); });
} }
if (presentationModel != null)
presentationModel.initialize();
} }
/** /**

View file

@ -62,11 +62,7 @@ class FiatAccountPM extends PresentationModel<FiatAccountModel> {
public FiatAccountPM(FiatAccountModel model, BankAccountNumberValidator bankAccountNumberValidator) { public FiatAccountPM(FiatAccountModel model, BankAccountNumberValidator bankAccountNumberValidator) {
super(model); super(model);
this.bankAccountNumberValidator = bankAccountNumberValidator; this.bankAccountNumberValidator = bankAccountNumberValidator;
}
@Override
public void initialize() {
// input // input
title.bindBidirectional(model.title); title.bindBidirectional(model.title);
holderName.bindBidirectional(model.holderName); holderName.bindBidirectional(model.holderName);
@ -86,8 +82,6 @@ class FiatAccountPM extends PresentationModel<FiatAccountModel> {
holderName.addListener((ov, oldValue, newValue) -> validateInput()); holderName.addListener((ov, oldValue, newValue) -> validateInput());
primaryID.addListener((ov, oldValue, newValue) -> validateInput()); primaryID.addListener((ov, oldValue, newValue) -> validateInput());
secondaryID.addListener((ov, oldValue, newValue) -> validateInput()); secondaryID.addListener((ov, oldValue, newValue) -> validateInput());
super.initialize();
} }
@Override @Override

View file

@ -75,12 +75,6 @@ class IrcAccountModel extends UIModel {
this.user = user; this.user = user;
this.accountSettings = accountSettings; this.accountSettings = accountSettings;
this.messageService = messageService; this.messageService = messageService;
}
@Override
public void initialize() {
super.initialize();
if (accountSettings.getAcceptedArbitrators().isEmpty()) if (accountSettings.getAcceptedArbitrators().isEmpty())
addMockArbitrator(); addMockArbitrator();

View file

@ -51,19 +51,13 @@ class IrcAccountPM extends PresentationModel<IrcAccountModel> {
public IrcAccountPM(IrcAccountModel model, BankAccountNumberValidator nickNameValidator) { public IrcAccountPM(IrcAccountModel model, BankAccountNumberValidator nickNameValidator) {
super(model); super(model);
this.nickNameValidator = nickNameValidator; this.nickNameValidator = nickNameValidator;
}
@Override
public void initialize() {
// input // input
ircNickName.bindBidirectional(model.nickName); ircNickName.bindBidirectional(model.nickName);
type.bindBidirectional(model.type); type.bindBidirectional(model.type);
currency.bindBidirectional(model.currency); currency.bindBidirectional(model.currency);
model.nickName.addListener((ov, oldValue, newValue) -> validateInput()); model.nickName.addListener((ov, oldValue, newValue) -> validateInput());
super.initialize();
} }

View file

@ -66,12 +66,6 @@ class RegistrationModel extends UIModel {
this.walletService = walletService; this.walletService = walletService;
this.user = user; this.user = user;
this.persistence = persistence; this.persistence = persistence;
}
@Override
public void initialize() {
super.initialize();
if (walletService != null && walletService.getWallet() != null) { if (walletService != null && walletService.getWallet() != null) {
addressEntry = walletService.getRegistrationAddressEntry(); addressEntry = walletService.getRegistrationAddressEntry();

View file

@ -51,12 +51,6 @@ class RegistrationPM extends PresentationModel<RegistrationModel> {
public RegistrationPM(RegistrationModel model, BSFormatter formatter) { public RegistrationPM(RegistrationModel model, BSFormatter formatter) {
super(model); super(model);
this.formatter = formatter; this.formatter = formatter;
}
@Override
public void initialize() {
super.initialize();
if (model.getAddressEntry() != null) { if (model.getAddressEntry() != null) {
address.set(model.getAddressEntry().getAddress()); address.set(model.getAddressEntry().getAddress());

View file

@ -65,12 +65,6 @@ class RestrictionsModel extends UIModel {
this.accountSettings = accountSettings; this.accountSettings = accountSettings;
this.persistence = persistence; this.persistence = persistence;
this.messageService = messageService; this.messageService = messageService;
}
@Override
public void initialize() {
super.initialize();
AccountSettings persistedAccountSettings = (AccountSettings) persistence.read(accountSettings); AccountSettings persistedAccountSettings = (AccountSettings) persistence.read(accountSettings);
if (persistedAccountSettings != null) { if (persistedAccountSettings != null) {

View file

@ -28,19 +28,10 @@ import javafx.beans.property.StringProperty;
class SeedWordsPM extends PresentationModel<SeedWordsModel> { class SeedWordsPM extends PresentationModel<SeedWordsModel> {
final StringProperty seedWords = new SimpleStringProperty(); final StringProperty seedWords = new SimpleStringProperty();
private final BSFormatter formatter;
@Inject @Inject
public SeedWordsPM(SeedWordsModel model, BSFormatter formatter) { public SeedWordsPM(SeedWordsModel model, BSFormatter formatter) {
super(model); super(model);
this.formatter = formatter;
}
@Override
public void initialize() {
super.initialize();
if (model.getMnemonicCode() != null) if (model.getMnemonicCode() != null)
seedWords.set(formatter.mnemonicCodeToString(model.getMnemonicCode())); seedWords.set(formatter.mnemonicCodeToString(model.getMnemonicCode()));

View file

@ -36,26 +36,20 @@ class ClosedTradesModel extends UIModel {
private final User user; private final User user;
private final ObservableList<ClosedTradesListItem> list = FXCollections.observableArrayList(); private final ObservableList<ClosedTradesListItem> list = FXCollections.observableArrayList();
private MapChangeListener<String, Trade> mapChangeListener; private final MapChangeListener<String, Trade> mapChangeListener;
@Inject @Inject
public ClosedTradesModel(TradeManager tradeManager, User user) { public ClosedTradesModel(TradeManager tradeManager, User user) {
this.tradeManager = tradeManager; this.tradeManager = tradeManager;
this.user = user; this.user = user;
}
this.mapChangeListener = change -> {
@Override
public void initialize() {
mapChangeListener = change -> {
if (change.wasAdded()) if (change.wasAdded())
list.add(new ClosedTradesListItem(change.getValueAdded())); list.add(new ClosedTradesListItem(change.getValueAdded()));
else if (change.wasRemoved()) else if (change.wasRemoved())
list.removeIf(e -> e.getTrade().getId().equals(change.getValueRemoved().getId())); list.removeIf(e -> e.getTrade().getId().equals(change.getValueRemoved().getId()));
}; };
super.initialize();
} }
@Override @Override

View file

@ -37,26 +37,20 @@ class OffersModel extends UIModel {
private final User user; private final User user;
private final ObservableList<OfferListItem> list = FXCollections.observableArrayList(); private final ObservableList<OfferListItem> list = FXCollections.observableArrayList();
private MapChangeListener<String, Offer> offerMapChangeListener; private final MapChangeListener<String, Offer> offerMapChangeListener;
@Inject @Inject
public OffersModel(TradeManager tradeManager, User user) { public OffersModel(TradeManager tradeManager, User user) {
this.tradeManager = tradeManager; this.tradeManager = tradeManager;
this.user = user; this.user = user;
}
this.offerMapChangeListener = change -> {
@Override
public void initialize() {
offerMapChangeListener = change -> {
if (change.wasAdded()) if (change.wasAdded())
list.add(new OfferListItem(change.getValueAdded())); list.add(new OfferListItem(change.getValueAdded()));
else if (change.wasRemoved()) else if (change.wasRemoved())
list.removeIf(e -> e.getOffer().getId().equals(change.getValueRemoved().getId())); list.removeIf(e -> e.getOffer().getId().equals(change.getValueRemoved().getId()));
}; };
super.initialize();
} }
@Override @Override

View file

@ -66,11 +66,11 @@ class PendingTradesModel extends UIModel {
private PendingTradesListItem selectedItem; private PendingTradesListItem selectedItem;
private boolean isOfferer; private boolean isOfferer;
private Trade closedTrade; private Trade closedTrade;
private TxConfidenceListener txConfidenceListener; private TxConfidenceListener txConfidenceListener;
private ChangeListener<Trade.State> stateChangeListener;
private ChangeListener<Throwable> faultChangeListener; private final ChangeListener<Trade.State> stateChangeListener;
private MapChangeListener<String, Trade> mapChangeListener; private final ChangeListener<Throwable> faultChangeListener;
private final MapChangeListener<String, Trade> mapChangeListener;
final StringProperty txId = new SimpleStringProperty(); final StringProperty txId = new SimpleStringProperty();
final ObjectProperty<Trade.State> tradeState = new SimpleObjectProperty<>(); final ObjectProperty<Trade.State> tradeState = new SimpleObjectProperty<>();
@ -82,15 +82,11 @@ class PendingTradesModel extends UIModel {
this.tradeManager = tradeManager; this.tradeManager = tradeManager;
this.walletService = walletService; this.walletService = walletService;
this.user = user; this.user = user;
}
this.stateChangeListener = (ov, oldValue, newValue) -> tradeState.set(newValue);
this.faultChangeListener = (ov, oldValue, newValue) -> fault.set(newValue);
@Override this.mapChangeListener = change -> {
public void initialize() {
stateChangeListener = (ov, oldValue, newValue) -> tradeState.set(newValue);
faultChangeListener = (ov, oldValue, newValue) -> fault.set(newValue);
mapChangeListener = change -> {
if (change.wasAdded()) if (change.wasAdded())
list.add(new PendingTradesListItem(change.getValueAdded())); list.add(new PendingTradesListItem(change.getValueAdded()));
else if (change.wasRemoved()) else if (change.wasRemoved())
@ -98,8 +94,6 @@ class PendingTradesModel extends UIModel {
sortList(); sortList();
}; };
super.initialize();
} }
@Override @Override

View file

@ -59,7 +59,7 @@ class PendingTradesPM extends PresentationModel<PendingTradesModel> {
} }
private final BSFormatter formatter; private final BSFormatter formatter;
private InvalidationListener stateChangeListener; private final InvalidationListener stateChangeListener;
private final BtcAddressValidator btcAddressValidator; private final BtcAddressValidator btcAddressValidator;
final StringProperty txId = new SimpleStringProperty(); final StringProperty txId = new SimpleStringProperty();
@ -75,14 +75,7 @@ class PendingTradesPM extends PresentationModel<PendingTradesModel> {
this.formatter = formatter; this.formatter = formatter;
this.btcAddressValidator = btcAddressValidator; this.btcAddressValidator = btcAddressValidator;
} this.stateChangeListener = (ov) -> updateState();
@Override
public void initialize() {
stateChangeListener = (ov) -> updateState();
super.initialize();
} }
@Override @Override

View file

@ -118,14 +118,8 @@ class CreateOfferModel extends UIModel {
this.user = user; this.user = user;
this.persistence = persistence; this.persistence = persistence;
this.formatter = formatter; this.formatter = formatter;
this.offerId = UUID.randomUUID().toString();
offerId = UUID.randomUUID().toString();
}
@Override
public void initialize() {
// static data
offerFeeAsCoin.set(FeePolicy.CREATE_OFFER_FEE); offerFeeAsCoin.set(FeePolicy.CREATE_OFFER_FEE);
networkFeeAsCoin.set(FeePolicy.TX_FEE); networkFeeAsCoin.set(FeePolicy.TX_FEE);
@ -153,8 +147,6 @@ class CreateOfferModel extends UIModel {
// we need to set it here already as initWithData is called before activate // we need to set it here already as initWithData is called before activate
if (accountSettings != null) if (accountSettings != null)
securityDepositAsCoin.set(accountSettings.getSecurityDeposit()); securityDepositAsCoin.set(accountSettings.getSecurityDeposit());
super.initialize();
} }
@Override @Override

View file

@ -99,14 +99,7 @@ class CreateOfferPM extends PresentationModel<CreateOfferModel> {
this.fiatValidator = fiatValidator; this.fiatValidator = fiatValidator;
this.btcValidator = btcValidator; this.btcValidator = btcValidator;
this.formatter = formatter; this.formatter = formatter;
}
@Override
public void initialize() {
super.initialize();
// static
paymentLabel.set(BSResources.get("createOffer.fundsBox.paymentLabel", model.getOfferId())); paymentLabel.set(BSResources.get("createOffer.fundsBox.paymentLabel", model.getOfferId()));
if (model.getAddressEntry() != null) { if (model.getAddressEntry() != null) {

View file

@ -63,7 +63,7 @@ class OfferBookModel extends UIModel {
private final FilteredList<OfferBookListItem> filteredItems; private final FilteredList<OfferBookListItem> filteredItems;
private final SortedList<OfferBookListItem> sortedItems; private final SortedList<OfferBookListItem> sortedItems;
// private OfferBookInfo offerBookInfo; // private OfferBookInfo offerBookInfo;
private ChangeListener<BankAccount> bankAccountChangeListener; private final ChangeListener<BankAccount> bankAccountChangeListener;
private final ObjectProperty<Coin> amountAsCoin = new SimpleObjectProperty<>(); private final ObjectProperty<Coin> amountAsCoin = new SimpleObjectProperty<>();
private final ObjectProperty<Fiat> priceAsFiat = new SimpleObjectProperty<>(); private final ObjectProperty<Fiat> priceAsFiat = new SimpleObjectProperty<>();
@ -86,16 +86,9 @@ class OfferBookModel extends UIModel {
this.preferences = preferences; this.preferences = preferences;
this.formatter = formatter; this.formatter = formatter;
filteredItems = new FilteredList<>(offerBook.getOfferBookListItems()); this.filteredItems = new FilteredList<>(offerBook.getOfferBookListItems());
sortedItems = new SortedList<>(filteredItems); this.sortedItems = new SortedList<>(filteredItems);
} this.bankAccountChangeListener = (observableValue, oldValue, newValue) -> setBankAccount(newValue);
@Override
public void initialize() {
bankAccountChangeListener = (observableValue, oldValue, newValue) -> setBankAccount(newValue);
super.initialize();
} }
@Override @Override

View file

@ -57,12 +57,6 @@ class OfferBookPM extends PresentationModel<OfferBookModel> {
this.optionalFiatValidator = optionalFiatValidator; this.optionalFiatValidator = optionalFiatValidator;
this.optionalBtcValidator = optionalBtcValidator; this.optionalBtcValidator = optionalBtcValidator;
this.formatter = formatter; this.formatter = formatter;
}
@Override
public void initialize() {
super.initialize();
btcCode.bind(model.btcCode); btcCode.bind(model.btcCode);
fiatCode.bind(model.fiatCode); fiatCode.bind(model.fiatCode);

View file

@ -85,12 +85,6 @@ class TakeOfferModel extends UIModel {
this.walletService = walletService; this.walletService = walletService;
this.preferences = preferences; this.preferences = preferences;
this.persistence = persistence; this.persistence = persistence;
}
@Override
public void initialize() {
super.initialize();
offerFeeAsCoin.set(FeePolicy.CREATE_OFFER_FEE); offerFeeAsCoin.set(FeePolicy.CREATE_OFFER_FEE);
networkFeeAsCoin.set(FeePolicy.TX_FEE); networkFeeAsCoin.set(FeePolicy.TX_FEE);

View file

@ -42,8 +42,6 @@ import static javafx.beans.binding.Bindings.createStringBinding;
class TakeOfferPM extends PresentationModel<TakeOfferModel> { class TakeOfferPM extends PresentationModel<TakeOfferModel> {
private String offerFee;
private String networkFee;
private String fiatCode; private String fiatCode;
private String amountRange; private String amountRange;
private String price; private String price;
@ -62,6 +60,8 @@ class TakeOfferPM extends PresentationModel<TakeOfferModel> {
private final BtcValidator btcValidator; private final BtcValidator btcValidator;
private final BSFormatter formatter; private final BSFormatter formatter;
private final String offerFee;
private final String networkFee;
final StringProperty amount = new SimpleStringProperty(); final StringProperty amount = new SimpleStringProperty();
final StringProperty volume = new SimpleStringProperty(); final StringProperty volume = new SimpleStringProperty();
@ -91,16 +91,9 @@ class TakeOfferPM extends PresentationModel<TakeOfferModel> {
this.btcValidator = btcValidator; this.btcValidator = btcValidator;
this.formatter = formatter; this.formatter = formatter;
}
this.offerFee = formatter.formatCoinWithCode(model.offerFeeAsCoin.get());
@Override this.networkFee = formatter.formatCoinWithCode(model.networkFeeAsCoin.get());
public void initialize() {
super.initialize();
// static
offerFee = formatter.formatCoinWithCode(model.offerFeeAsCoin.get());
networkFee = formatter.formatCoinWithCode(model.networkFeeAsCoin.get());
setupBindings(); setupBindings();
setupListeners(); setupListeners();

View file

@ -51,7 +51,6 @@ public class CreateOfferPMTest {
model = new CreateOfferModel(null, null, null, null, null, null, formatter); model = new CreateOfferModel(null, null, null, null, null, null, formatter);
presenter = new CreateOfferPM(model, new FiatValidator(null), new BtcValidator(), formatter); presenter = new CreateOfferPM(model, new FiatValidator(null), new BtcValidator(), formatter);
presenter.initialize();
} }
@Test @Test