Changelog (Entwicklung)

Hier finden Sie die in Arbeit befindlichen Änderungen, ggf. sind diese im Updater als "Getestete Vorabversion" mit enthalten. Für veröffentlichte Änderungen siehe Changelog (Release)

Aktuell ist die Version 4.1.0, diese wurde am 30.08.2019 veröffentlicht.


Die aktuelle Version der Beta ist 4.1.1.42938 vom 23.02.2020

Februar 2020

Desktop

  • Neu: Aktionen auf Anwendungen die mehrere aktive Instanzen haben, werden jetzt an das Fenster mit dem höchsten z-Index weitergeleitet (das entspricht dem zuletzt genutzten Fenster dieser Anwendungsart).

  • Fix: Wenn die Karte maximiert war und eine Aktion im ersten Treffer des Suchfelds ausgeführt wurde, klappte die Grundkartenauswahlliste auf.

  • Fix: Wenn eine Anwendung per Drag&Drop maximiert wurde, wurde die Fensterposition bei "Wiederherstellen" nicht korrekt wiederhergestellt - dadurch konnte die Titelleise der Anwendung unter die Taskleiste rutschen und unerreichbar werden.

Karte

  • Neu: Überarbeitungen der Kontextmenü-Einträge, Geometrieaktionen sind jetzt immer vorhanden. Wenn das Feature einen Titel hat, dann wird dieser anzeigt (bspw. "Freihandgeometrie ersetzten TITEL").

    Für einzelne Geometrien sind die Aktionen jetzt gruppiert, es werden maximal 10 Einträge angezeigt.

  • Neu: Der Themenbaum in der Karte sowie die Anwendung "Themenbaum" haben jetzt eine einfache Suche.

    In der Anwendung Themenbaum werden Ebenen an denen keine Berechtigung zum Anzeigen in der Karte vorhanden ist jetzt grau dargestellt.

  • Fix: Die Markierung in der Mini-Übersichtkarte wurde nicht korrekt gezeichnet wenn entweder diese initial geschlossen war, oder sie geschlossen wurde, weggescrollt und sie dann wieder geöffnet wurde.

  • Fix: In der Ebenenliste wurden die Sortierbuttons nicht korrekt deaktiviert, wenn nicht sichtbare Ebenen ausgeblendet wurden.

Suche

  • Neu: Die Suchprovider werden jetzt sortiert ausgeführt, die mit dem Verhalten "StopDefaultSearchesIfNotEmpty" werden dabei immer zuerst ausgeführt. Der Standardsuchprovider immer als letztes.

    Zudem können Suchprovider auch als Hintergrund-Task ausgeführt werden. Siehe dazu die neue Schnittstelle ITaskSafeSearchProvider. Implementiert z.Z. für den GazetteerSearchProvider, dieser wird jetzt immer parallel zu den anderen Suchen durchgeführt.

  • Fix: Wenn in der Suche eine Ebene gefunden wurde für die die Datenbearbeitung mit dem "AnySourceEditor" eingerichtet ist, dann wurden u.U. falsche Berechtigungen ermittelt (die des Benutzers, der als erstes nach dem Serverstart die Suche ausgeführt hat). Damit wurde der Eintrag zum Bearbeiten in der cardo Oberfläche nicht oder unberechtigt angezeigt.

Geometriefeld (Freihand etc.)

  • Neu: Bei der Bearbeitung werden jetzt Länge/Fläche der Geometrie angezeigt. Bei Linien zusätzlich die Länge des ersten /letzten Segments und die Winkel des Bearbeitungssegmentes.

    Die Beschriftung kann auch im Ansichtsmodus aktiviert werden (Kontextmenü auf das Stammelement der Geometrie.)

    Innenringe von Polygonen werden beim Überfahren des Bearbeiten-Icons jetzt auch in der Karte hervorgehoben.

    Bei der Neuerstellung von Geometrien steht jetzt auch das Kontextmenü zur Verfügung, dort sind Aktionen wie letzten Punkt löschen, Anzeige der Stützpunkte etc. verfügbar.

    Während der Bearbeitung ist das Umschalten der Projektion der Karte deaktiviert.

  • Fix: Bei Übernahme von Polygonen war nicht sichergestellt, dass die Ringe geschlossen waren (bspw. aus der Messung).

  • Fix: Beim Löschen von Stützpunkte mit CTRL - Taste wurde u.U. 2 Punkte statt nur dem letzten gelöscht.

