Interface Document
-
- All Superinterfaces:
Item,MetadataProvider,PermissionsProvider<Document>,PropertiesProvider
- All Known Subinterfaces:
UIDocument<C>
- All Known Implementing Classes:
AbstractDocument,BasicDocument,SwingUIDocument
public interface Document extends PermissionsProvider<Document>, Item, MetadataProvider
Represents a logical document. A logical document consists of a two-dimensional structure:- The first dimension are the
Pages. Pages are mere containers for data which can be displayed or manipulated. Each page consists of 1-nAbstractPageSegments, which occupy the document's layers for a page (see below). - The second dimension are the layers. Layers are virtual slots in the stack of data which represents a page. Layers are defined for the document as a whole, but pages are not required to have a page segment for each defined layer.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classDocument.BasicStateAn enum consisting of the default document states.static interfaceDocument.StateThis is a marker interface to be implemented by objects serving as state designators for documents.
-
Field Summary
Fields Modifier and Type Field Description static intBASE_RESOLUTIONThe base resolution.static StringPROPERTY_KEY_DISPLAY_NAMEA user property key for the name of the document to be presented to users such as in a window title bar etc..static StringPROPERTY_KEY_DOCUMENT_IDA user property key for the ID of an item in an archive with which the document is associated.static StringPROPERTY_KEY_FILE_NAMEA user property key for the name of the file from which the document originated.static StringPROPERTY_NAMEProperty change key for the 'name' property.static StringPROPERTY_PREFIX_PAGEA property name prefix used for bridged property changes from pages.static StringPROPERTY_PREFIX_USER_PROPERTYA property name prefix used for bridged property changes from user properties.static StringPROPERTY_STATEProperty change key for the 'state' property.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddDocumentInterceptor(DocumentInterceptor interceptor)Register aDocumentInterceptorto this document instance.voidaddDocumentListener(DocumentListener listener)Register aDocumentListenerto this document instance.booleanclose()Closes aDocument.voiddispose()Disposes of aDocumentperforming necessary clean-up tasks.StringgetName()Gets the document's name.PagegetPage(int pageIndex)Convenience method: return the page at the given page index.PagegetPage(int pageIndex, boolean create)Return the page at the given page index.intgetPageCount()Convenience method: determine the number of pages in this document.intgetPageIndex(Page page)Convenience method: determine the index of a page in this document.EventList<Page>getPages()Returns a list of pages in the document.Document.StategetState()booleanisDisposed()Return whether or not thisDocumenthas been disposed of.voidremoveDocumentInterceptor(DocumentInterceptor interceptor)Unregister aDocumentInterceptorfrom this document.voidremoveDocumentListener(DocumentListener listener)Unregister aDocumentListenerfrom this document.voidsetName(String name)Sets the document's name.booleansetState(Document.State state)Sets the current state of theDocument.-
Methods inherited from interface com.levigo.jadice.document.metadata.MetadataProvider
getMetadata
-
Methods inherited from interface com.levigo.jadice.document.PermissionsProvider
getPermissions
-
Methods inherited from interface com.levigo.jadice.document.util.PropertiesProvider
getProperties
-
-
-
-
Field Detail
-
PROPERTY_STATE
static final String PROPERTY_STATE
Property change key for the 'state' property.- See Also:
getState(),setState(State), Constant Field Values
-
PROPERTY_NAME
static final String PROPERTY_NAME
Property change key for the 'name' property.- See Also:
getName(),setName(String), Constant Field Values
-
PROPERTY_PREFIX_PAGE
static final String PROPERTY_PREFIX_PAGE
A property name prefix used for bridged property changes from pages.- See Also:
- Constant Field Values
-
PROPERTY_PREFIX_USER_PROPERTY
static final String PROPERTY_PREFIX_USER_PROPERTY
A property name prefix used for bridged property changes from user properties.- See Also:
- Constant Field Values
-
PROPERTY_KEY_FILE_NAME
static final String PROPERTY_KEY_FILE_NAME
A user property key for the name of the file from which the document originated.- See Also:
- Constant Field Values
-
PROPERTY_KEY_DISPLAY_NAME
static final String PROPERTY_KEY_DISPLAY_NAME
A user property key for the name of the document to be presented to users such as in a window title bar etc..- See Also:
- Constant Field Values
-
PROPERTY_KEY_DOCUMENT_ID
static final String PROPERTY_KEY_DOCUMENT_ID
A user property key for the ID of an item in an archive with which the document is associated.- See Also:
- Constant Field Values
-
BASE_RESOLUTION
static final int BASE_RESOLUTION
The base resolution. All calculations are based on this resolution. The base resolution is currently a 7200'th of an inch.- See Also:
- Constant Field Values
-
-
Method Detail
-
addDocumentListener
void addDocumentListener(DocumentListener listener)
Register aDocumentListenerto this document instance.- Parameters:
listener- the listener to register- Throws:
IllegalArgumentException- if parameter isnullIllegalStateException- if called on aDocumentwhich has been disposed of
-
addDocumentInterceptor
void addDocumentInterceptor(DocumentInterceptor interceptor)
Register aDocumentInterceptorto this document instance.- Parameters:
interceptor- the interceptor to register- Throws:
IllegalArgumentException- if parameter isnullIllegalStateException- if called on aDocumentwhich has been disposed of.
-
close
boolean close()
Closes aDocument. This includes performing a state transition toDocument.BasicState.CLOSEDand cleaning up resources. Both will only happen if all registeredDocumentInterceptors agree with the state change. In usual cases, this method should be preferred to callingdispose().- Returns:
- flag indicating whether the process passed successfully or not
- See Also:
for details about resource clean-up,will be asked to accept or deny the state change. Implementations could ask the user for acknowledgment.,gets the chance to perform save or clean-up actions when it receives the state change to new state .
-
dispose
void dispose()
Disposes of a
Documentperforming necessary clean-up tasks. DisposedDocuments will haveDocument.BasicState.CLOSEDas theirDocument.State. This method is not expected to ask registeredDocumentInterceptors for their consent about the state transition.DocumentListeners may or may not be informed about the state change. In most cases,close()should be used instead of this method.Since cleaning up releases any resources held by this
Document, it will no longer be practically useful afterwards. ADocumentwhich has been disposed of will refuse further changes on itself and may throw Exceptions if methods are called.Before calling dispose it is for this reason important to make sure that the
Documentto be disposed of is not registered with any other (GUI or non-GUI) component which might call methods later on.
-
isDisposed
boolean isDisposed()
-
getName
String getName()
Gets the document's name.
-
getPage
Page getPage(int pageIndex)
Convenience method: return the page at the given page index. Equivalent to. As an added convenience, callers need not lock the page list in order to be thread-safe.getPages().get(pageNumber)- Parameters:
pageIndex- the 0-based index of the page to be returned.- Returns:
- a
Pageornullif the page doesn't exist.
-
getPage
Page getPage(int pageIndex, boolean create)
Return the page at the given page index. Create it, if there is no page at this index at this point. As an added convenience, callers need not lock the page list in order to be thread-safe.- Parameters:
pageIndex- the 0-based index of the page to be returned.create- flag indicating if the page should be created if it doesn't exist.- Returns:
- a
Pageornullif the page doesn't exist andcreateisfalse. - Throws:
IndexOutOfBoundsException- if pageIndex < 0IllegalStateException- if called with parametercreate==trueon aDocumentwhich has been disposed of
-
getPageCount
int getPageCount()
Convenience method: determine the number of pages in this document. Equivalent to. As an added convenience, callers need not lock the page list in order to be thread-safe.getPages().size()- Returns:
- int the page number count
-
getPageIndex
int getPageIndex(Page page)
Convenience method: determine the index of a page in this document. Equivalent to. As an added convenience, callers need not lock the page list in order to be thread-safe.getPages().indexOf(page)- Parameters:
page- to search for- Returns:
- int the page number of the given page in this document, or -1 if this document does not contain the page
- Throws:
NullPointerException- if the page isnull
-
getPages
EventList<Page> getPages()
Returns a list of pages in the document. Please note that, unless stated otherwise by implementors, this list is not thread-safe. Care must therefore be taken to manipulate the page list with appropriate locking as detailed in the documentation ofEventList. As a convenience, a non-thread-safe page list may be wrapped usingGlazedLists.threadSafeList(EventList)to obtain a thread-safe one.- Returns:
- the list of pages or the empty list, if the document has been disposed of
-
removeDocumentListener
void removeDocumentListener(DocumentListener listener)
Unregister aDocumentListenerfrom this document.- Parameters:
listener- the listener to remove
-
removeDocumentInterceptor
void removeDocumentInterceptor(DocumentInterceptor interceptor)
Unregister aDocumentInterceptorfrom this document.- Parameters:
interceptor- the interceptor to remove
-
setName
void setName(String name)
Sets the document's name.- Parameters:
name- The name to set- Throws:
IllegalStateException- if called on aDocumentwhich has been disposed of.
-
getState
Document.State getState()
-
setState
boolean setState(Document.State state)
Sets the current state of the
Document.The document
Document.Stateis not only a simple information about a document instance, but also it provides the decision base of the enabled state for many document functionalities. If the document state is not set or is set to a wrong state, these functionalities may become disabled or fail to execute. Registered interceptors may disapprove state changes. Therefore the requested state is not necessarily the actual next state.- Parameters:
state- the new state- Returns:
- whether the state change was successful (
true) or rejected (false). - Throws:
IllegalStateException- if called on aDocumentwhich has been disposed of.- See Also:
Document.State,Document.BasicState,DocumentInterceptor
-
-