Hinweise zur Migration von jadice document platform 5.4 zu 5.5
Neue Funktionen und Features
- Die ComponentAddon Funktionalität wird durch eine neue Klasse com.levigo.jadice.swing.ui.ComponentAddonManagement angeboten.
- Die Methoden com.levigo.util.swing.plaf.LookAndFeelAddons.contribute(ComponentAddon) und com.levigo.util.swing.plaf.LookAndFeelAddons.uncontribute(ComponentAddon) wurden ersetzt durch die entsprechenden Methoden der Klasse ComponentAddonManagement.
Die Methoden der Klasse com.levigo.jadice.swing.ui.UIs sind mit Hilfe von CallOnEDT Annotationen mit Bedienungshinweisen bereichert worden.
- DOCPV-462: Laufende Lesevorgänge auf einem
Reader
können nun abgebrochen werden. - Die API ist erweitert worden um eine neue Klasse com.levigo.jadice.annotation.render.AnnotationGraphicsRenderer. Sie bietet die Möglichkeit eine Annotation in ein beliebiges Graphics2D zu rendern.
Text-Format
Text-Format bietet Byte-Order-Mark (BOM) Support an
BOM-Erkennung ist standardmäßig aktiviert, kann über die com.levigo.jadice.format.text.TextReaderSettings Klasse entsprechend konfiguriert werden:Methode Funktion public void enableByteOrderMarkDetection(boolean enableByteOrderMarkDetection) Ein-/Ausschalten der BOM-Erkennung public boolean isByteOrderMarkDetectionEnabled() Aktuellen BOM-Erkennungsstatus abfragen Unterstützte Byte-Order-Marks:
UTF-8 8-bit Unicode Transformation Format
UTF-16BE 16-bit Unicode Transformation Format, big-endian byte order
UTF-16LE 16-bit Unicode Transformation Format, little-endian byte order
UTF-32BE 32-bit Unicode Transformation Format, big-endian byte order
UTF-32LE 32-bit Unicode Transformation Format, little-endian byte order
Bei einer BOM-Erkennung wird intern das Encoding entsprechend überschrieben, d.h. das in den com.levigo.jadice.format.text.TextReaderSettings definierte Encoding wird ignoriert.
- Textformat erlaubt die zur Anzeige verwendete Auflösung vorzugeben.
Die Auflösung kann nun pro Text Dokument über die com.levigo.jadice.format.text.TextReaderSettings Klasse konfiguriert werden:
Methode Funktion public void setResolution(int resolution) Legt die zur Anzeige verwendete Auflösung fest public int getResolution() Zur Anzeige verwendete Auflösung abfragen
- Die BookmarkDemoApplication wurde entfernt. Eine beispielhafte Implementierung der Bookmark Funktionalität auf Basis der Outline-API wurde in die BasicDemoApplication aufgenommen.
- Neue Klassen in com.levigo.jadice.document.marshalling, um Marshalling zu konfigurieren.
- DOCPV-1897: Die FitModeCommands in der BasicDemoApplication wurden durch neue Commands aus der neuen Klasse com.levigo.jadice.appbase.commands.FitCurrentPageCommand ersetzt. Die alten Commands sind aber weiterhin vorhanden. Für Details, siehe Fehler beim Rendern des Makros 'jira': Der Jira-Server für dieses Makro konnte nicht gefunden werden. Das könnte an der Konfiguration des Anwendungslinks liegen..
- Das VisibleBoundsTool ist um einige Konfigurationsmöglichkeiten erweitert worden. Neben der Border um den sichtbaren Bereich kann nun auch eine Border entlang der Seitengrenze gemalt werden.;Der Bereich außerhalb des sichtbaren Bereiches und der sichtbare Bereich selbst können nun eingefärbt werden. Diese Border und Farben können über die folgenden Properties-Strings über den UIManager konfiguriert werden: "ThumbnailView.visibleBoundsPageBorder", "ThumbnailView.visibleBoundsAreaColor", "ThumbnailView.visibleBoundsPageAreaColor". Alternativ können diese Einstellungen dem Tool auch über entsprechende Setter gesetzt werden.
- DOCPV-3069: Die Legendenannotation (CalloutAnnotation) besitzt nun einen passenden Wrangler, um die Annotation GUI-seitig anzupassen. Für Details, siehe
Auftrennung von Komponenten
Aus der Historie heraus ist die document platform als ein Swing-Viewer entstanden. Im Laufe der Jahre entwickelten sich nach und nach weitere jadice Produkte, wie das jadice webtoolkit oder jadice server, die nur die Kernbestandteile der document platform, wie Document oder spezifische Formate, verwendeten. Parallel dazu häuften sich ebenfalls immer mehr Kunden Szenarios, die keine Swing Komponenten nutzten.
Vor diesem Hintergrund häuften sich die Forderungen nach einer Trennung der monolithischen Struktur der platform in einen Kern- und einen Swing Komponenten Anteil.
Das 5.5 Release setzt diese nachvollziehbare Anforderung um. Die Aufteilung umfasst die Komponenten jadice-core, jadice-swing und dist. jadice-core beinhaltet dabei die Kernbestandteile der document platform, wie Document oder spezifische Formate. jadice-swing beinhaltet Swing relevanten Klassen. Die dist Komponente beinhaltet eine Kombination der beiden oben beschriebenen Komponenten und bindet dabei alle deren Subkomponenten ein. Es kann als ein Nachfolger der ehemals umfassenden Struktur angesehen werden.
Die einzelnen Komponenten werden zukünftig unabhängig voneinander releast. Daher können die Versionsverläufe der Komponenten künftig divergieren.
Zur sauberen Trennung der Komponenten haben die neu entstandenen Komponenten jeweils eine eigene Maven GroupId erhalten.
Komponente | GroupId alt | GroupId neu |
---|---|---|
jadice-core | com.levigo.jadice.documentplatform | com.levigo.jadice.documentplatform.core |
jadice-swing | com.levigo.jadice.documentplatform | com.levigo.jadice.documentplatform.viewer |
dist | com.levigo.jadice.documentplatform | com.levigo.jadice.documentplatform.dist |
Verbesserungen
- Attachments
- DOCPV-2048: Attachments geben jetzt beim Aufruf von toString() einen technischen Identifikations-String zurück. Die bisherigen Informationen sind künftig über Properties des Attachments zugänglich.
- DOCPV-2041: Attachment Properties: Es ist nun möglich mit PropertyChangeListenern auf Änderungen an den Properties zu hören. Details, siehe
- DOCPV-1703, DOCPV-1704: I18n Properties: In älteren Versionen wurden Klammern und Weißzeichen über I18n abgelegt. In neueren Versionen wird statt dessen die Verwendung von Interpolation bevorzugt.
- DOCPV-2053: Verbesserte Hintergrundgrafik der Gradationskurve
- DOCPV-2194: Im Rahmen von Verbesserungen des Caches wurde die Konfigurationseinstellung jadice.viewer.cache.maximumExpiryObjectCountRatio aus den Jadice.properties korrigiert. Die Einstellung sollte eine Ratio sein, war aber in Wirklichkeit ein absoluter Wert. Dies ist nun korrigiert worden. Der Wertebereich dieser Einstellung liegt zwischen 0 < jadice.viewer.cache.maximumExpiryObjectCountRatio <=1.
- DOCPV-462: Die Preview-Ansicht im Öffnen Dialog bricht nicht mehr benötigte Lesevorgänge nun schneller ab. Zu diesem Zweck gab es Umstellungen in der Klasse
FileChooser
. Das Setzen einer eigenenReadStrategy
fällt weg. - DOCPV-2099: Vereinheitlichung/Pattern zur Erstellung/Installation des Contextes
- Diese Neuerung betrifft die folgenden Klassen. Die genannten Klassen haben durch die Änderung eine neue Methode protected Context initializeContext() erhalten.
Klasse vorheriger Methodenname (sofern vorhanden) com.levigo.jadice.appbase.preview.NavigablePreviewThumbnailRenderer - com.levigo.jadice.appbase.search.advanced.AlternativeSearchPanel - com.levigo.jadice.appbase.search.RolloutSearch - com.levigo.jadice.appbase.search.SearchFrame - com.levigo.jadice.appbase.search.SearchPanel - com.levigo.jadice.appbase.status.PageLayoutSnapIn protected Context installContext() com.levigo.jadice.appbase.status.PageSnapIn protected Context installContext() com.levigo.jadice.appbase.status.ZoomSnapIn protected Context installContext() com.levigo.jadice.appbase.PageNavScrollBarSnapIn - com.levigo.jadice.demo.applet.DemoAppletPanel protected Context createContext() com.levigo.jadice.iplus.demo.swing.FlexibleTreePanel - com.levigo.jadice.iplus.demo.swing.IPlusFrame protected Context createContext() com.levigo.jadice.iplus.demo.swing.ViewerPanel protected Context createContext() com.levigo.jadice.demo.gradation.GradationFrame - com.levigo.jadice.demo.infotree.InfoTreeFrame - com.levigo.jadice.demo.infotree.InfoTreePanel - com.levigo.jadice.demo.BasicJadicePanel protected Context createContext() com.levigo.jadice.demo.jnlp.JNLPDemoFrame protected void createContext() org.jadice.util.swing.flextree.FlexibleTree protected Context createContext()
- Diese Neuerung betrifft die folgenden Klassen. Die genannten Klassen haben durch die Änderung eine neue Methode protected Context initializeContext() erhalten.
- Durch ein neues, verbessertes Font Rendering in der Version 5.5...
... hat BaseRenderSettings eine neue Antialiasing Einstellung für Shape und Text Rendering erhalten. Diese Einstellung kann über die Methoden BaseRenderSettings.getAntiAliasingMode() und BaseRenderSettings.setAntiAliasingMode(AntiAliasingMode) genutzt werden.
- ...ist ein neues Enum com.levigo.jadice.document.render.AntiAliasingMode mit den Einstellungen ON und Off geschaffen wurden.
- ...TextRenderSettings-Klasse nicht mehr benötigt und daher entfernt wurde.
- ...werden folgende Einstellungen nicht mehr benötigt:
Klasse ToggleFontRenderModeCommand TextRenderSettings.FontRenderMode (wird nicht mehr benötigt, da kein Java-AWT Font-Rendering verwendet wird) TextRenderSettings.AntiAliasingMode (Funktion ersetzt durch BaseRenderSettings.setAntiAliasingMode(AntiAliasingMode)) TiffConvertConfiguration.FontRenderingMode#AUTO, TiffConvertConfiguration.FontRenderingMode#SHAPE_RENDERING sind folgende Einstellungen überflüssig geworden:
com.levigo.jadice.format.text.TextReaderSettings#isAntiAliased(),
com.levigo.jadice.format.text.TextReaderSettings#setAntiAliased(..),
com.levigo.jadice.format.text.TextReaderSettings#isUsesFractionalMetrics(),
com.levigo.jadice.format.text.TextReaderSettings#setUsesFractionalMetrics(..)
- Vergabe von Swing Namen für GUI Komponenten
- An verschiedenen Stellen wurden Namen für Swing GUI Komponenten vergeben. Diese können bei Bedarf in einer Integration geändert werden.
- Für
MenuItem
s, die via Action/Command Framework erstellt werden, leitet sich der Name aus dem Key inactions.properties
ab.
- Einheitliche Namensgebung für Qualified Log Messages. Details, siehe
- Ein neuer Cache wird als Standardcache verwendet, der Geschwindigkeitsvorteile und erweiterte Funktionalitäten (Statistiken, Listener, JMX-Beans, dynamische Expiry-Strategien) bietet. Darüber hinaus wird immer noch die Möglichkeit geboten, den bisherigen Cache zu verwenden. Details sind in der Dokumentation ersichtlich.
Das Laden von Fonts wurde für Integratoren konfigurierbarer gestaltet. Die im Demo-Code verfügbaren Klassen:
- com.levigo.jadice.demo.font.SwingFontEnvironments
- com.levigo.jadice.demo.font.FontEnvironments
bieten eine beispielhafte Implementierung der Konfiguration und können in Integrationen übernommen werden. Über den Aufruf *FontEnvironments#configureFontEnvironment() können die Fonts beim Start der Anwendung konfiguriert und geladen werden.
Die Klasse SwingFontEnvironments schließt die Konfiguration aus FontEnvironments mit ein. Sollte keine GUI-Komponente in der Integration vorhanden sein, genügt die Konfiguration aus der Klasse FontEnvironments.
Verschiebungen/Umbenennungen von Klassen
alt | neu | Anmerkungen |
---|---|---|
JadiceFilterDemoApplication (default package) com.levigo.jadice.swing.filter. ResampleFilterCommand | com.levigo.jadice.demo.* | ResampleFilterCommandwurde aus einem separaten demo Modul in das allgemeine demo Modul übernommen. |
com.levigo.jadice.swing.JadiceComponentAddon | com.levigo.jadice.swing.ui.JadiceComponentAddon | |
com.levigo.**.*Reader | com.levigo.**.internal.*Reader | Alle konkreten FormatReader Implementationen sind nun internal API. Das Interface bleibt unverändert public.
|
com.levigo.**.*PageSegment | com.levigo.**.internal.*PageSegment | Alle konkreten PageSegment Implementationen sind nun internal API. Das Interface bleibt unverändert public.
|
com.levigo.jadice.swing.util.UI | com.levigo.jadice.swing.ui.UIs | |
com.levigo.jadice.swing.util.DebugActionCreationFailureLogger | com.levigo.jadice.appbase.DebugActionCreationFailureLogger | |
com.levigo.jadice.swing.infotree | com.levigo.jadice.appbase.flextree | |
com.levigo.jadice.swing.pagestash | com.levigo.jadice.demo.pagestash | |
com.levigo.jadice.document.render.BaseRenderSettings.Rotation | org.jadice.util.base.geometry.QuadrantRotation | |
com.levigo.jadice.document.render.ThumbnailProvider com.levigo.jadice.document.render.DefaultThumbnailProvider | com.levigo.jadice.swing.thumbnailview.* | |
com.levigo.jadice.document.render.RenderControlInventory | com.levigo.jadice.document.render.RenderControlsInventory | |
com.levigo.jadice.tiffconverter.TiffConvertConfiguration.FontRenderingMode.ANTIALIAS | com.levigo.jadice.document.render.AntiAliasingMode.ON com.levigo.jadice.document.render.AntiAliasingMode.OFF | |
com.levigo.jadice.document.render.PageRenderer | com.levigo.jadice.document.render.PageGraphicsRenderer | |
com.levigo.jadice.document.render.PageImageRenderer#getRenderArea() com.levigo.jadice.document.render.PageImageRenderer#setRenderArea(...) | com.levigo.jadice.document.render.PageImageRenderer#getClip com.levigo.jadice.document.render.PageImageRenderer#setClip(...) | |
com.levigo.jadice.model.swing | com.levigo.jadice.iplus.demo.model | |
com.levigo.util.* | org.jadice.util.* | Alle ehemals Levigo-Utils Packages wurden zu Jadice-Utils Packages gewandelt. Alle Klassen, die vormals eine Package Signatur von com.levigo.util.* hatten, sind nun unter org.jadice.util.* zu finden. |
com.levigo.util.concurrent.tasks.applet | com.levigo.jadice.demo.applet.concurrent | Klassen wurden nach demo-applet verschoben im Zuge der Deprecation von Applets. demo-applet ist nicht mehr Teil der Standardauslieferung (siehe Applets für Details). |
com.levigo.util.swing.TGASwingUtil | org.jadice.util.base.swing.TGASwingUtil | |
com.levigo.util.swing.edt.CallOnEDT com.levigo.util.swing.edt.CallOffEDT | org.jadice.util.base.swing.edt.* | |
com.levigo.util.swing.BubbleBorder com.levigo.util.swing.DropShadowBorder com.levigo.util.swing.RolloutBorder com.levigo.util.swing.RoundedBorder com.levigo.util.swing.SlickBevelBorder | org.jadice.util.swing.borders.* | |
com.levigo.util.swing.Rectangles | org.jadice.util.base.geometry.Rectangles | |
com.levigo.util.swing.IconManager com.levigo.util.swing.ArrowIcon com.levigo.util.swing.BorderIcon | org.jadice.util.swing.icon.* | |
com.levigo.util.swing.PopupMenuLauncher | org.jadice.util.swing.menu.PopupMenuLauncher | |
com.levigo.util.swing.CollapsiblePane com.levigo.util.swing.FlipFlopCollapsiblePanel com.levigo.util.swing.FadeablePane com.levigo.util.swing.ButtonRowLayout | org.jadice.util.swing.layout.* | |
com.levigo.util.swing.DropDownToggleButton com.levigo.util.swing.NonUglyActionButton com.levigo.util.swing.PopupButton com.levigo.util.swing.JButtonGroup com.levigo.util.swing.Hyperlink | org.jadice.util.swing.button.* | |
com.levigo.util.swing.action.ActionFactory | org.jadice.util.swing.action.factories.* | |
com.levigo.util.swing.action.Context | org.jadice.util.swing.action.context.* | |
com.levigo.util.swing.action.ActionCreationAdapter | org.jadice.util.swing.action.listener.* | |
com.levigo.util.swing.action.SelfDescribingCommand | org.jadice.util.swing.action.commands.* | |
com.levigo.util.swing.action.ActionJCheckboxMenuItem com.levigo.util.swing.action.ActionJButton com.levigo.util.swing.action.EllipseJToolbar | org.jadice.util.swing.action.components.* | |
com.levigo.util.base.glazedlists.* | org.jadice.util.glazedlists.* | |
com.levigo.jadice.document.creator | com.levigo.jadice.document.composite | AbstractCompositePageSegment, CompositePageSegment und DynamicCompositePageSegment wurden in das neue package verschoben. Die restlichen Klassen und Interfaces des alten creator-packages wurden entfernt. |
Änderungen innerhalb von Klassen
Klasse | Änderung | Anmerkungen |
---|---|---|
com.levigo.util.base.collections.FrozenList | Factory Methods statt direkter Konstruktion via Konstruktor | Die Factory Methods sind zusätzlich null-safe. Im Fall eines null-Parameters oder eines leeren Parameters (z. B. leeres Array, leere Liste) wird die leere FrozenList zurückgegeben, die auch mittels der Factory Method empty() direkt angefordert werden kann. |
com.levigo.jadice.swing.BasicViewer.getScrollPane() | Rückgabewert JScrollPane | BarSnapInScrollPane wird nicht mehr unterstützt, statt dessen wird JScrollPane verwendet |
com.levigo.jadice.document.read.ReaderListener.ReaderEvent | Korrektur der Vererbungshierarchie: SourceID wird nicht mehr implementiert. | Instanzen von ReaderEvent sind nun keine Instanzen von SourceID mehr. Die bisher von SourceID vorgeschriebenen Methoden existieren jedoch nach wie vor. Details unter
|
com.levigo.jadice.printer.PrintJobConfiguration#getSourcePages | Umbenannt zu getAvailablePages | |
com.levigo.jadice.printer.PrintManager.executePrintJob(PrintJobConfiguration, AbstractPrintDialog) | Änderung der Parameter. Kann nun mit AbstractPrinter oder PrintJobConfiguration aufgerufen werden. | Muss der PrintJob mit einem Dialog gestartet werden, kann die Funktion über die Klasse com.levigo.jadice.swing.printer.SwingPrintManager mit dem entsprechenden Dialog aufgerufen werden. |
Nicht mehr unterstützte und entfernte Elemente
com.levigo.util.base.MimicryThrowable
- com.levigo.util.base.collections.EnumerationIterator
com.levigo.util.swing.text.NColumnsDigitDocument
com.levigo.util.swing.text.NColumnsTextDocument
com.levigo.util.swing.text.NColumsRangeSetDocument
com.levigo.util.swing.text.NumericDocument
com.levigo.util.swing.text.UppercaseDocument
- com.levigo.util.swing.Painter
- com.levigo.util.swing.Paths
- com.levigo.util.swing.PendingOperations
- com.levigo.util.swing.CollapsibleSection
- com.levigo.util.swing.dnd.VisualRepresentationSupportTransferHandler
- com.levigo.util.swing.AbstractGeometryFrame
- com.levigo.util.swing.AbstractPropertyGeometryFrame
- com.levigo.util.swing.SplitButton
- com.levigo.util.swing.ActionInterceptor
- com.levigo.util.swing.BarSnapInScrollPane
com.levigo.util.swing.LevigoSeparators
com.levigo.util.swing.SwingWorker
- com.levigo.jadice.swing.RenderControlAction
- com.levigo.util.swing.plaf.LookAndFeelAddons
com.levigo.util.swing.action.Privileges
com.levigo.util.swing.action.TreeSelectionContextUpdater
com.levigo.util.swing.action.PopupMenuButton
- com.levigo.jadice.webdemo.*
- com.levigo.util.swing.messaging.*
- Die Messaging Klassen sind veröffentlicht worden.
- Von jadice werden diese Klassen nicht mehr benutzt, es werden ausschließlich JVM Bordmittel zur Anzeige von Dialogen verwendet.
- Sollten Integratoren diese Klassen verwenden und weiter nutzen wollen, können sie unter dem genannten Github Projekt bezogen werden.
- com.levigo.jadice.document.lazy.AbstractLazyLoadTriggerPageSegment
- com.levigo.jadice.search.CopySelectedTextCommand
- War bereits deprecated. Ersatz: com.levigo.jadice.appbase.commands.CopySelectedTextCommand
- com.levigo.jadice.swing.commands.CopyRasterizedSelectionCommand
- War bereits deprecated. Ersatz: com.levigo.jadice.appbase.commands.CopyRasterizedSelectionCommand
- com.levigo.jadice.annotation.AnnotationRenderer
- War bereits deprecated. Diese Klasse ist Teil des internen Rendering Models und konnte somit nicht direkt durch Integratoren genutzt werden. Diese API Unschönheit ist korrigiert worden indem diese Klasse in das zugehörige interne Rendering Package verschoben wurde.
- com.levigo.jadice.document.creator.AbstractContentsPageSegment
- Das AbstractContentsPageSegment wurde entfernt. Die Funktionalität kann mit dem neuen com.levigo.jadice.document.contentscreator.ContentsCreatorPageSegment abgedeckt werden.
- com.levigo.jadice.printer.DecorationPageSegment
- Das DecorationPageSegment entfernt. Die Funktionalität kann ebenfalls dem neuen ContentsCreatorPageSegment abgedeckt werden.
- com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWranglerWingDings
- Klasse entfernt, kann nicht mehr in Annotationsprofilen definiert werden, com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler verwenden.
- Klasse entfernt, kann nicht mehr in Annotationsprofilen definiert werden, com.levigo.jadice.swing.internal.annotation.wranglers.TextAnnotationWrangler verwenden.
Applets
- Immer mehr Browser Hersteller verabschieden sich von einer Standard Plug-In Unterstützung. Damit wird die Ausführung von eingebetteten Flash, Silverlight, Java oder anderen Plug-In basierenden Technologien in absehbarer Zeit in Browsern nicht mehr möglich sein.
Auch Oracle bekennt sich zu einem "Plugin-Free Web" und kündigt die Abschaffung von Java Applets an. Das Unternehmen weist Entwickler darauf hin, dass die Nutzung von Applets zwar noch eingeschränkt möglich ist, der produktive Einsatz jedoch nicht mehr empfohlen wird. Oracle empfiehlt Webentwicklern stattdessen auf HTML 5 mit JavaScript oder alternativ auf installierbare Java-Anwendungen zu setzen. jadice folgt dieser Entwicklung. Mit der aktuellen Versionslinie 5.5. wird der produktive Einsatz von jadice Technologie im Applet nicht mehr empfohlen. Die betreffenden jadice Klassen sind als "Deprecated" markiert und sind nicht mehr Teil der Standard Auslieferung. Sie können jedoch auf Wunsch jederzeit angefordert werden. Für Web Lösungen wird als Alternative die Verwendung von jadice web toolkit (https://jadice.com/produkte/web-toolkit/) empfohlen.
Nicht mehr unterstützte und entfernte Methoden
Klassenname.Methodenname | Alternative |
---|---|
com.levigo.jadice.swing.thumbnailview.LightboxThumbnailTool.isActive() | com.levigo.jadice.swing.thumbnailview.LightboxThumbnailTool.isLightboxVisible() |
com.levigo.util.swing.plaf.LookAndFeelAddons.getUI(JComponent, String) | com.levigo.jadice.swing.ui.UIs.getUI(JComponent, String) |
int com.levigo.jadice.document.render.BaseRenderSettings.getZoomFactor() | int com.levigo.jadice.document.render.BaseRenderSettings.getZoom() |
com.levigo.jadice.document.render.BaseRenderSettings.setZoomFactor(int) | com.levigo.jadice.document.render.BaseRenderSettings.setZoom(float) |
Nicht mehr unterstützte und entfernte Konstruktoren
Klassenname.Konstruktor | Alternative |
---|---|
com.levigo.jadice.document.creator.CompositePageSegment.CompositePageSegment(Rectangle2D) | com.levigo.jadice.document.creator.CompositePageSegment.CompositePageSegment(Dimension2D) |
AFP / MODCA Format spezifische Anpassungen / Änderungen
Folgende Änderungen sind zu beachten:
Fontmodus-Definitionen in MODCAReaderSettings-Klasse geändert
Die Namen der Fontmodus-Definitionen in der com.levigo.jadice.format.modca.MODCAReaderSettings-Klasse wurden geändert, die Funktionweise ist unverändert.
Alter Name | Neuer Name |
---|---|
com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#MAPPED | com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#Mapped |
com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FOCA_GLYPH | com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FocaOutline |
com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FOCA_RASTER | com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FocaRaster |
'jadice.viewer.afp-size-behaviour-overlay' Parameter in Jadice.properties Datei wird nicht mehr unterstützt
Der Parameter 'jadice.viewer.afp-size-behaviour-overlay' wird in der Jadice.properties Konfigurationsdatei nicht mehr unterstützt und wird von der Klasse com.levigo.jadice.format.modca.MODCAReaderSettings#PageSizeMode abgelöst:
Alte Definition in Jadice.properties Datei | Neue Definition | Beschreibung |
---|---|---|
0 | PageSizeMode#Adjust | Dynamische Anpassung, die Seitenbreite und / oder Seitenhöhe des Overlay wird verwendet, wenn diese größer als die der Hauptseite ist (Standardeinstellung) |
1 | PageSizeMode#None | Overlay-Seitengröße wird ignoriert |
2 | PageSizeMode#Force | Overlay-Seitengröße (Breite und Höhe) wird verwendet, Seitengröße der Hauptseite wird überschrieben |
'jadice.viewer.afp-show-inline-annotation' Parameter in Jadice.properties Datei wird nicht mehr unterstützt
Der Parameter 'jadice.viewer.afp-show-inline-annotation' wird in der Jadice.properties Konfigurationsdatei nicht mehr unterstützt.
Die Einstellung kann in der Klasse com.levigo.jadice.format.modca.MODCAReaderSettings über die Methode setShowAnnotations(boolean) konfiguriert werden.
Page-Size-Modification Parameter in Jadice.properties Datei wird nicht mehr unterstützt
Die Parameter
- jadice.viewer.afp-page-size-modification
- jadice.viewer.afp-page-size-modification.ci
- jadice.viewer.afp-page-size-modification.nci
werden in der Jadice.properties Konfigurationsdatei nicht mehr unterstützt.
Die Einstellungen können nun über die com.levigo.jadice.format.modca.MODCAReaderSettings-Klasse in den Properties-Einstellungen beim Ladevorgang definiert / registiert werden, die Parametername wurden geändert:
Alter Name in Jadice.properties Datei | Neuer Name für MODCAReaderSettings-Klasse | Beschreibung |
---|---|---|
jadice.viewer.afp-page-size-modification | page-size-modification | Allgemeine Definition für CI- / NCI-Dokumente |
jadice.viewer.afp-page-size-modification.ci | page-size-modification.ci | Definition nur für CI-Dokumente |
jadice.viewer.afp-page-size-modification.nci | page-size-modification.nci | Definition nur für NCI-Dokumente |
Die Definitionen können als Key-Value-Paar (jeweils Datentyp String) via getProperties()-Methode registiert werden:
Reader reader = new Reader(); |
---|
Konfiguration von Properties-Dateien beim Ladevorgang
Fontspezifische Properties-Dateien können nun für jeden Ladevorgang über die com.levigo.jadice.format.modca.MODCAReaderSettings-Klasse in den Properties konfiguriert werden.
Hierzu muss die Properties-Datei in ein Java-Properties-Objekt geladen werden und mit entsprechendem Namen registriert werden.
Folgende Properties-Dateien können MODCAReaderSettings-Klasse registriert werden:
- FocaCodepage.properties
- FocaFontFace.properties
- FocaMappedFont.properties
- FocaCharMap.properties
- CharMap.properties
- FontMap.properties
- CodePage.properties
- CodedFonts.properties
Codebeispiel für Registrierung anhand 'FontMap.properties' Datei:
// Laden der Properties-Datei // Registration der 'FontMap.properties' Properties-Instanz |
---|
'Fonts.properties' Datei wird nicht mehr unterstützt
Die Fonts.properties Datei wird im Standardprodukt (DOCP MODCA-Format) nicht mehr unterstützt.
Für die Verwendung der Fonts.properties Datei gibt es eine FontFactory-Implementation (com.levigo.jadice.appbase.font.factory.FontsPropertiesFontFactory), die auch als Quellcode zur Verfügung steht, falls anwendungsspezifische Änderungen vorgenommen werden müssen.
Die FontFactory-Implementation muss in in der ReaderSettings-Klasse beim Ladevorgang registriert werden:
Reader reader = new Reader(); |
---|
AFP / MODCA spezifische FontAttributeSet-Attribute für FontFactory-Abfrage
Bei einer Fontabfrage in einer FontFactory-Implementation (siehe Klasse com.levigo.jadice.document.font.factory.FontFactory) vom AFP / MODCA Format aus, werden zusätzliche formatspezifische Fontattribute definiert um einen Font eindeutig identifizieren zu können.
Weitere Hinweise / Erklärungen zum Thema FontFactory / FontAttributeSet / FontManager sind in der Entwicklerdokumentation zu finden.
Übersicht, wann eine Fontabfrage ausgeführt wird (siehe auch Klasse com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode):
- Bei der Verwendung des Fontmodus FontMode#Raster wird eine Abfrage nur ausgeführt, wenn keine passenden Fontresourcen gefunden werden. In diesem Fall stehen keine Rasterdaten oder ein Vektor- / Outline-Font für die Darstellung zur Verfügung, eine Abfrage zur Ermittlung einer Ersatzschriftart wird ausgeführt.
- Bei der Verwendung des Fontmodus FontMode#Outline (Rasterfont wird auf Vektor-/Outline-Font gemappt) wird eine Abfrage nur bei einem Rasterfont ausgeführt. Ist der Font in den Fontresourcen ein Vektor-/Outline-Font, wird dieser auch verwendet, es erfolgt keine Abfrage.
- Bei der Verwendung des Fontmodus FontMode#Mapped wird immer eine Abfrage ausgeführt.
- Bei Systemfontsubstitutionen wird unabhängig vom Fontmodus immer eine Abfrage ausgeführt
Aufbau und Funktion einer Fontabfrage
Die in der ReaderSettings-Klasse registrierten FontFactory-Implementationen werden mit einer FontAttributeSet-Klasse (siehe com.levigo.jadice.document.font.attribute.FontAttributeSet) abgefragt, die die entsprechenden Attribute und Werte des Fonts beinhalten.
Folgende Attribute werden definiert und in der FontAttributeSet-Abfrage abgelegt:
- Attribut für Fontname (Klasse com.levigo.jadice.document.font.attribute.name.FontName)
- Fontspezifische Stilinformationen 'plain / normal' (Klasse com.levigo.jadice.document.font.attribute.style.Plain), 'bold / fett' (Klasse com.levigo.jadice.document.font.attribute.style.Bold), 'italic / kursiv' (Klasse com.levigo.jadice.document.font.attribute.style.Italic)
Zusätzlich werden noch formatspezifische Attribute definiert, abhängig von der vorliegenden Schriftdefinition / Klassifizierung:
- Name des Characterset, z.B. 'C0N20060' (Klasse com.levigo.jadice.format.modca.fontmanager.attribute.name.CharacterSetName)
- Coded-Font-Name, z.B. 'X0H21000' (Klasse com.levigo.jadice.format.modca.fontmanager.attribute.nameCodedFontName)
- Name der Codepage, z.B. 'T1V10273' (Klasse com.levigo.jadice.format.modca.fontmanager.attribute.name.CodepageName)
- Name der Systemfont-Definition, z.B. '904' (Klasse com.levigo.jadice.format.modca.fontmanager.attribute.name.MappedFontName)
- Referenzname auf ein Fontobjekt, z.B. 'ArialFett' (Klasse com.levigo.jadice.format.modca.fontmanager.attribute.name.ReferenceName)
Verwendung von jadice Technologien in Applets nicht mehr empfohlen
Immer mehr Browserhersteller verabschieden sich von einer Standard Plug-In Unterstützung. Damit wird die Ausführung von eingebettetem Flash, Silverlight, Java oder anderen Plug-In basierenden Technologien in absehbarer Zeit in Browsern nicht mehr möglich sein.
Auch Oracle bekennt sich zu einem "Plugin-Free Web" und kündigt die Abschaffung von Java Applets an. Das Unternehmen weist Entwickler darauf hin, dass die Nutzung von Applets zwar noch eingeschränkt möglich ist, der produktive Einsatz jedoch nicht mehr empfohlen wird. Oracle empfiehlt Webentwicklern stattdessen auf HTML 5 mit JavaScript oder alternativ auf installierbare Java-Anwendungen zu setzen.
jadice folgt dieser Entwicklung. Mit der aktuellen Versionslinie 5.5 wird der produktive Einsatz von jadice-Technologie im Applet nicht mehr empfohlen. Die betreffenden jadice-Klassen sind als "Deprecated" markiert und sind nicht mehr Teil der Standard Auslieferung. Sie können jedoch auf Wunsch jederzeit angefordert werden.
Für Web Lösungen wird als Alternative die Verwendung von jadice web toolkit (https://jadice.com/produkte/web-toolkit/) empfohlen.
Neue Systemvoraussetzungen
- Die unterstützten Versionen der Java Virtual Machine wurden geändert. Vorausgesetzt wird nun eine Oracle Java VM in Version 8 (Java 8). Ältere Versionen oder Oracle Java VM ab Version 9 (Java 9) und neuer werden nicht unterstützt.