Ebenenbeschriftung

  • Neu: im Beschriftungsdialog gibt es für Flächen die neuen Eigenschaften "text-each-element" und "text-placement".

GeoSQL

  • Neu: Parameter und Filter vom Typ "Geometrie" können jetzt über das normale Geometriefeld gefüllt werden. Damit steht dort u.a. auch die Toolbox zur Verfügung.

Transformationstool

  • Neu: Die Transformation für Höhendaten mittels HOETRA2016 verwendet jetzt nicht mehr den Webservice (dieser ist seit ca. 12/2019 nicht mehr verfügbar). Der Code wurde unter Verwendung der DLLs neu geschrieben.

    Sie müssen die Installation entsprechend der Nutzung der Höhentransformation DHHN92 ↔ DHHN2016 mit HOETRA2016 manuell ausführen (für GeoTools.net auf dem Clientrechner, für cardo nur auf dem Server).

Sachdatenanzeige

  • Fix: Verbesserungen an der Darstellung des Zeilen-Tooltips:

    • Textfelder mit Umbruch (Absätze) werden jetzt auch so dargestellt, anstatt alles auf einer Zeile.
    • Langer Text wird an den Rändern des Tooltips umgebrochen, anstatt heraus zu ragen
    • Die Maximalgröße des Tooltips ist jetzt 66% der Breite und Höhe des Fensters. Damit kann der Tooltip bei großen Tabellen nicht mehr den Bildschirminhalt komplett ausfüllen. Allerdings kann in diesem Fall ein Teil abgeschnitten werden.
  • Neu: Spaltenbreiten bleiben jetzt beim Neuladen und bei der Sitzungswiederherstellung erhalten.

  • Fix: Recherche - Eine Nachschlageliste mit nur NULL-Werten erscheint jetzt als leer (anstatt einen unklickbaren "null"-Eintrag anzuzeigen).

  • Fix: Recherche - Beim Vergleich gegen DateTime-Werte, kann jetzt im Eingabefeld der Modus zwischen "nur Datum" und "Datum und Zeit" umgeschaltet werden. Leider kann man diese Einstellung derzeit noch nicht persistieren, es muss also pro Abfrage festgelegt werden (Standard ist "nur Datum").

  • Fix: Recherche - Datumswerte wurden mit Zeitzone in den Filter gegeben. Dadurch wurden diese in der Datenbank nicht korrekt abgefragt.

  • Neu: Das harte Limit von 50.000 Datensätzen ist jetzt aufgehoben.

    • Beim Excel-Export werden jetzt alle Datensätze exportiert
    • Bei WKT, welche die Limitierung der Datenmenge unterstützen, werden standardmäßig die ersten 1.000 Datensätze angezeigt, weitere Optionen, auch für "alle Datensätze" finden sich im Kontextmenü. Der Tab-Titel der Sachdatenanzeige weist auf eine bestehende Limitierung hin, zusätzlich wird eine kurze Information angezeigt, wenn nicht alle Daten geladen wurden.
  • Fix: Der Excel-Export stürzte ab, wenn in Textspalten Unicode-Steuerzeichen (z.B. 0x16) vorkamen. Diese werden nun herausgefiltert.

  • Fix: Die Recherche enthielt einen Fehler bei der Erstellung der Vorschauliste bei einer Spalte mit Format (z.B. Datum). Dort wurde versucht, bei Auswahl das formatierte Datum (String) in das Datumsfeld einzufügen.

