Hinweise zur Migration von jadice document platform 5.3 zu 5.4
Neue Funktionen und Features:
Loslösen der
PageSegmente von ihrer Eltern-Page, AusnahmeAnnotationPageSegment. Details unter DOCPV-1270.Nachfolgend gelistete
Commands haben nun viacanExecuteMethode eine sinnvollen Enabled Status erhalten und stehen nun innerhalb des jadice IPlus Demo Moduls im Source Code zur Verfügung. Details unter DOCPV-1298 und DOCPV-1299.PageNavigationCommandDocumentNavigationCommandItemNavigationCommandMetadataNavigationCommand
TextCursorTool: Neues Tool, das die Navigation in sowie die Auswahl von Text über die Tastatur entsprechend der Verhaltensweise eines Text-Editors erlaubt. Zur Verwendung muss dasTextCursorToolimToolManagerregistriert werden (ToolManager::register(Tool, boolean)). Weitere Hinweise finden Sie in Abschnitt Klassen- und Funktionsüberblick > Tools in der technischen Dokumentation).(Stamp-)ImageAnnotation: Bildinformation von ImageAnnotationen müssen nicht mehr vorab geladen werden, der Datenstrom kann nun direkt gesetzt werden. Zusätzlich ist ein neuerAnnotationPageSegmentEvent-Typ,com.levigo.jadice.annotation.AnnotationPageSegmentEvent.EventType.PROPERTY_STREAM_CONTENT,geschaffen worden, der Änderungen an den Bilddaten von Image Annotationen identifiziert.UncloseableSeekableInputStreamundUncloseableSubfileSeekableInputStreamstehen nun als Teil der Public API im Packagecom.levigo.jadice.document.iozur Verfügung. Details unter DOCPV-1307.Neues Verschlüsselungsverfahren aus PDF 32000:1-2008 Extension Level 3 (Revision 5, 256-bit AES) wird nun unterstützt. Achtung: 256-Bit-Verschlüsselungen werden von Oracle-JVMs in ihrer Standardkonfiguration nicht unterstützt. Warum und wie die Systemvoraussetzungen erfüllt werden können wird unter https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#importlimits beschrieben. Weitere Details unter DOCPV-947.
Unterstützung von durch Wang injizierte Transparenzen zur Anzeige von ImageAnnotationen(BMP).Details unter DOCPV-1258 und Untervorgängen.
- Es wird nun ein einheitliches Interface zum Setzen der Modifiers für die Aktivierung von Tools verwendet:
com.levigo.jadice.swing.tool.ModifierActivated. Siehe DOCPV-1421. Als Konsequenz daraus ändern sich einige Property-Namen:com.levigo.jadice.swing.pageview.MouseWheelZoomTool.setModifierMask(int)→setActivationModifiers(int)com.levigo.jadice.swing.pageview.PanTool.setModifierAndButtonMask(int)→setActivationModifiers(int)com.levigo.jadice.demo.gestures.MouseGestureSupport.setButtonAndModifierMask(int)→setActivationModifiers(int)com.levigo.jadice.swing.crosshair.CrossHairTool.setToggleFrozenModifier(int), com.levigo.jadice.swing.crosshair.CrossHairTool.setToggleFrozenMouseButton(int)→setActivationModifiers(int)com.levigo.jadice.swing.lens.HoverLensTool.setToggleFrozenModifier(String), com.levigo.jadice.swing.lens.HoverLensTool.setToggleFrozenMouseButton(int)→setActivationModifiers(int)
- Anzeige von Produkt Informationen: Es gibt einen neuen, optisch leichtgewichtigeren Dialog zur Anzeige von Produkt Informationen. Auf vielfachen Wunsch ermöglicht dieser Dialog das Kopieren der Version und Lizenz Informationen. Abgebildet wird die Funktion durch die Klasse com.levigo.jadice.swing.JadiceProductInformationWindow.JadiceProductInformationWindow(Frame). Das zugehörige Command findet sich unter com.levigo.jadice.swing.commands.ShowProductInfoWindowCommand. Diese Klassen lösen den bisherigen com.levigo.jadice.swing.JadiceProductInformationSplash und das zugehörige Command com.levigo.jadice.swing.commands.ShowProductInfoWindowCommand ab.
Verbesserung:
PropertyChangeListener:com.levigo.jadice.swing.commands.AbstractPageViewCommandwar aus historischen Gründen einPropertyChangeListener, der aber nie als solches verwendet werden konnte. Diese missverständliche Klassendefinition ist korrigiert worden,AbstractPageViewCommandimplementiertPropertyChangeListenernicht mehr.- Das Interface
com.levigo.jadice.document.PageSegmentSourceerbte in bisherigen Versionen vom Interfacecom.levigo.jadice.document.SourceIDdie folgenden drei Methoden:getReadID(),getStreamIndex()undgetStreamPageIndex(). Die Vererbung wurde nun zu einer Komposition geändert. EinePageSegmentSourceliefert daher jetzt übergetSourceID()eine Instanz vonSourceID. Diese identifiziert diePageSegmentSource. Die drei genannten Methoden werden vonPageSegmentSourcenicht mehr angeboten, dafür aber von der referenziertenSourceID. Zusätzlich schreibtSourceIDnun explizit vor, dass sinnvollehashCode()undequals(…)Methoden zur Verfügung gestellt werden müssen. - Typo in den Methoden Signaturen korrigiert:
com.levigo.jadice.document.metadata.MetadataNode.getPefix(String)wird zuMetadataNode.getPrefix(String)undcom.levigo.jadice.document.metadata.MetadataNode.getPefixes(String)wird zuMetadataNode.getPrefixes(String)
- Die Namensgebung des Moduls jadice-addon-infoprovider ist korrigiert worden in jadice-addon-infotree. Die neue Namensgebung ist nun passend zu den beinhalteten Komponenten und Features.
- Anmerkung: Die Umbenennung wurde auch in den Demo-Paketen für die entsprechenden Klassen-, Feld- und Methodennamen vorgenommen.
- Umbennung von Methoden innerhalb der Schnittstellen
GraphicalStateundGraphicalStateFactory. Eine detaillierte Liste der geänderten Methodennamen findet sich unter DOCPV-1254. - PDF-Verschlüsselung:
- Klassen-Verschiebung: Klassen, die sich auf den Standard Security Handler (Passwort-Verschlüsselung) der PDF Security API beziehen, wurden in ein separates Sub-Package verschoben. Details finden sich unter DOCPV-1332.
- Es kann nun entschieden werden, ob die Authentifizierung als User oder als Owner stattfinden soll. Details zur Änderung in DOCPV-1328
- Die Schnittstelle
DynamicTreeModule$ChangeListenerwurde umbenannt zuDynamicTreeModule$TreeCallback, da dieser Name den Zweck der Schnittstelle besser widerspiegelt. - Die Sichtbarkeit des Konstruktors
com.levigo.jadice.document.model.DocumentModelInfo.DocumentModelInfo(DocumentModelStatistics)wurde aufprivatereduziert. Das Erzeugen von Instanzen muss (wie auch bisher schon) über die statischenget(…)-Methoden der Klasse erfolgen. - Die Klasse
com.levigo.jadice.format.pdf.fontmap.PDFFontManagerMappingSettingswurde zucom.levigo.jadice.format.pdf.fontmap.PDFFontMappingumbenannt. Siehe DOCPV-1422. Folgende Änderungen sind an der Klasse
TextReaderSettingsvorgenommen worden.Der zu verwendende Font wird durch eine Instanz der Klasse
com.levigo.jadice.format.text.TextFontbestimmt.Die Text Rendering Hints
AntiAliasedundFractionalMetricshaben eigene Getter- und Setter erhalten.- Die Methode getFontRenderContext() entfällt, der FontRenderContext kann durch die Kombination aus den Text Rendering Hints
AntiAliasedundFractionalMetrics sowie einer Identity-AffineTransform gebildet werden. - Der zugehörige Vorgang findet sich unter DOCPV-1432.
API-Änderungen an den Klassen
com.levigo.jadice.annotation.ImageAnnotation/com.levigo.jadice.annotation.StampImageAnnotation
Neue Hierarchie: Basis ist nun diecom.levigo.jadice.annotation.ObjectAnnotationKlasse die weiterhin von dercom.levigo.jadice.annotation.RectangleAnnotationKlasse erbt um die Funktionalität des RectangleAnnotationWrangler's für die GUI-Interaktionen zu gewährleisten. Für die ObjectAnnotation existiert keine Renderer-Implementation für die Darstellung.Zugriff auf Inhalt:
alt:
public Page getPage()neu:
public SeekableInputStream getContentStream()Setzen des Inhalts:
alt:
public void setPage(Page page)neu:
public void setContentStream(SeekableInputStream contentStream) throws JadiceExceptionBeim Setzen wird versucht den Datenstrom via Reader-API zu laden. Das Laden dient der Erkennung des Bildformats und zur Feststellung, ob die Anzeige möglich ist. Tritt beim Laden ein Fehler auf wird ein
JadiceExceptionausgelöst. Nach erfolgreichem Laden wird der Datenstromzeiger wieder auf Anfang (Position 0) gesetzt. Es wird eine Warnung ausgegeben, wenn der Bildinhalt mehr als 1 Seite enthält. Es kann bei der Anzeige nur eine Bildseite dargestellt werden. Zum Schluss wird ein Event vom Typcom.levigo.jadice.annotation.AnnotationPageSegmentEvent.EventType.PROPERTY_STREAM_CONTENTausgelöst.- API-Änderungen an der Klassen
com.levigo.jadice.annotation.AnnotationPageSegmentEvent.EventType
Event-Typgibt es nicht mehr und wurde durchAnnotationPageSegmentEvent.EventType.PROPERTY_IMAGE_CONTENTersetztAnnotationPageSegmentEvent.EventType.PROPERTY_STREAM_CONTENT.
Nicht mehr unterstützte und entfernte Elemente:
com.levigo.jadice.ocr.ExampleOCRPageSegmentWie der Name schon verrät war diese Klasse Teil eines POC zur Anbindung von Tesseract.- Nachfolgend gelistete
Commands wurden aus dem jadice-model entfernt um quelloffen veröffentlicht zu werden. Sie stehen nun innerhalb des jadice IPlus Demo Moduls im Source Code zur Verfügung. Siehe DOCPV-1298 und DOCPV-1299.PageNavigationCommandDocumentNavigationCommandItemNavigationCommandMetadataNavigationCommand
- Entfernen einer seit langem als deprecated markierten Klasse:
com.levigo.util.mm.MaximumAgeCache. Siehe DOCPV-1339. - Sämtliche als deprecated markierten Methoden/Konstruktoren der Klasse
com.levigo.jadice.document.JadiceExceptionwurden entfernt. Die KonstanteJadiceException.TYPE_UNDEFINEDwurde ebenfalls entfernt, da durch den Wegfall der Methoden kein Anwendungsfall mehr für diese Konstante besteht. Siehe DOCPV-1239. - Die Klasse
PDFFontMappingSettingswurde nach langer deprecated-Phase entfernt. Ersatzklasse istcom.levigo.jadice.format.pdf.fontmap.PDFFontMapping. Siehe DOCPV-1422. - Die Methode AreaSelectionTool.paintHandles(Handle[], RenderParameters) war aufgrund der Verwendung von internal API nicht im Rahmen der öffentlichen API nutzbar. Siehe wurde daher aus der öffentlichen API entfernt. Diese Korrektur wurde im Rahmen von DOCPV-1412 vollzogen.
- Aus den Klassen com.levigo.jadice.swing.lens.HoverLensTool und com.levigo.jadice.swing.crosshair.CrossHairTool wurden alle als deprecated markierten Felder und Methoden entfernt. Diese Änderung umfasst die folgenden als deprecated markierten Einstellungen:
jadice.hover-lens.frozen-state-mode=enabled(1) undjadice.crosshair.frozen-state-mode=enabled(1).