[bisq-network/bisq] Un-generify Popup class (#3651)

Steven Barclay notifications at github.com
Thu Nov 21 02:40:41 UTC 2019


Remove the type parameter `T` from `Popup<T> extends Overlay<Popup>`, as it appears to have never been used or set anywhere in the code. (This mainly involves replacing a lot of `new Popup<>` occurrences, which was done entirely automatically by the IDE.)

I guess the original purpose of the type parameter was to allow different kinds of popup, all extending the same class, e.g. `Foo extends Popup<Foo> extends Overlay<Foo>`. However, due to the fluent interface of `Overlay`, this wouldn't be entirely type safe as long as `Popup` has a public constructor and standalone instances of it can be created. For example,

> `Foo foo = new Popup<Foo>().headline("foo");`

would typecheck fine but throw a `ClassCastException` at runtime, when it tries to assign the underived `Popup` instance to `foo`. (In more complex cases this could cause heap pollution.)

If different popup subclasses are later required, it would probably be better to define an abstract base class but keep all the concrete subclasses non-generic, e.g. `BasePopup<T extends BasePopup<T>> extends Overlay<T>`, similar to the `TabbedOverlay` class.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/3651

-- Commit Summary --

  * Un-generify Popup class

-- File Changes --

    M desktop/src/main/java/bisq/desktop/app/BisqApp.java (11)
    M desktop/src/main/java/bisq/desktop/components/AddressTextField.java (2)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/AssetsForm.java (2)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/PaymentMethodForm.java (2)
    M desktop/src/main/java/bisq/desktop/main/MainView.java (8)
    M desktop/src/main/java/bisq/desktop/main/MainViewModel.java (38)
    M desktop/src/main/java/bisq/desktop/main/account/AccountView.java (2)
    M desktop/src/main/java/bisq/desktop/main/account/content/PaymentAccountsView.java (4)
    M desktop/src/main/java/bisq/desktop/main/account/content/altcoinaccounts/AltCoinAccountsView.java (6)
    M desktop/src/main/java/bisq/desktop/main/account/content/backup/BackupView.java (4)
    M desktop/src/main/java/bisq/desktop/main/account/content/fiataccounts/FiatAccountsView.java (20)
    M desktop/src/main/java/bisq/desktop/main/account/content/notifications/MobileNotificationsView.java (12)
    M desktop/src/main/java/bisq/desktop/main/account/content/password/PasswordView.java (10)
    M desktop/src/main/java/bisq/desktop/main/account/content/seedwords/SeedWordsView.java (8)
    M desktop/src/main/java/bisq/desktop/main/account/register/AgentRegistrationView.java (10)
    M desktop/src/main/java/bisq/desktop/main/dao/DaoView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/BondingViewUtils.java (18)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/assetfee/AssetFeeView.java (8)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/proofofburn/ProofOfBurnView.java (6)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java (20)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java (14)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/monitor/StateMonitorView.java (4)
    M desktop/src/main/java/bisq/desktop/main/dao/monitor/daostate/DaoStateMonitorView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/send/BsqSendView.java (12)
    M desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositView.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsView.java (10)
    M desktop/src/main/java/bisq/desktop/main/funds/withdrawal/WithdrawalView.java (26)
    M desktop/src/main/java/bisq/desktop/main/market/MarketView.java (4)
    M desktop/src/main/java/bisq/desktop/main/market/spread/SpreadViewModel.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferView.java (18)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java (20)
    M desktop/src/main/java/bisq/desktop/main/offer/OfferView.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookView.java (30)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferDataModel.java (14)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferView.java (24)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferViewModel.java (6)
    M desktop/src/main/java/bisq/desktop/main/overlays/popups/Popup.java (3)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java (8)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/EmptyWalletWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ManualPayoutTxWindow.java (6)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/SendAlertMessageWindow.java (6)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/SendPrivateNotificationWindow.java (8)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/SignPaymentAccountsWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/TorNetworkSettingsWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockDisputeAgentRegistrationWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/WalletPasswordWindow.java (6)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/downloadupdate/DisplayUpdateDownloadWindow.java (4)
    M desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferView.java (10)
    M desktop/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.java (10)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java (16)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesView.java (4)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java (10)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java (14)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java (16)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java (6)
    M desktop/src/main/java/bisq/desktop/main/presentation/AccountPresentation.java (2)
    M desktop/src/main/java/bisq/desktop/main/settings/network/NetworkSettingsView.java (8)
    M desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesView.java (22)
    M desktop/src/main/java/bisq/desktop/main/shared/ChatView.java (10)
    M desktop/src/main/java/bisq/desktop/main/support/SupportView.java (2)
    M desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java (4)
    M desktop/src/main/java/bisq/desktop/util/GUIUtil.java (44)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3651.patch
https://github.com/bisq-network/bisq/pull/3651.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/3651
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20191120/e10f9105/attachment-0001.html>


More information about the bisq-github mailing list