Sonstiges

  • Neu: Einige Kunden würden gerne für Nutzer den Abruf von GeoJSON als Dienst ermöglichen. Wir haben dazu eine erste rudimentäre Implementierung des WFS 3.0 Standards in cardo4 vorgenommen.

    Hier finden Sie die Beschreibung der WFS 3 Implementierung.

    Aufrufe an den Pseudo-Pfad "Public" erfolgen dabei unter dem Nutzer "SYSTEM_ANONYMOUS_USER" (wie auch in cardo3). Beachten Sie, dass bei Windows-Authentifizierung für den Ordner im IIS Manager Anonymer Zugriff zugelassen wird.

  • Fix: cardo4 konnte nicht gestartet werden, wenn der Browser eine für den Server ungültige Sprache abgefordert hat (konkret: Windows 2012 R2 Server, Windows 10 Client mit der Spracheinstellung "en-DE").

  • Neu: Ab und an kam es durch Eingaben zum unbeabsichtigtem Neuladen der Browser-Seite. Folgende Änderungen wurden jetzt vorgenommen:

    • Die Backspace-Taste wird geprüft, wenn diese nicht in einem editierbarem Eingabeelement gedrückt wird, wird der Vorgang jetzt unterbrochen
    • Es erfolgt eine (Browser-) Meldung, ob die Seite neu geladen werden soll, wenn mind. eine cardo Anwendung geöffnet ist. Die Meldung kommt bspw. bei Klick auf den "Zurück-Button" im Browser und auch beim explizitem Neuladen, bspw. ausgelöst mit der F5-Taste *1.

    *1 nur bei explizitem {CTRL+R} erfolgt keine Nachfrage.

  • Neu: Unsere Visual Studio Extension wurde für Visual Studio 2019 16.4 aktualisiert. Den Download finden Sie unter Entwickler-Extension.

  • Neu: Update auf TypeScript 3.8 (bisher: 3.5)

    Entwickeln Sie selber cardo Erweiterungen, sollten Sie auch auf diese TypeScript Version aktualisieren. Beachten Sie dazu die Änderungen zwischen Typescript 3.5 und TypeScript 3.8, Hilfreich sind die Breaking-Changes der TypeScript Dokumentation.

    Neu: Die "Informationen zur Geometrie" enthalten jetzt auch das alte IWAN-Geometry - Gis-Format.

    Fix: Die Einstellung "Beim Start aufgeklappt" zur Übersichtskarte war falsch beschriftet. Richtig ist der Titel "Beim Start zugeklappt". Die Beschreibung zur Einstellung war korrekt. Es wurde nur das Label geändert, nicht die Auswertung dieser Eigenschaft. D.h. das bisherige Verhalten bleibt unverändert.

Dashboard

  • Neu: Im Dashboard gibt es eine neue Aktion zum Leeren der Caches.

Datenbrowser

  • Neu: BreakingChange: Ebene die aus Tabellen des Datenbrowsers geladen wurden verwenden jetzt die Einstellungen aus "Editoreinstellungen".

    Beachten Sie: Die bis dahin für die Ebene vorgenommenen Einstellungen werden mit diesem Update dann nicht mehr verwendet.

  • Neu: Bei der Aktion "Baum neu Laden" wird die aktuelle Ansicht wieder hergestellt.

  • Neu: In den Ebeneneigenschaften ist die EPSG Eingabe jetzt um eine zusätzliche Vorschlagsliste erweitert wurden.

  • Neu: In den WFS Eigenschaften des Sublayers kann jetzt ein Filter für die Ebene eingestellt werden.

  • Neu: Für WMS Dienste und WFS Dienste wird in den Eigenschaften jetzt die URL mit angezeigt (nur Leseansicht, ändern ist hier nicht möglich und auch nicht geplant).

AnySourceEditor

  • Fix: Die Umsetzung der Selektionen waren nicht identisch zwischen den Abfragen die der Kartenserver macht, mit denen die im Editor ausgeführt wurden. So wurde bspw. im Maptip 1 Treffer ermittelt, beim Überführen in den Editor waren dann im Ergebnis aber u.U. mehr Datensätze zur Ansicht hinzugefügt.

  • Fix: Änderungen an den Editoreinstellungen werden jetzt auch übernommen, wenn man einen Datensatz auswählt, anstatt sich zurückzusetzen.

  • Fix: Bei Zahlen- und Datumsfeldern werden die Formatierungseinstellungen der Anzeige jetzt auch in den Editor übernommen, sowohl am Feld als auch in der Liste.

ExportV4

  • Fix: Filter an/aus konnte durcheinanderkommen, wenn man Ebenen an- und ausgeschaltet hat. Dadurch kam es u.U. zum Absturz bei Start, weil versucht wurde, auf einen leeren Filter zuzugreifen.

  • Fix: Das Hinzufügen einer Ebene zum Export ("Geodaten exportieren") funktionierte nicht, wenn die Anwendung nicht bereits gestartet war.

