< Zurück | Weiter >

Lerneinheit 9: Handler für Berechnungsprotokolle in die Anwendung einbetten

Um den Handler für Berechnungsprotokolle zu Ihrer Seite hinzuzufügen, müssen Sie das Ergebnisportlet und das Hauptportal ändern.

Ergebnisportlet ändern

Am Ende der vorherigen Lerneinheit subskribierte der Handler CalculationResultsHandler ein einziges Ereignis: mortgageApplication.mortgageCalculated. Wenn dieses Ereignis eintritt, aktualisiert der Handler das Kreisdiagramm und zeigt es erneut an. Der Benutzer könnte jedoch eine Zeile im Protokollportlet auswählen und bewirken, dass ein anderes Ereignis veröffentlicht wird: mortgageApplication.mortgageResultSelected. Wenn CalculationResultsHandler auch dieses Ereignis subskribiert, kann der Handler auf die Auswahl des Benutzers genauso antworten, nämlich durch die Aktualisierung und Neuanzeige des Kreisdiagramms.

Das einfachste Verfahren, beide Ereignisse zu subskribieren, ist die Verwendung eines Sterns (*), der ein Platzhalterzeichen für ein beliebiges Ereignis in einer Gruppe von Ereignissen darstellt. Gehen Sie wie folgt vor:

  1. Öffnen Sie im Rich-UI-Editor die Datei CalculationResultsHandler.egl und wechseln Sie in die Quellensicht.
  2. Suchen Sie in der Funktion start() folgende Zeile:
    InfoBus.subscribe("mortgageApplication.mortgageCalculated", displayChart);
  3. Ersetzen Sie das Qualifikationsmerkmal der untersten Ebene in dem Ereignisnamen durch den Stern:
    InfoBus.subscribe("mortgageApplication.*", displayChart);
    Nun ruft EGL bei jedem Eintreten eines Ereignisses die Funktion displayChart auf, wenn der Name des Ereignisses mit mortgageApplication. anfängt.
  4. Speichern und schließen Sie die Datei.

Hauptportal ändern

Fügen Sie für das Protokollportlet Zeilen hinzu, die den Zeilen für die beiden anderen Portlets ähneln:

  1. Öffnen Sie im Rich-UI-Editor die Datei MainHandler.egl und klicken Sie auf die Registerkarte Quelle.
  2. Fügen Sie direkt vor der Deklaration von resultsHandler eine ähnliche Deklaration für historyHandler hinzu:
    historyHandler CalculationHistoryHandler{};
  3. Fügen Sie direkt vor der Deklaration von resultsPortlet eine ähnliche Deklaration für historyPortlet hinzu:
    historyPortlet Portlet{children = [historyHandler.historyResults_ui], 
    			title = "History", canMove = TRUE, canMinimize = TRUE};
  4. Fügen Sie in der Funktion start unter den vorhandenen Aufrufen von addPortlet das neue Portlet zum Portal hinzu:
    	mortgagePortal.addPortlet(historyPortlet, 1);
  5. Legen Sie wie für resultsPortlet fest, dass historyPortlet anfangs minimiert wird:
    	historyPortlet.minimize();
  6. Fügen Sie am Ende der Funktion restorePortlets() Code für historyPortlet ein:
    		if(historyPortlet.isMinimized())
    			historyPortlet.restore();
    		end	
  7. Speichern Sie die Datei. Sollten in Ihrer Quellendatei Fehler angezeigt werden, vergleichen Sie Ihren Code mit dem Inhalt der Datei im Abschnitt Fertiger Code für MainHandler.egl nach Lerneinheit 9.

Portal testen

Testen Sie das Hauptportal, um sicherzustellen, dass das neue Protokollportlet angezeigt wird und ordnungsgemäß funktioniert.
  1. Klicken Sie unten im Editor auf Vorschau. EGL zeigt das Hauptportal und die drei untergeordneten Portlets an.
  2. Klicken Sie auf Berechnen. Eine animierte Abbildung zeigt an, dass die Bearbeitung läuft. Nach Abschluss der Berechnung werden das Kreisdiagramm und das Protokoll angezeigt.
    Im wiederhergestellten Portlet 'Results' wird das Kreisdiagramm angezeigt.
  3. Ändern Sie die Laufzeit (term) der Hypothek in fünf Jahre und klicken Sie noch einmal auf Berechnen. Es wird eine Zeile zur Protokollliste hinzugefügt.
  4. Klicken Sie in der ersten Zeile der Protokollliste auf eine Zelle.
    Die erste Zeile der Protokollliste enthält die 30-Jahr-Berechnung.
  5. Im Kreisdiagramm werden die Werte für die in der Protokollliste ausgewählte Zeile angezeigt.
    Das aktualisierte Kreisdiagramm enthält die Werte aus der ersten Berechnung.

Prüfpunkt für die Lerneinheit

Sie haben gelernt, mehrere Ereignisse mit ähnlichem Namen zu subskribieren.

In der nächsten Lerneinheit fügen Sie ein Portlet hinzu, um eine Landkarte mit Hypothekenkreditgebern anzuzeigen, die sich in einem bestimmten Gebiet der Vereinigten Staaten befinden.

< Zurück | Weiter >

Feedback