┌─────┐ ┌───────────┐ ┌───────┐ ┌────────┐ ┌──────────────────────────────────┐ │Actor│ │PDFDocument│ │PDFForm│ │PDFField│ │defaultTextFieldAppearanceProvider│ └──┬──┘ └─────┬─────┘ └───┬───┘ └────┬───┘ └─────────────────┬────────────────┘ │ save() │ │ │ │ │─────────>│ │ │ │ │ │ │ │ │ │ ╔═════════════════════════════════╤════════════════════════════════════════════════════════╗ │ ║ opt updateFieldAppearances flag │ │ │ ║ │ ╟─────────────────────────────────┘ │ │ ║ │ ║ │ updateFieldAppearances() │ │ │ │ ║ │ ║ │──────────────────────────>│ │ │ │ ║ │ ║ │ │ │ │ │ ║ │ ║ │ ╔═════════════════╤══════════════════════════════════════════╗ ║ │ ║ │ ║ loop all fields │ │ │ ║ ║ │ ║ │ ╟─────────────────┘ │ │ ║ ║ │ ║ │ ║ │ defaultUpdateAppearances() │ │ ║ ║ │ ║ │ ║ │────────────────────────────>│ │ ║ ║ │ ║ │ ║ │ │ │ │ │ ║ ║ │ ║ │ ║ │ │ │ │────┐ │ ║ ║ │ ║ │ ║ │ │ │ │ │ updateAppearances() │ ║ ║ │ ║ │ ║ │ │ │ │<───┘ │ ║ ║ │ ║ │ ║ │ │ │ │ invoke() │ ║ ║ │ ║ │ ║ │ │ │ │─────────────────────────>│ ║ ║ │ ║ │ ║ │ │ │ │ │ ║ ║ │ ║ │ ╚═════════════════╧══════════════════════════════════════════╝ ║ │ ╚═════════════════════════════════╧════════════════════════════════════════════════════════╝ ┌──┴──┐ ┌─────┴─────┐ ┌───┴───┐ ┌────┴───┐ ┌─────────────────┴────────────────┐ │Actor│ │PDFDocument│ │PDFForm│ │PDFField│ │defaultTextFieldAppearanceProvider│ └─────┘ └───────────┘ └───────┘ └────────┘ └──────────────────────────────────┘