Exportmanager

  • Fix: Bei der erneuten Auswahl der Gebietsvorlage wurde die alte Geometrie nicht aus der Karte entfernt.

API

Server

  • Fix: Es kam zu fehlerhafter Darstellung/Konvertierung von Datumsangaben bei der (De-)Serialisierung von Datumsangaben im Zusammenhang mit der Zeitumstellung:

    • das Problem entstand durch die abweichenden Zeitberechnungen zwischen Browser (Chrome, Firefox, Edge) und Windows
    • in der TimeZoneInfo von .Net/Windows für "Mitteleuropa" sind die historischen Änderungen nicht enthalten, sie bildet nur den Stand ab 1996 ab. In Javascript (Zeitzone "Europe/Berlin") sind diese Änderungen jedoch implementiert, dadurch kam es zu Abweichungen
    • bis 1995 endete die Sommerzeit am letzten Sonntag des Septembers, ab 1996 des Oktobers
    • vor 1980 gab es lange Zeit keine Sommerzeit, die Regeln für 1980 und ab 1981 weichen ebenfalls ab.
    • Mittels IduIT.Core.Localization.TimeZoneHelper.CreateCustomGermanTimeZoneInfoWithDstRules() kann jetzt eine TimeZoneInfo erstellt werden, welche die Regeln ab 1980 berücksichtigt, dabei ist folgendes zu beachten:
      • Bei TimeZoneInfo.ConvertTimeToUtc(value, myTzi) MUSS value.Kind == DateTimeKind.Unspecified sein, sonst gibt es eine Exception wegen falschen Typs.
      • Umgekehrt bei TimeZoneInfo.ConvertTimeFromUtc(value, myTzi) muss value.Kind == DateTimeKind.Utc sein
      • Änderungen an den Sommerzeitberechnungen vor 1980 (betrifft Jahre vor 1949) sind derzeit nicht enthalten).
    • Diese TimeZoneInfo wird jetzt standardmäßig im IduIT.Core.Json.Converter.AjaxDateTimeConverter verwendet.
    • Achtung: Dadurch ist die Umrechnung in den kritischen Zeiträumen jetzt im IE falsch, da dieser das fehlerhafte Modell aus Windows verwendet.
  • Neu: Neue statische Methode Sys.ServerModule.RunTask(), hierbei wird ein System.Thread.Task erstellt und sichergestellt, dass eine cardo Umgebung im Task Kontext verfügbar ist (Cardo4.Env).

  • Neu: Beim Aufruf einer nicht-statischen Ajax-Methode, wird die Klasseninstanz, wenn diese IDisposable ist, am Ende des Aufrufs "Disposed".

  • Neu: Unser ORM kann jetzt auch mit Member-Expressions umgehen.

  • Neu: Alle Fehlermeldungen werden in Ajax als JSON serialisiert. Neu ist, dass die Error-Message jetzt immer HTML Encoded ausgegeben wird.

    In der IduIT.Core.BaseException ist eine neue Eigenschaft MessageIsHtmlEncoded vorhanden, diese kann gesetzt werden, wenn der Inhalt bereits encoded ist.

CodeGen

  • Fix: Das Attribut TSMakeClassesNullable hat nicht bei Interface-Typen gewirkt, dafür wurden fälschlicherweise numerische Typen nullable.

    Zudem kann dieses Attribut jetzt auch am Assembly definiert werden.

Client

  • Neu: BreakingChange Geometry.GeometryUtils.makeValid hat in allen Überladungen jetzt einen neuen 1. Parameter "useBuffer0ForPolygons", seit MakeValid "richtig" implemntiert ist (bisher nur Buffer(0) ) entsprichte das Ergebnis nicht mehr den Erwartungen. Mit true für useBuffer0ForPolygons kann das alte Verhalten wieder erzwungen werden.

  • Neu: Loader für das dyn. Nachladen von Modulen. Bsp.:

    //ist TableData schon mal geladen ...
    let D = IduIT.Core.Web.Namespace.tryResolve("IduIT.cardo.Core.CoreModules.TableData.Ui.Table")
        ? IduIT.Promise.Deferred.resolve(undefined)
        : IduIT.Core.Web.ResourceCollector.registerScripts("IduIT.cardo.Core.CoreModules.TableData.Ui");
    
    D.done( => ...);
    
  • Neu: Kiss.Lang.String.splitQuotedString

  • Neu: Der Function zur Erzeugung des Tooltips beim Grid, welche in der IduIT.Core.Kiss.Ui.Grid.AbstractGrid.IAbstractGridConfig.rowTipRenderer definiert ist, wird jetzt als zweiter Parameter der Index der getroffenen Spalte mitgegeben. Damit ist es jetzt möglich, den Tooltip auch Spaltenabhängig zu erzeugen.

  • Fix: Beim IduIT.Core.Kiss.Ui.Grid.Selection.RowSelectionModel wird nicht mehr onBeforeChange/oChange gefeuert, wenn per Maus oder Tastatur der selbe Datensatz wir vorher, aber eine andere Spalte gewählt wird, da sich an der Selektion ja tatsächlich nichts ändert.

  • Fix: Bei der Autocomplete-Box bliebt der ausgwählte Wert (nur optisch) stehen, wenn dieser über einen Filter aus der Liste entfernt wurde, also eigentlich nicht mehr wählbar war.

  • Fix: Bei der Erstellung von Fenstern, für die der Konfig-Parameter modal nicht als boolean, sondern als "Component" übergeben wurde, wurde ein Eintrag in der Taskleiste erstellt.

  • Neu: ApplicationManager: Die Methode start im ApplicationManager macht jetzt genau das Gleiche wie getExistingOrStart und ist damit im Prinzip obsolet.

    BreakingChange: D.h. die Events onBeforeStart und onStart werden jetzt nur noch dann ausgelöst, wenn die Anwendung nicht bereits offen war.

    Die Methode getExistingOrStart hat einen neuem Parameter focusOnGetExisting, mit dem verhindert werden kann, dass die Anwendung fokussiert wird, wenn sie bereits offen ist.

  • Neu: BreakingChange Das Interface Kiss.Ui.Form.Field.IField<T> hat eine neue Methode eachField, die implementiert werden muss. Damit können Felder, die Unterelemente haben, besucht werden. Hier eine Standard-Implementierung:

    /**
    * Interface-Impl, hier immer nur für das aktuelle Feld
    * @param fn
    * @param scope
    */
    public eachField(fn: (item: Kiss.Ui.Form.Field.IField<any>) => void, scope?: object): void
    {
      fn.call(scope, this);
    }
    
  • Neu: Neue Klasse IduIT.Core.Geometry.GeometryFactory mit statischen Funktionen zur Erstellung von Geometrien.

  • Neu: IduIT.Core.Kiss.Tip.ITooltipConfig unterstützt jetzt auch die Optionen maxWidth und maxHeight. Sehr große Tooltips (z.B. aus der Sachdatenanzeige) konnten sonst den kompletten Bildschirm überlagern.

  • Fix: IduIT.Core.Kiss.Ui.Grid.Grid - bei gruppierten Spalten war die Berechnung der Breite der Header-Spalte falsch, wenn deren Überschrift breiter war als die Summe der Überschriften der gruppierten Spalten. Dadurch kam es zu einer optischen Verschiebung gegenüber den Zellinhalten der Tabelle.

  • Neu: IduIT.cardo.Core.CoreModules.Mapping.Ui.Grid.CoordinatesGrid : Die Koordinatenlisten, wie aus der IduIT.cardo.Core.Applications.StandaloneWktProxy.Components.GeometryInfoComponent bekannt (Kontextmenüeintrag "Informationen zur Geometrie" an vielen Stellen) steht jetzt auch als einzelne Komponente zur Einbindung in Applikationen zur Verfügung.

    Die GeometryInfoComponent verwendet diese jetzt auch. Das Konfig-Objekt entspricht der Kiss IComponentConfig mit zusätzlich der Geometrie, deren Stützpunkte angezeigt werden sollen (null ist möglich).

    Zu beachten ist, dass wie bei allen Grid-Komponenten entsprechende flex- bzw. height-Werte konfiguriert werden sollten, sonst sonst bleibt es bei einer Höhe von 0 Pixeln.

  • Neu: IduIT.Core.Kiss.Data.Group<TData> hat jetzt ebenfalls eine Methode .indexOf(record: TData). Diese gibt den Index des Records in dieser Gruppe (wenn diese die unterste Stufe ist), oder rekursiv den Index in der entsprechenden Untergruppe zurück. Wenn der Datensatz nicht vorhanden ist, wird -1 zurückgegeben.

  • Neu: IduIT.Core.Kiss.Data.View<TData, TId> verfügt jetzt über die Methode .indexOfInGroup(record: TData). Diese gibt den Index des Records innerhalb "seiner" Gruppe zurück. Wenn der View nicht gruppiert ist, wird das Ergebnis von .indexOf zurückgegeben. Wenn der Datensatz nicht vorhanden ist, wird -1 zurückgegeben.

  • Neu: Die IduIT.Core.Kiss.Ui.Grid.Column.RowNumberColumn verwendet jetzt standardmäßig die Nummerierung innerhalb der Gruppe, wenn möglich. Zu beachten ist allerdings, dass bei aktivierter Gruppennummerierung die Tastaturnavigation ("springe zu Zeile") deaktiviert ist.

  • Neu: IduIT.Core.PropertyModel.Ui.Form.Form

  • Neu: Neues Attribut (serverseitig) IEnumerableValueHandlerAsListAttribute, hiermit kann die Darstellung von List-Elementen als Liste erzwungen werden.

    • Neu: hat eine neue Property readOnly: boolean. Diese kann auch über die Konfig gesetzt werden. readOnly = true bewirkt, dass das alle Editor-Elemente "disabled" werden - also eine ReadOnly-Ansicht entsteht. Im Gegensatz zu Form.enabled = false deaktiviert dies aber nicht die Tab-Buttons.

    • Fix: Für komplexe Elemente wurden Fehler bei der Valdierung und dem Auslösen des Change-Events behoben.

  • Fix: Der Aufruf von z.B. selectAll() oder selectRange(...) am IduIT.Core.Kiss.Ui.Grid.Selection.MultiRowSelectionModel und davon abgeleiteten Klassen konnte mit einem Laufzeitfehler scheitern, wenn das Grid zu diesem Zeitpunkt noch nicht fertig initialisiert war.

    Die Initialisierung erfolgt erstmalig bei Anzeige des Grids. Damit konnten entweder der Context des SelectionModels, oder die RowCollection des Context zu diesem Zeitpunkt noch 'undefined' sein.

    In diesem Fall wird der Aufruf dieser Methoden jetzt verzögert, bis der Context fertig initialisiert wurde.

  • Neu: Update auf TypeScript 3.7 (bisher: 3.5)

    Entwickeln Sie selber cardo Erweiterungen, sollten Sie auch auf diese TypeScript Version aktualisieren.

    In der globalen tsconfig.base.json haben wir "disableSourceOfProjectReferenceRedirect":true hinterlegt, wir haben sonst einige Probleme bei Compile-On-Save beobachtet. Ggf. dieses in der eigenen tsconfig.json wieder deaktivieren.

  • Neu: Die XML Layouts für das PropertyModel haben einen neue Eigenschaft "overrideBaseClass", in dem Fall können die geerbten Definitionen von Basisklassen überschrieben werden.

  • Neu: Cardo4ApplicationProxy:

    • die Methode addMarkersFromIwanGeoms wurde um eine optionale Style-Angabe erweitert

    Neue Methoden:

    • showLayerInTree(layerName:string): void

      Ermöglicht die Anzeige einer Ebene im Themenbaum. Zu übergeben ist der Ebenenname (LXXX).

    • startAnyDataSourceEditorForLayer(layerName:string): void.

      Ermöglicht das Starten der AnyDataSource-Bearbeitung für eine Ebene. Zu übergeben ist der Ebenenname (LXXX).

    • selectRecordInGss(context: IduIT.cardo.Core.Applications.Gss.Enums.Context, topicTag: string): IduIT.Core.Web.Promise.IPromise<IduIT.cardo.Core.Applications.Gss.Components.Data.GssDataRecord>

      Ermöglicht das Starten der GSS in einem Dialog und das Abrufen der dort getätigten Auswahl. Es ist der Kontext zu übergeben und der Tag des Topics, aus dem man die Daten abrufen will.

    • hasWktHandler(): boolean - gibt zurück, ob bereits mit registerWktHandler ein WKT-Handler registriert wurde.

    • addApplicationReadyHandler() : void und applicationReady(): void - Hier kann man dem Proxy mitteilen, was getan werden soll, sobald die Anwendung bereit ist - und dann auch wann genau die Applikation bereit ist. Zum Beispiel:

      // TEIL A
      // Eine Anwendung mit einem äußeren und einem inneren Frame
      // Ein übergebener WKT kann erst verarbeitet werden, wenn der innere geladen ist. Das kann Cardo4 aber nicht wissen.
      // Wenn Cardo4 angedockt wird (äußerer Frame)...
      document.body.OnCardo324ApplicationProxyAttach = function (){
        // Proxy
        var c4p = document.body.Cardo324ApplicationProxy;
        // Puffer für WKTS
        var wkts = [];
      
        // Wenn die Anwendung bereit ist: 
        c4p.addApplicationReadyHandler(function (myApp) {
             // die aufgelaufenenen WKTs verarbeiten
             wkts.forEach(function (w) {
                 myApp.processWkt.call(myApp, w);
             });
         });
      
         c4p.registerWktHandler(function (wkt) {
             // die WKT vor dem Laden der Anwendung puffern.
             wkts.push(wkt);
         });
      };
      
      
      // TEIL B
      // Der innere Teil (Frame) der Anwendung
      // im onReady()
      
      // Proxy
      var c4p = parent.document.body.Cardo324ApplicationProxy;
      // Puffer für WKTS
      var wkts = [];
      
      // den Übergangshandler ersetzen - jetzt ist die Anwendung ja da:
      c4p.registerWktHandler(function (wkt) {
         // WKT verarbeiten
         this.processWkt(wkt);
      });
      
      // Die Handler aufrufen, in diesem Fall mit der Anwendungsinstanz, welche processWkt(wkt) implementiert...
      c4p.applicationReady(this);
      
      

      Alle Parameter (im Beispiel die Anwendungsinstanz) an applicationReady() werden genau so an die vorher registrierten Handler weitergegeben. Nach dem Aufruf der registrierten Handler wird die Liste derer geleert - ein weiterer aufruf von applicationReady() tut also nichts.

  • Neu: Neue Klasse IduIT.Core.Kiss.Ui.Tree.SearchMatchIterator für einfaches Suchen in Bäumen.

  • Neu: Neue Methode setHTML(v:string) für Kiss.Ui.Embed.IFrame

  • Neu: Neue Methode Kiss.Lang.BLob.toString(blob: Blob)

  • Neu: Kiss.Lang.Array.unique<T>(T[]) kann jetzt optional eine equalityCompareFn als zweiter Parameter übergeben werden, um auch verschiedene Instanzen von Objekten auf semantische Gleichheit prüfen zu können. Beispiel:

    // meineflaechen: IFlaeche[] mit { blattschnitte: ITk25[], geom: ... };
    // ITk25 mit { blattnr: number, blattname: string }
    const tk25allerFlaechen = Kiss.Lang.Array.mapMany(meineFlaechen, f => f.blattschnitte);
    const uniqueTk25 = Kiss.Lang.Array.unique(tk25allerFlaechen, (a, b) => a.blattnr === b.blattnr);
    
  • Neu: Hilfskomponente Kiss.Ui.DimensionalCharting.DcChartComponent zur Unterstützung bei der Verwendung von DC-JS/Crossfilter-basierten Diagrammen.

  • Neu: Neue Methode Kiss.Lang.Date.createAsUtc(d: Date | null) gibt ein neues Datum als UTC zurück, mit aus selben Werten des d-Parameters.

3rd Party

  • Update externer Bibliotheken:
    • Monaco Editor (GeoCSS und für GeoSQL) Version 0.18
    • TypeScript 3.7.2 zu 3.8.2
    • Open XML SDK 2.7 zu 2.9.1
    • Scriban von 1.2.7 auf 2.1.1
    • Newtonsoft.Json 11.0.2 auf 12.0.3

Zuletzt geändert: 24.02.2020 08:08:54 (erstmals erstellt 24.02.2020)