ImageJUpdater implements UpdaterUI (simplified) ┌─────────────┐ ┌────────────┐ ┌──────────────┐ │ImageJUpdater│ │ProtocolUtil│ │AvailableSites│ └──────┬──────┘ └─────┬──────┘ └──────┬───────┘ ────┐ │ │ │ some prep checks │ │ <───┘ │ │ │ │ │ │ │ │ create │ │ ┌───────────────┐ │─────────────────────────────────────────────────────────────────────────────────────────────────>│FilesCollection│ │ │ │ │ └───────┬───────┘ │ create ┌────────────┐ │ │ │ │───────────────────────>│UpdaterFrame│ │ │ │ │ └─────┬──────┘ │ │ │ │ │ tryLoadingCollection │ │ │─────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ create ┌──────────┐ │ │ │ │ │ ────────────────>│UpdateSite│ │ │ │ │ │ │ └────┬─────┘ │ │ │ │ │ │ │ create ┌──────────────────┐ │ │ │ │ │ │ ──────────────>│AutomatedURLUpdate│ │ │ │ │ │ │ └────────┬─────────┘ │ checkHTTPSSupport │ │ │ │ │ │──────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ supportsHTTPS │ │ │ │ │ │──────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ secure│ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ │ │ │ │ │ ────┐ │ │ │ │ │ │ │ warn if insecure │ │ │ │ │ │ <───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ fixImageJUserSitesProtocol │ │ │ │ │ │───────────────────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ setNewUrl │ │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ initializeAndAddSites │ │ │ │ │ │───────────────────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ │ if new, addUpdateSite │ │ │ │ │ │ │ ────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ if present but URL changed, setNewUrl │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ create │ │ │ ┌────────────────────┐ │────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ReviewSiteURLsDialog│ │ │ │ │ │ │ │ └─────────┬──────────┘ │ │ │ │ │ │ │ setNewURLApproved(false) │ │ │ │ │ │ │ │ <───────────────────────────── │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ setNewURLApproved(true) │ │ │ │ │ │ │ │ <───────────────────────────── │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ keepOldURL │ │ │ │ │ │ │ │ <───────────────────────────── │ │ │ │ │ │ │ │ │ │ │ │ │ │ setKeepURL │ │ │ │ │ │ │ │ <──────────────────────── │ │ │ │ │ │ │ │ │ │ applySitesURLUpdates │ │ │ │ │ │ │───────────────────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ applyIfApproved │ │ │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ setURL │ │ │ │ │ │ │ │ <──────────────────────── │ │ │ │ │ │ │ │ │ │ │ reloadCollectionAndChecksum │ │ │ │ │ │─────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ ────┐ │ │ │ │ │ │ │ handle warnings, conflicts │ │ │ │ │ │ <───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ setVisible │ │ │ │ │ │ │ │──────────────────────────────> │ │ │ │ │ │ ┌──────┴──────┐ ┌─────┴──────┐ ┌─────┴──────┐ ┌──────┴───────┐ ┌───────┴───────┐ ┌────┴─────┐ ┌────────┴─────────┐ ┌─────────┴──────────┐ │ImageJUpdater│ │UpdaterFrame│ │ProtocolUtil│ │AvailableSites│ │FilesCollection│ │UpdateSite│ │AutomatedURLUpdate│ │ReviewSiteURLsDialog│ └─────────────┘ └────────────┘ └────────────┘ └──────────────┘ └───────────────┘ └──────────┘ └──────────────────┘ └────────────────────┘