-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPhoto_Club_Hub_HTMLApp.swift
67 lines (56 loc) · 2.76 KB
/
Photo_Club_Hub_HTMLApp.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//
// Photo_Club_Hub_HTMLApp.swift
// Photo Club Hub HTML
//
// Created by Peter van den Hamer on 07/09/2024.
//
import SwiftUI
import Ignite
@main
struct PhotoClubHubHtmlApp: App {
let persistenceController = PersistenceController.shared
init() {
OrganizationType.initConstants() // creates records for club, museum, and unknown
}
var body: some Scene {
Window(String(localized: "Photo Club Hub HTML", table: "SwiftUI", comment: "Name of this macOS app"),
id: "mainWindow") {
ContentView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
.onAppear {
Self.loadClubsAndMembers()
}
}
.commands {
CommandGroup(replacing: .newItem) { }
CommandGroup(replacing: .undoRedo) { }
CommandGroup(replacing: .help) { }
CommandGroup(replacing: .systemServices) { }
CommandGroup(replacing: .pasteboard) { } // Suppresses Apple Intelligence's Writing Tools in the menu
}
}
}
extension PhotoClubHubHtmlApp {
static fileprivate func loadClubsAndMembers() {
Model.deleteAllCoreDataObjects() // Clear CoreData database for simplicity and to trigger initConstants()
// load list of photo clubs and museums from root.Level1.json file (on GitHub)
let level1BackgroundContext = PersistenceController.shared.container.newBackgroundContext()
level1BackgroundContext.name = "root.level1.json"
level1BackgroundContext.mergePolicy = NSMergePolicy.mergeByPropertyObjectTrump
level1BackgroundContext.automaticallyMergesChangesFromParent = true // to push ObjectTypes to bgContext?
_ = Level1JsonReader(bgContext: level1BackgroundContext, // read root.Level1.json file
useOnlyFile: false)
// load all current/former members of Fotogroep Waalre
let waalreBackgroundContext = PersistenceController.shared.container.newBackgroundContext()
waalreBackgroundContext.name = "Fotogroep Waalre"
waalreBackgroundContext.mergePolicy = NSMergePolicy.mergeByPropertyObjectTrump
waalreBackgroundContext.automaticallyMergesChangesFromParent = true
_ = FotogroepWaalreMembersProvider(bgContext: waalreBackgroundContext)
// load member(s) of Fotogroep De Gender
let genderBackgroundContext = PersistenceController.shared.container.newBackgroundContext()
genderBackgroundContext.name = "FG de Gender"
genderBackgroundContext.mergePolicy = NSMergePolicy.mergeByPropertyObjectTrump
genderBackgroundContext.automaticallyMergesChangesFromParent = true
_ = FotogroepDeGenderMembersProvider(bgContext: genderBackgroundContext)
}
}