public abstract class RenderControlsInventory extends Object implements Inventory<RenderControls,RenderSettings>
RenderControlsInventory
handle document and page specific render
controls belonging to a certain document instance.
Instances of this interface allow to get access to document and page specific render settings which is especially useful when the keep render settings mode is enabled.
This interface allows to get access to document and page specific render settings. With that it allows to change the render settings, too. To support multi viewer usage of one single document instance, viewers always works on snapshots of document render control inventories. As a consequence changes may not be reflected by any viewer which holds this document currently.
Therefore it is strongly recommended that developers do not change any of the render settings
while the associated document is hold by any viewer instance, if and only if the render
control instance is retrieved by a call of get(Document)
or
get(Document, boolean)
. Ignoring this recommendation would cause undesirable failures
and inconsistencies may happen.
Modifier and Type | Class and Description |
---|---|
static interface |
RenderControlsInventory.Synchronizer |
Constructor and Description |
---|
RenderControlsInventory() |
Modifier and Type | Method and Description |
---|---|
abstract void |
addInventoryRenderSettingsListener(InventoryRenderSettingsListener listener)
Adds a
InventoryRenderSettingsListener for receiving render settings change events. |
static RenderControlsInventory |
bindInventoryToDocument(Document doc,
RenderControlsInventory inv)
Binds the given inventory to the document.
|
static RenderControlsInventory.Synchronizer |
createDefaultSynchronizer()
Returns a default synchronizer which reflects document render settings changes into all page
render controls.
|
abstract RenderControlsInventory |
createSnapshot()
Creates a snapshot copy of this inventory instance.
|
static RenderControlsInventory |
get()
Creates and returns an empty
RenderControlsInventory . |
static RenderControlsInventory |
get(Document document)
Returns the
RenderControlsInventory for the given document. |
static RenderControlsInventory |
get(Document document,
boolean create)
Creates and returns a
RenderControlsInventory for given document. |
abstract RenderControls |
getDocumentRenderControls()
Return the documents render control
|
abstract List<InventoryRenderSettingsListener> |
getInventoryRenderSettingsListeners()
Returns a list of the registered
InventoryRenderSettingsListener . |
abstract RenderControls |
getPageRenderControls(Page page)
Return the page render control for the given page.
|
abstract RenderControls |
getPageRenderControls(Page page,
boolean create)
Return the page render control for the given page.
|
abstract boolean |
hasPageRenderControls(Page page)
Return whether the page has specific render control settings.
|
abstract void |
removeInventoryRenderSettingsListener(InventoryRenderSettingsListener listener)
Removes a
InventoryRenderSettingsListener . |
abstract void |
setSettingsSynchronizer(RenderControlsInventory.Synchronizer handler)
The default synchronizer reflects document render settings changes into all page render
controls.
|
static RenderControlsInventory |
unbindInventoryFromDocument(Document doc)
Unbinds any inventory from the document.
|
public static RenderControlsInventory get(Document document)
RenderControlsInventory
for the given document. If no
RenderControlsInventory
exists for given document, null
will be returned.document
- the document for which the RenderControlsInventory
is demandedRenderControlsInventory
for given document or null
if not
available.get()
,
get(Document, boolean)
public static RenderControlsInventory get(Document document, boolean create)
RenderControlsInventory
for given document. If no
RenderControlsInventory
exists for given document, the boolean parameter decides
whether a new one will be created, will be bound to the document and will be returned.document
- the document for which the RenderControlsInventory
is demandedcreate
- if no inventory exist for given document:
true
creates a new inventory, bind it to the document and return
it,false
null
will be returnedRenderControlsInventory
for given document or null
.get()
,
get(Document)
,
bindInventoryToDocument(Document, RenderControlsInventory)
public static RenderControlsInventory get()
RenderControlsInventory
. This inventory is not bound to
any document. It can be used to store render controls settings temporarily.RenderControlsInventory
get(Document)
,
get(Document, boolean)
,
bindInventoryToDocument(Document, RenderControlsInventory)
public static RenderControlsInventory.Synchronizer createDefaultSynchronizer()
RenderControlsInventory.Synchronizer
public static RenderControlsInventory bindInventoryToDocument(Document doc, RenderControlsInventory inv)
null
if the
document was not bind to another inventory beforeget(Document)
,
unbindInventoryFromDocument(Document)
public static RenderControlsInventory unbindInventoryFromDocument(Document doc)
null
if the
document was not bind to another inventory beforeget(Document)
,
bindInventoryToDocument(Document, RenderControlsInventory)
public abstract RenderControls getDocumentRenderControls()
getDocumentRenderControls
in interface Inventory<RenderControls,RenderSettings>
public abstract RenderControls getPageRenderControls(Page page)
null
will be returned.getPageRenderControls
in interface Inventory<RenderControls,RenderSettings>
page
- the page for which the page render control lookup is demandednull
if no page render control is
availablepublic abstract RenderControls getPageRenderControls(Page page, boolean create)
getPageRenderControls
in interface Inventory<RenderControls,RenderSettings>
page
- the page for which the page render control lookup is demandedcreate
- boolean flag. If no page render control for given page is available,
true
means a new one will be created and returned otherwise if the create
parameter is false
, null will be returned.null
if no page render control is
available and the create parameter is false
.public abstract boolean hasPageRenderControls(Page page)
page
- the page for which the page render control lookup is demandedpublic abstract RenderControlsInventory createSnapshot()
public abstract void setSettingsSynchronizer(RenderControlsInventory.Synchronizer handler)
RenderControlsInventory.Synchronizer
which will be called whenever a change of the
document render control happened.
To restore the default behavior use a default synchronizer which can be obtained by a call of
createDefaultSynchronizer()
.
If no synchronization should happen set null as RenderControlsInventory.Synchronizer
.
handler
- to synchronize document render settings changes into page render settingspublic abstract void addInventoryRenderSettingsListener(InventoryRenderSettingsListener listener)
InventoryRenderSettingsListener
for receiving render settings change events.listener
- the listener to registerpublic abstract void removeInventoryRenderSettingsListener(InventoryRenderSettingsListener listener)
InventoryRenderSettingsListener
.listener
- the listener to removepublic abstract List<InventoryRenderSettingsListener> getInventoryRenderSettingsListeners()
InventoryRenderSettingsListener
.
It is up to the implementation whether to return the internal listener collection or a copy of
this. Therefore changes made to the returned list must not be reflected in the internal
listener collection. Addition or removal of listeners should always be done with a call of
addInventoryRenderSettingsListener(InventoryRenderSettingsListener)
or
removeInventoryRenderSettingsListener(InventoryRenderSettingsListener)
.
Copyright © 2024 levigo holding gmbh. All rights reserved.