|
LEONARDI Application Composer - 8.9.0.40 by W4 S.A. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectleon.view.LyViewManager
public abstract class LyViewManager
Communication control layer --> View Will implement remote update notifications.
Field Summary | |
---|---|
static java.lang.String |
__VERSION
|
static short |
COMMAND_ALL
For message window : existence of the associated button. |
static short |
COMMAND_CANCEL
For message window : existence of the associated button. |
static short |
COMMAND_CLOSED
For message window : window closed (no button pressed). |
static short |
COMMAND_HELP
For message window : existence of the associated button. |
static short |
COMMAND_NO
For message window : existence of the associated button. |
static short |
COMMAND_NONE
For message window : existence of the associated button. |
static short |
COMMAND_OK
For message window : existence of the associated button. |
static short |
COMMAND_YES
For message window : existence of the associated button. |
static int |
EMPTY_AREA_HEIGHT
Height of an empty area when displayed in the graphical builder. |
static int |
EMPTY_AREA_WIDTH
Width of an empty area when displayed in the graphical builder. |
static int |
EMPTY_FORM_FIELD_HEIGHT
Height of an empty form field when displayed in the graphical builder. |
static int |
EMPTY_FORM_FIELD_WIDTH
Width of an empty form field when displayed in the graphical builder. |
static int |
EMPTY_FORM_HEIGHT
Height of an empty form when displayed in the graphical builder. |
static int |
EMPTY_FORM_WIDTH
Width of an empty form when displayed in the graphical builder. |
static int |
EMPTY_LABEL_HEIGHT
Height of an empty label when displayed in the graphical builder. |
static int |
EMPTY_LABEL_WIDTH
Width of an empty label when displayed in the graphical builder. |
static int |
EMPTY_MENUBAR_HEIGHT
Height of an empty menubar when displayed in the graphical builder. |
static int |
EMPTY_MESSAGES_HEIGHT
Height of an empty messages when displayed in the graphical builder. |
static int |
EMPTY_MESSAGES_WIDTH
Width of an empty messages when displayed in the graphical builder. |
static int |
EMPTY_TABLE_HEIGHT
Height of an empty table when displayed in the graphical builder. |
static int |
EMPTY_TABLE_WIDTH
Width of an empty table when displayed in the graphical builder. |
static int |
EMPTY_TOOLBAR_HEIGHT
Height of an empty toolbar when displayed in the graphical builder. |
static int |
EMPTY_TOOLBAR_WIDTH
Width of an empty toolbar when displayed in the graphical builder. |
static int |
EMPTY_TOP_AREA_HEIGHT
Height of an empty area with no parent area when displayed in the graphical builder. |
static int |
EMPTY_TOP_AREA_WIDTH
Width of an empty area with no parent area when displayed in the graphical builder. |
static short |
SHOW_LOCATION_PARAMETER_FULL_SCREEN
For show location : indicates whether newly opened window must be full screen. |
static short |
SHOW_LOCATION_PARAMETER_HEIGHT
For show location : height of the newly opened window. |
static short |
SHOW_LOCATION_PARAMETER_WIDTH
For show location : width of the newly opened window. |
static short |
SHOW_LOCATION_PARAMETER_X
For show location : x position of the newly opened window. |
static short |
SHOW_LOCATION_PARAMETER_Y
For show location : y position of the newly opened window. |
Constructor Summary | |
---|---|
LyViewManager(LyEnvironment environment)
Constructor. |
Method Summary | |
---|---|
void |
addDemandListener(LyDemandListener listener)
Adds the specified demand listener to receive demands (events) from this component. |
void |
addView(LyView view)
Add a view. |
boolean |
areViewManagerCompatible(LyViewManager otherViewManager)
Check if this view manager is compatible with the given view manager. |
abstract void |
askQuestion(LyComponent source,
java.lang.String message,
LyQuestionAnswerInterface client,
java.lang.Object clientData)
Ask a question to the user The method is asynchronous and the result is returned to the client in messageAnswer. |
void |
beep()
Emits a brief sound signal. |
LyChartConverter |
buildChartConverter(LyChart chart)
Build an instance of LyChartConverter corresponding to the internal view of the specified chart. |
java.lang.String |
buildErrorImage(java.lang.String imageKey,
short errorLevel)
Generate a valid error image for the object The image is added into the environment. |
abstract LyViewComponent |
buildInternalView(LyComponent component)
Build internal view. |
LyViewComponent |
buildInternalView(java.lang.String viewClassName,
LyComponent component)
Build internal view. |
LyViewComponent |
buildInternalView(java.lang.String packageName,
java.lang.String prefixName,
LyComponent component)
Build internal view. |
abstract void |
clearTemporaryResources()
Clear all the temporary resources used by the viewManager Implemented in subclasses. |
boolean |
containsView(LyView view)
Checks if a view is still known or was freed. |
abstract void |
copyToClipboard(java.lang.String text)
Copy a given text to the system clipboard. |
boolean |
encodeImage(java.lang.Object image,
java.lang.String imageDir,
java.lang.String imageFile)
Encodes an image to JPEG format. |
void |
execGui(java.lang.Runnable runnable)
Causes the run() method of the given runnable to be invoked by the user-interface thread asynchronously. |
void |
execGui(java.lang.Runnable runnable,
boolean synchronous)
Causes the run() method of the given runnable to be invoked by the user-interface thread either synchronously or asynchronously. |
abstract void |
exit(int code)
To exit an application. |
LyComponent |
findDefinition(java.lang.String componentId)
Retrieve a registered component by its id. |
void |
free()
Free the view manager. |
abstract void |
freeImage(java.lang.Object image)
Free the resources of the image if not in the cache. |
abstract java.lang.Object |
getColor(LyColor color)
Retrieves a Color object from a LyColor. |
int |
getControllerStackSize(java.lang.String stackName)
Returns the stack size (number of controller) for the given stack (or null for default). |
java.lang.String |
getCurrentWindowName()
Accessor to the target popup window name if using popup.This is stored on a per-thread basis Default mplementation always return null (used for web modes). |
abstract java.lang.Object |
getDefaultImage()
Constructs a default image. |
int |
getDelay()
Gets delay between plays. |
LyDemandTransmitter |
getDemandTransmitter()
Retrieves the DemandTransmitter which is a gateway between control and presentation layers. |
abstract java.lang.String |
getDownloadAction()
Return the action that allow to download temporary resources but dependant from the viewer type (for ex: url / partial url for web). |
LyEnvironment |
getEnvironment()
Gets the current environment. |
abstract java.lang.Object |
getFont(LyFont font)
Retrieves a Font object from a LyFont. |
int[] |
getMaxScreenSize()
Retrieves the viewport size available on the computer. |
int[] |
getMaxWindowSize()
Retrieves the maximum size of a window on the computer. |
LyPrintManager |
getPdfPrintManager(LyPrintDataInterface printDataInterface,
java.io.OutputStream output)
Gets PDF print manager. |
java.lang.String |
getPluginId()
Gets the plugin id. |
LyPrintManager |
getPrintManager(LyPrintDataInterface printDataInterface,
java.util.Properties properties)
Gets print manager. |
java.util.Properties |
getPropertiesFromContext(java.lang.String prefix)
Accessor to the properties file or parameter if specified in constructor. |
java.lang.String |
getRootURL()
Gets web root URL. |
abstract java.lang.Object |
getScaledInstance(java.lang.Object image,
int width,
int height)
Creates a scaled version of the given image. |
int[] |
getScreenSize(java.lang.Object component)
Retrieves the screen size. |
abstract int[] |
getSizes(java.lang.Object image)
Gets images sizes. |
java.lang.String |
getSlaveSessionClassName()
Returns the name of the Java class that must be used to instanciate a new slave session. |
abstract int |
getStringWidth(LyFont font,
java.lang.String text)
Retrieves the width of a string for a given LyFont. |
java.lang.String |
getTemporaryDir()
Return the temporary directory used to store temporary resources. |
abstract java.lang.String |
getTemporaryLocation()
Return the temporary directory used to store temporary resources but dependant from the viewer type (for ex: url / partial url for web). |
LyView |
getView(int idx)
Get a view from a specified index. |
LyView |
getView(java.lang.String id)
Get a view from a specified index. |
int |
getViewCount()
Retrieve a view. |
int |
getWaitingCounter()
Gets waiting counter. |
boolean |
hasPerspective()
Indicates if the view manager handles perspectives. |
boolean |
hasProperty(java.lang.String property)
Checks if the view manager has the given property. |
abstract boolean |
isMultiSession()
Indicates wether this view manager handles multiple user sessions or not. |
boolean |
isPortletMode()
Indicates whether this view manager is in portlet mode. |
boolean |
isRtlMode()
Indicates whether RTL (right to left) mode is activated |
abstract boolean |
isSameImage(java.lang.Object image1,
java.lang.Object image2)
Compare two images pixel by pixel. |
boolean |
isShared()
Indicates whether current view manager is being shared. |
java.util.Vector<LyComponent> |
loadDefinitions(java.io.InputStream xmlStream)
Load external definitions that can be used as templates for new components. |
java.util.Vector<LyComponent> |
loadDefinitions(java.lang.String xmlFile)
Load external definitions that can be used as templates for new components. |
abstract java.lang.Object |
loadImageFromStream(java.lang.Object component,
java.io.InputStream resource)
Retrieves an image from a Stream. |
LyAnswerInterface |
messageActionPerformed(java.lang.Object message,
int cmdResult)
Method used to call back the listener of the specified message window for the specified result. |
void |
moveCursor(LyComponent component)
Moves mouse on component. |
void |
prepareGui()
Prepares GUI to start. |
void |
processDemand(java.lang.String listenerId,
LyDemand demand)
Processes demands on this component. |
void |
raiseError(java.lang.String message)
Shows en error message to the end-user. |
void |
registerDefinition(LyComponent component)
Register component as definition. |
void |
removeDemandListener(LyDemandListener listener)
Removes the specified demand listener to receive demands from this component. |
void |
removeView(LyView view)
Removes a view. |
boolean |
replay()
Plays next item in test file. |
boolean |
repostGuiEvents()
Method for checking if events on data need to be reposted in GUI event queue. |
void |
setCurrentWindowName(java.lang.String name)
Accessor to the target popup window name if using popup.This is stored on a per-thread basis Default mplementation always return null (used for web modes). |
void |
setPluginId(java.lang.String pluginId)
Sets the plugin id. |
abstract void |
setWaiting(boolean status)
Set Waiting status for all view of the application Implemented in subclasses. |
void |
shareSession(java.lang.Object sharedSession,
java.util.Vector<java.lang.Object> oldSession,
java.lang.String applicationId)
Share a session with other sessions. |
void |
showComments(java.lang.String comments)
Show given comments to end-user. |
abstract void |
showError(LyComponent source,
java.lang.String message)
Shows a warning message to the user. |
abstract void |
showFile(LyComponent source,
java.lang.String location)
Shows a file to the user. |
abstract void |
showLocation(LyComponent source,
java.lang.String location,
boolean newWindow)
Shows a location to the user. |
abstract void |
showLocation(LyComponent source,
java.lang.String location,
boolean newWindow,
java.util.Hashtable<java.lang.Short,java.lang.String> parameters)
Shows a location to the user. |
abstract void |
showMessage(LyComponent source,
java.lang.String title,
java.lang.String icon,
java.lang.String message,
java.util.BitSet commands,
LyMessageAnswerInterface client,
java.lang.Object clientData)
Show a message to the user and return the selection code. |
abstract void |
showPDFPreview(LyComponent source,
java.lang.String location)
Shows a PDF file to the user. |
void |
showPerspective(java.lang.String moduleId,
java.lang.String perspectiveId)
Show the perspective corresponding to the perspectiveId. |
abstract void |
showWarning(LyComponent source,
java.lang.String message)
Shows a warning message to the user. |
void |
startGui(LyGuiClientInterface client)
Starts GUI. |
void |
stopGui(LyGuiClientInterface client)
Stops GUI. |
void |
swapSession(java.lang.Object newSession,
java.lang.Object oldSession,
java.lang.String applicationId)
Swap two sessions. |
void |
takeSnapshot(LyArea area,
java.lang.String file)
|
void |
takeSnapshot(LyView view,
java.lang.String file)
|
LyComponent |
unregisterDefinition(LyComponent component)
Unregister component definition. |
void |
updateControllersStackList(java.util.Hashtable<java.lang.String,java.util.Stack<LyViewController>> controllersStackList)
Updates the _controllerStackList parameter with the count of controllers from the controllersStackList parameter. controllersStackList must contain names of controller stacks as keys and stack of controllers as values. |
abstract boolean |
useCacheForImage(java.lang.String path,
java.lang.Object image)
Indicates whether given image may be cached. |
abstract void |
waitForLoading(java.lang.Object component,
java.lang.Object image)
Waits for the image loaging. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String __VERSION
public static final short COMMAND_CLOSED
public static final short COMMAND_OK
public static final short COMMAND_YES
public static final short COMMAND_ALL
public static final short COMMAND_NONE
public static final short COMMAND_NO
public static final short COMMAND_CANCEL
public static final short COMMAND_HELP
public static int EMPTY_AREA_WIDTH
public static int EMPTY_AREA_HEIGHT
public static int EMPTY_TOP_AREA_WIDTH
public static int EMPTY_TOP_AREA_HEIGHT
public static int EMPTY_FORM_WIDTH
public static int EMPTY_FORM_HEIGHT
public static int EMPTY_FORM_FIELD_WIDTH
public static int EMPTY_FORM_FIELD_HEIGHT
public static int EMPTY_LABEL_WIDTH
public static int EMPTY_LABEL_HEIGHT
public static int EMPTY_MESSAGES_WIDTH
public static int EMPTY_MESSAGES_HEIGHT
public static int EMPTY_TABLE_WIDTH
public static int EMPTY_TABLE_HEIGHT
public static int EMPTY_TOOLBAR_WIDTH
public static int EMPTY_TOOLBAR_HEIGHT
public static int EMPTY_MENUBAR_HEIGHT
public static final short SHOW_LOCATION_PARAMETER_X
public static final short SHOW_LOCATION_PARAMETER_Y
public static final short SHOW_LOCATION_PARAMETER_WIDTH
public static final short SHOW_LOCATION_PARAMETER_HEIGHT
public static final short SHOW_LOCATION_PARAMETER_FULL_SCREEN
Constructor Detail |
---|
public LyViewManager(LyEnvironment environment)
Method Detail |
---|
public void free()
free
in interface LyViewManagerInterface
public void prepareGui()
prepareGui
in interface LyViewManagerInterface
public void startGui(LyGuiClientInterface client)
startGui
in interface LyViewManagerInterface
client
- the GUI clientpublic void stopGui(LyGuiClientInterface client)
stopGui
in interface LyViewManagerInterface
client
- the GUI clientpublic void execGui(java.lang.Runnable runnable, boolean synchronous)
execGui
in interface LyViewManagerInterface
runnable
- Code to run on the user-interface thread.sychronous
- True is synchronous, false if asynchronous.public final void execGui(java.lang.Runnable runnable)
execGui
in interface LyViewManagerInterface
runnable
- Code to run on the user-interface thread.public abstract LyViewComponent buildInternalView(LyComponent component)
public LyViewComponent buildInternalView(java.lang.String packageName, java.lang.String prefixName, LyComponent component)
public LyViewComponent buildInternalView(java.lang.String viewClassName, LyComponent component)
public void addView(LyView view)
public void removeView(LyView view)
public boolean containsView(LyView view)
public LyView getView(int idx)
idx
- index of the view
public LyView getView(java.lang.String id)
idx
- index of the view
public int getViewCount()
public void updateControllersStackList(java.util.Hashtable<java.lang.String,java.util.Stack<LyViewController>> controllersStackList)
controllersStackList
- public int getControllerStackSize(java.lang.String stackName)
stackName
- the name of the controller stack or null if default stack is considered
public boolean hasProperty(java.lang.String property)
LyViewManagerInterface
hasProperty
in interface LyViewManagerInterface
property
- the property to find
public LyEnvironment getEnvironment()
LyViewManagerInterface
getEnvironment
in interface LyViewManagerInterface
public LyChartConverter buildChartConverter(LyChart chart)
chart
- the chart to convert
public abstract void clearTemporaryResources()
clearTemporaryResources
in interface LyViewManagerInterface
public abstract java.lang.String getTemporaryLocation()
getTemporaryLocation
in interface LyViewManagerInterface
public abstract java.lang.String getDownloadAction()
public abstract void setWaiting(boolean status)
public abstract void showWarning(LyComponent source, java.lang.String message)
source
- view element which raises the warningmessage
- warning messagepublic final void raiseError(java.lang.String message)
raiseError
in interface LyViewManagerInterface
message
- error messagepublic abstract void showError(LyComponent source, java.lang.String message)
source
- view element which raises the errormessage
- error messagepublic abstract void askQuestion(LyComponent source, java.lang.String message, LyQuestionAnswerInterface client, java.lang.Object clientData)
source
- view element which asks the questionmessage
- text of the questionclient
- registred to receive the response.clientData
- freely set data which will be returned with the response.public abstract void showMessage(LyComponent source, java.lang.String title, java.lang.String icon, java.lang.String message, java.util.BitSet commands, LyMessageAnswerInterface client, java.lang.Object clientData)
source
- view element which asks the questiontitle
- title of the message windowicon
- icon shown in the message windowmessage
- text of the messagecommands
- bitset which contains COMMAND_xxx valuesclient
- registred to receive the response.clientData
- freely set data which will be returned with the response.public abstract void showLocation(LyComponent source, java.lang.String location, boolean newWindow)
source
- view element which raises the locationlocation
- locationnewWindow
- indicates whether a new window must be openedpublic abstract void showLocation(LyComponent source, java.lang.String location, boolean newWindow, java.util.Hashtable<java.lang.Short,java.lang.String> parameters)
source
- view element which raises the locationlocation
- locationnewWindow
- indicates whether a new window must be openedparameters
- list of parameterspublic abstract void showFile(LyComponent source, java.lang.String location)
source
- view element which raises the locationlocation
- locationpublic abstract void showPDFPreview(LyComponent source, java.lang.String location)
source
- view element which raises the locationlocation
- locationpublic abstract void exit(int code)
exit
in interface LyViewManagerInterface
code
- exit code of the application.public abstract void copyToClipboard(java.lang.String text)
text
- the text to be copied to the clipboard.public int[] getScreenSize(java.lang.Object component)
getScreenSize
in interface LyViewManagerInterface
component
- The component used to retrieve the screen size.
public int[] getMaxScreenSize()
getMaxScreenSize
in interface LyViewManagerInterface
public int[] getMaxWindowSize()
public abstract boolean isMultiSession()
isMultiSession
in interface LyViewManagerInterface
public void beep()
beep
in interface LyViewManagerInterface
public abstract java.lang.Object getColor(LyColor color)
getColor
in interface LyViewManagerInterface
key
- The leonardi color.
LyColors
public abstract java.lang.Object getFont(LyFont font)
getFont
in interface LyViewManagerInterface
key
- The leonardi font.
LyColors
public abstract int getStringWidth(LyFont font, java.lang.String text)
getStringWidth
in interface LyViewManagerInterface
font
- The leonardi font.text
- The string value.
public abstract java.lang.Object getDefaultImage()
getDefaultImage
in interface LyViewManagerInterface
public abstract int[] getSizes(java.lang.Object image)
getSizes
in interface LyViewManagerInterface
image
- the image
public abstract java.lang.Object getScaledInstance(java.lang.Object image, int width, int height)
getScaledInstance
in interface LyViewManagerInterface
image
- The image to scale.width
- The width to which to scale the image.height
- The height to which to scale the image.
public abstract void waitForLoading(java.lang.Object component, java.lang.Object image) throws java.lang.InterruptedException
waitForLoading
in interface LyViewManagerInterface
image
- Image to load.component
- The image loading client
java.lang.InterruptedException
- if the wait is interruptuedpublic abstract java.lang.Object loadImageFromStream(java.lang.Object component, java.io.InputStream resource) throws java.io.IOException
loadImageFromStream
in interface LyViewManagerInterface
component
- The client of the image creation.resource
- stream inputStream to the image data
java.io.IOException
- if something is wrong during the processpublic abstract boolean isSameImage(java.lang.Object image1, java.lang.Object image2) throws java.lang.InterruptedException
image1
- first image to compareimage2
- second image to compare
java.lang.InterruptedException
- exception if problems on grabber or loading.public abstract void freeImage(java.lang.Object image)
freeImage
in interface LyViewManagerInterface
image
- The image that must be freed.public abstract boolean useCacheForImage(java.lang.String path, java.lang.Object image)
useCacheForImage
in interface LyViewManagerInterface
path
- The path of image that may be cached.image
- The image that may be cached.
public java.lang.String getCurrentWindowName()
public void setCurrentWindowName(java.lang.String name)
public LyPrintManager getPrintManager(LyPrintDataInterface printDataInterface, java.util.Properties properties)
public LyPrintManager getPdfPrintManager(LyPrintDataInterface printDataInterface, java.io.OutputStream output)
public java.lang.String buildErrorImage(java.lang.String imageKey, short errorLevel)
imageKey
- the key to the image without errorerrorLevel
- current error level.
public void showPerspective(java.lang.String moduleId, java.lang.String perspectiveId)
moduleId
- The id of the module which demands this display.perspectiveId
- The id of the perspective to display.public boolean hasPerspective()
public boolean encodeImage(java.lang.Object image, java.lang.String imageDir, java.lang.String imageFile)
image
- the image to encodeimageDir
- temporary directory (optional)imageFile
- the JPEG File
public boolean repostGuiEvents()
repostGuiEvents
in interface LyViewManagerInterface
public LyAnswerInterface messageActionPerformed(java.lang.Object message, int cmdResult)
messageWindow
- cmdResult
- public LyDemandTransmitter getDemandTransmitter()
public boolean replay()
public int getDelay()
public void takeSnapshot(LyView view, java.lang.String file)
public void takeSnapshot(LyArea area, java.lang.String file)
public java.lang.String getPluginId()
getPluginId
in interface LyViewManagerInterface
public void setPluginId(java.lang.String pluginId)
setPluginId
in interface LyViewManagerInterface
The
- plugin id.public void addDemandListener(LyDemandListener listener)
listener
- client for the demandpublic void removeDemandListener(LyDemandListener listener)
listener
- client for the demandpublic void processDemand(java.lang.String listenerId, LyDemand demand)
controllerId
- the demand is sent to the specified listener (LyDemandTransmitter
interface)public void moveCursor(LyComponent component)
public void showComments(java.lang.String comments)
public void swapSession(java.lang.Object newSession, java.lang.Object oldSession, java.lang.String applicationId)
newSession
- the new sessionoldSession
- the old sessionapplicationId
- the application idpublic void shareSession(java.lang.Object sharedSession, java.util.Vector<java.lang.Object> oldSession, java.lang.String applicationId)
sharedSession
- the shared sessionsharingSessions
- the list of sessions sharing the shared sessionapplicationId
- the application idpublic boolean isShared()
public boolean areViewManagerCompatible(LyViewManager otherViewManager)
otherViewManager
- the other view manager
public java.lang.String getRootURL()
getRootURL
in interface LyViewManagerInterface
public java.util.Vector<LyComponent> loadDefinitions(java.io.InputStream xmlStream)
xmlStream
- An xml stream that contains the templates definitions.
public java.util.Vector<LyComponent> loadDefinitions(java.lang.String xmlFile)
xmlFile
- File path of the XML file that contains the templates definitions.
public void registerDefinition(LyComponent component)
component
- Component to register in definitions list.
java.lang.IllegalArgumentException
- If a definition with given id was already registered.public LyComponent unregisterDefinition(LyComponent component)
component
- Component to unregister from definitions list.
public LyComponent findDefinition(java.lang.String componentId)
Id
- of the searched component.
java.lang.IllegalArgumentException
- If no definition found with given id.public int getWaitingCounter()
public java.util.Properties getPropertiesFromContext(java.lang.String prefix)
getPropertiesFromContext
in interface LyViewManagerInterface
prefix
- Prefix used for properties files name.
public java.lang.String getTemporaryDir()
getTemporaryDir
in interface LyViewManagerInterface
public boolean isRtlMode()
isRtlMode
in interface LyViewManagerInterface
public boolean isPortletMode()
public java.lang.String getSlaveSessionClassName()
|
(c) January 2013 - W4 S.A. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |