Untergeordnete Seiten
  • Hinweise zur Migration von jadice document platform 5.4 zu 5.5
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

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:

      MethodeFunktion
      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:

      MethodeFunktion
      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 com.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException.
  • 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.

Auftrennung von Komponenten

Die jadice document platform wurde mit dem Release 5.5 in Subkomponenten aufgespaltet. Zum einen sind die Kernbestandteile wie das Dokument-Modell ab dieser Version in der Komponente jadice-core enthalten. Zum anderen sind die UI-Bestandteile (Swing) in die Komponente jadice-swing gewandert. Hintergrund ist, dass der HTML5-Viewer die Komponente jadice-core einbindet, das User-Interface aber webbasiert ist und daher keine Abhängigkeit zu den Swing-Bestandteilen besteht. Insbesondere wird es künftig aller Voraussicht nach häufiger Releases der Komponente jadice-core geben als Releases der Komponente jadice-swing. Die Versionsverläufe werden sich also bald anfangen zu unterscheiden.
Neben Releases dieser beiden Komponenten gibt es weiterhin Releases der Komponente document platform. Diese beinhaltet jeweils eine Kombination der beiden oben beschriebenen Komponenten und bindet dabei alle deren Subkomponenten ein. Zum Beispiel sind darin alle unterstützten Formate aus jadice-core und alle Addons aus jadice-viewer enthalten.

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 com.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException 
  • 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 eigenen ReadStrategy 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.
    • Klassevorheriger 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.PageLayoutSnapInprotected Context installContext()
      com.levigo.jadice.appbase.status.PageSnapInprotected Context installContext()
      com.levigo.jadice.appbase.status.ZoomSnapInprotected Context installContext()
      com.levigo.jadice.appbase.PageNavScrollBarSnapIn-
      com.levigo.jadice.demo.applet.DemoAppletPanelprotected Context createContext()
      com.levigo.jadice.iplus.demo.swing.FlexibleTreePanel-
      com.levigo.jadice.iplus.demo.swing.IPlusFrameprotected Context createContext()
      com.levigo.jadice.iplus.demo.swing.ViewerPanelprotected Context createContext()
      com.levigo.jadice.demo.gradation.GradationFrame-
      com.levigo.jadice.demo.infotree.InfoTreeFrame-
      com.levigo.jadice.demo.infotree.InfoTreePanel-
      com.levigo.jadice.demo.BasicJadicePanelprotected Context createContext()
      com.levigo.jadice.demo.jnlp.JNLPDemoFrameprotected void createContext()
      org.jadice.util.swing.flextree.FlexibleTreeprotected Context createContext()
  • 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 MenuItems, die via Action/Command Framework erstellt werden, leitet sich der Name aus dem Key in actions.properties ab.
  • Einheitliche Namensgebung für Qualified Log Messages. Details, siehe com.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
  • 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.

Verschiebungen/Umbenennungen von Klassen

altneuAnmerkungen

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.JadiceComponentAddoncom.levigo.jadice.swing.ui.JadiceComponentAddon 
com.levigo.**.*Readercom.levigo.**.internal.*ReaderAlle konkreten FormatReader Implementationen sind nun internal API. Das Interface bleibt unverändert public. com.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
com.levigo.**.*PageSegmentcom.levigo.**.internal.*PageSegmentAlle konkreten PageSegment Implementationen sind nun internal API. Das Interface bleibt unverändert public. com.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
com.levigo.jadice.swing.util.UIcom.levigo.jadice.swing.ui.UIs 
com.levigo.jadice.swing.util.DebugActionCreationFailureLoggercom.levigo.jadice.appbase.DebugActionCreationFailureLogger 
com.levigo.jadice.swing.infotreecom.levigo.jadice.appbase.flextreecom.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
com.levigo.jadice.swing.pagestashcom.levigo.jadice.demo.pagestashcom.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
com.levigo.jadice.document.render.BaseRenderSettings.Rotationorg.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.RenderControlInventorycom.levigo.jadice.document.render.RenderControlsInventorycom.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException

com.levigo.jadice.tiffconverter.TiffConvertConfiguration.FontRenderingMode.ANTIALIAS
com.levigo.jadice.tiffconverter.TiffConvertConfiguration.FontRenderingMode.NO_ANTIALIAS

com.levigo.jadice.document.render.AntiAliasingMode.ON

com.levigo.jadice.document.render.AntiAliasingMode.OFF

 
com.levigo.jadice.document.render.PageRenderercom.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.swingcom.levigo.jadice.iplus.demo.modelcom.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
   
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.appletcom.levigo.jadice.demo.applet.concurrentKlassen 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.Rectanglesorg.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
com.levigo.util.swing.action.BasicActionFactory
com.levigo.util.swing.action.BasicCommandFactory
com.levigo.util.swing.action.BasicMenuComponentFactory
com.levigo.util.swing.action.CommandFactory
com.levigo.util.swing.action.DefaultActionFactory
com.levigo.util.swing.action.DefaultCommandFactory
com.levigo.util.swing.action.DefaultMenuComponentFactory
com.levigo.util.swing.action.MenuComponentFactory
com.levigo.util.swing.action.NamedActionFactory
com.levigo.util.swing.action.NamedCommandFactory
com.levigo.util.swing.action.NamedMenuComponentFactory
com.levigo.util.swing.action.ResourceLocator

org.jadice.util.swing.action.factories.* 

com.levigo.util.swing.action.Context
com.levigo.util.swing.action.ContextListener
com.levigo.util.swing.action.ContextUtils

org.jadice.util.swing.action.context.* 

com.levigo.util.swing.action.ActionCreationAdapter
com.levigo.util.swing.action.ActionCreationListener
com.levigo.util.swing.action.CommandCreationAdapter
com.levigo.util.swing.action.CommandCreationListener
com.levigo.util.swing.action.MenuComponentCreationAdapter
com.levigo.util.swing.action.MenuComponentCreationListener

org.jadice.util.swing.action.listener.* 

com.levigo.util.swing.action.SelfDescribingCommand
com.levigo.util.swing.action.DummyCommand
com.levigo.util.swing.action.DelegateAction
com.levigo.util.swing.action.ContextualAction
com.levigo.util.swing.action.CommandAction
com.levigo.util.swing.action.Command
com.levigo.util.swing.action.ActionOnDoubleClick
com.levigo.util.swing.action.AbstractContextCommand

org.jadice.util.swing.action.commands.* 

com.levigo.util.swing.action.ActionJCheckboxMenuItem
com.levigo.util.swing.action.ActionJRadioMenuItem
com.levigo.util.swing.action.IconJMenuItem
com.levigo.util.swing.action.VisibilityEnabledJCheckboxMenuItem
com.levigo.util.swing.action.VisibilityEnabledJMenuItem
com.levigo.util.swing.action.VisibilityEnabledJRadioMenuItem
com.levigo.util.swing.action.GraphicsConfigurationValidateable

com.levigo.util.swing.action.ActionJButton
com.levigo.util.swing.action.ActionJRadioButton
com.levigo.util.swing.action.ActionJToggleButton
com.levigo.util.swing.action.NonUglyActionJToggleButton
com.levigo.util.swing.action.PopupJToggleButton

com.levigo.util.swing.action.EllipseJToolbar

org.jadice.util.swing.action.components.* 

com.levigo.util.base.glazedlists.*
com.levigo.util.swing.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ÄnderungAnmerkungen
com.levigo.util.base.collections.FrozenListFactory Methods statt direkter Konstruktion via KonstruktorDie 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 JScrollPaneBarSnapInScrollPane wird nicht mehr unterstützt, statt dessen wird JScrollPane verwendet
com.levigo.jadice.document.read.ReaderListener.ReaderEventKorrektur 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.atlassian.confluence.macro.MacroExecutionException: java.lang.NullPointerException
com.levigo.jadice.printer.PrintJobConfiguration#getSourcePages

Umbenannt zu getAvailablePages

 

 

 

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.

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.MethodennameAlternative
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.KonstruktorAlternative
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 NameNeuer Name
com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#MAPPEDcom.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#Mapped
com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FOCA_GLYPHcom.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FocaOutline
com.levigo.jadice.format.modca.MODCAReaderSettings#FontMode#FOCA_RASTERcom.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 DateiNeue DefinitionBeschreibung
0PageSizeMode#AdjustDynamische Anpassung, die Seitenbreite und / oder Seitenhöhe des Overlay wird verwendet, wenn diese größer als die der Hauptseite ist (Standardeinstellung)
1PageSizeMode#NoneOverlay-Seitengröße wird ignoriert
2PageSizeMode#ForceOverlay-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 DateiNeuer Name für MODCAReaderSettings-KlasseBeschreibung
jadice.viewer.afp-page-size-modificationpage-size-modificationAllgemeine Definition für CI- / NCI-Dokumente
jadice.viewer.afp-page-size-modification.cipage-size-modification.ciDefinition nur für CI-Dokumente
jadice.viewer.afp-page-size-modification.ncipage-size-modification.nciDefinition 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();

// Registration der 'page-size-modification' Definition
reader.getSettings(MODCAReaderSettings.class).getProperties().put("page-size-modification", "220-700x220-700:210x0;209-211x277-279:210x297;192-194x296-298:210x297");

// Registration der 'page-size-modification-ci' Definition
reader.getSettings(MODCAReaderSettings.class).getProperties().put("page-size-modification-ci", "220-700x220-700:210x0;209-211x277-279:210x297;192-194x296-298:210x297");

// Registration der 'page-size-modification-nci' Definition
reader.getSettings(MODCAReaderSettings.class).getProperties().put("page-size-modification-nci", "220-700x220-700:210x0;209-211x277-279:210x297;192-194x296-298:210x297");

 

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
InputStream is = ModcaFormat.class.getResourceAsStream("resources/FontMap.properties");
Properties properties = new Properties();
properties.load(is);
// Registration der 'FontMap.properties' Properties-Instanz
Reader reader = new Reader();
reader.getSettings(MODCAReaderSettings.class).getProperties().put("FontMap.properties", properties); 
Wird keine Properties-Instanz registriert, wird die entsprechende Standard-Properties-Datei aus dem MODCA-Format-Modul (Pfad 'com/levigo/jadice/format/modca/resources') verwendet.

 

'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();
// Bereits vorhandene FontFactory holen
FontFactory fontFactory = reader.getSettings(FontFactoryReaderSettings.class).getFontFactory();
// ChainedFontFactory-Instanz erstellen
ChainedFontFactory chainedFontFactory = new ChainedFontFactory(new FontsPropertiesFontFactory(), fontFactory);
// ChainedFontFactory-Instanz registrieren
reader.getSettings(FontFactoryReaderSettings.class).setFontFactory(chainedFontFactory);
Die Funktionalität der Fonts.properties Datei sollte für die bessere Wartbarkeit in eine anwendungsspezifische FontFactory-Implementation umgesetzt werden, die eine FontManager-Instanz verwendet (siehe auch Entwicklerdokumentation).

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.