Class ContactLog

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class ContactLog extends JPanel
Structured parent/guardian contact log with validation and freeform notes.

Provides a comprehensive contact tracking form with structured fields for documenting communications with parents, guardians, and family members. Unlike the freeform notes pages (SessionNotes, Observations), this page captures both structured metadata and narrative details to support later reporting and documentation requirements.

Structured Fields:

  • Guardian Name: Full name of the parent/guardian contacted
  • Contact Method: Dropdown selection (Phone, Email, In Person, Other)
  • Phone Number: Contact phone number (validated format: 7-20 chars, digits/+/()-/space)
  • Email Address: Contact email (validated format: basic email regex pattern)
  • Contact Response: Brief summary of the guardian's response or concerns
  • Contact General: High-level topic or category of the contact (e.g., "Progress Update", "IEP Discussion")
  • Contact Specific: Specific items discussed or action points (e.g., "Discussed Braille materials order")
  • Notes: Multi-line freeform notes area for detailed narrative

Validation and Error Handling:

  • Email validation: Triggers warning if Contact Method is "Email" and email field doesn't match ^[^@\s]+@[^@\s]+\.[^@\s]+$
  • Phone validation: Triggers warning if Contact Method is "Phone" and phone doesn't match ^[0-9+()\-\s]{7,20}$
  • Validation failures display warning dialogs and do not persist data until corrected

Data Persistence:

No plots are generated (contact logs are non-quantitative). The shared JLineGraph component is absent from this page's layout. This page does not implement listener interfaces and operates on static student/date parameters.

See Also:
  • Constructor Details

    • ContactLog

      public ContactLog(String studentName, LocalDate date, JLineGraph graph)
      Construct a ContactLog page for the provided student and date.
      Parameters:
      studentName - selected student display name (may be null)
      date - session date to associate with saved notes
      graph - shared graph component shown under the editor