The Explorer Detail bean is a BI Beans thin bean, for use in an HTML-client application. It allows users to browse and search for objects in the BI Beans Catalog.
The Explorer Detail bean identifies the object that the user wants to open
or to delete. The object is actually opened or deleted by a listener that you
register with the bean. An ExplorerEvent
from the Explorer Detail
bean identifies whether the user wants to open or delete the object.
The ThinBeanUI
implementation of the Explorer Detail bean is the
oracle.dss.thin.beans.persistence.ExplorerDetail
class. The UINode
for the Explorer Detail bean is oracle.dss.thin.beans.persistence.ExplorerDetailBean
.
To render the Explorer Detail bean, your servlet must associate
the ExplorerDetail
object with the ExplorerDetailBean
object.
The JSP tag for this bean is the ExplorerDetail
tag. In the UIX Language, the definition element is the explorerDetailDef
element, and the UINode
is the explorerDetail
element.
You should store the
ExplorerDetail
in the HTTP session.
The Explorer Detail bean keeps track of the selected path and the object type.
When you use the Explorer Detail bean by itself, you must specify a folder
whose contents the Explorer Detail should display. To do this, you call the
setBIContext
method of the ExplorerDetail
object.
If your HTML-client application uses OLAP data, then set an MDFolder
as the BIContext
. If your application does not use OLAP data, then
set a PersistenceManager
as the BIContext
. The BIContext
that you set should also be stored in the browser session.
In the current release of BI Beans, since the Explorer Detail bean includes both browse and search capability for the BI Beans Catalog, there is no longer a need to use the Explorer Detail bean in conjunction with the Explorer Tree bean or the Explorer Search bean.
In order to conform with the Oracle Browser Look and Feel (BLAF) standards,
you have the option of displaying the Explorer Detail search controls in a separate
location in the page that contains the Explorer Detail bean. To do this, use
the Explorer Quick Search UINode
.
If you choose to use the Explorer Detail bean with the Explorer Tree, then
you connect the two beans by calling the setExplorerDetail
method
of the ExplorerTree
object. You do not have to set the BIContext
of the ExplorerDetail
. The BIContext
that you set
on the ExplorerTree
is automatically set on the ExplorerDetail
.
You can customize the Explorer Detail by setting its properties. For example, you can specify the columns to display and whether to show the bread crumbs.
When you use the Explorer Detail bean, you must implement an ExplorerListener
to listen for Delete events and for Select object and Select folder events.
The listener must actually delete the object. It must also respond to Select
object and Select folder events, by opening the object, for example.
The ExplorerDetail
sends an ExplorerEvent
to all
registered listeners whenever the user chooses to delete or to select an object
or folder. The listener that you register should call the getAction
method of the ExplorerEvent
to find out which event to handle.
If getAction
returns BIConstants.DELETE_EVENT
, then
the listener should delete the object from the BI Beans Catalog. If getAction
returns BIConstants.SELECT_OBJECT_EVENT
or BIConstants.SELECT_FOLDER_EVENT
,
then the listener should respond to the selection. To open the object, you retrieve
it from the Catalog. You might, alternately, export, print, or manipulate the
object in some way.
The getObjectName
method provides the path and name of the object, and the getObjectType
method provides the type of object that should be returned from the lookup
method of the BIContext
.
The ExplorerDetail
generates the following events, which are defined in the oracle.dss.thin.BIConstants
interface.
SELECT_FOLDER_EVENT
-- This event is generated when a user
clicks a folder. It is handled by the ExplorerDetail
.
SELECT_OBJECT_EVENT
-- This event is generated when a user
clicks an object other than a folder. It is handled by the ExplorerDetail
.
SUBMIT_FOLDER_EVENT
-- This event is generated when a user
selects a folder and clicks the Submit (or Apply) button in the Explorer
Detail. The event is handled by the SaveAs
dialog.
GOTO_ROW_EVENT
-- This event is generated when a user navigates
in the ExplorerDetail
.
FILTER_EVENT
-- This event is generated when a user selects
a type of object to view. It is handled by the ExplorerDetail
.
SEARCH_EVENT
-- This event is generated when a user clicks
the Go button to initiate a search. It is handled
by the ExplorerDetail
.
DELETE_EVENT
-- This event is generated from the Delete column.
The ExplorerDetail
passes this event to listeners.
The ExplorerDetail
handles the following events:
SELECT_FOLDER_EVENT
-- The ExplorerDetail
handles this event by making the selected folder current. It also fires an ExplorerEvent
to registered listeners.
SELECT_OBJECT_EVENT
-- The ExplorerDetail
handles this event by showing the object as selected. It also fires an ExplorerEvent
to registered listeners.
GOTO_ROW_EVENT
-- The ExplorerDetail
handles this event by making the specified row the first row that appears. This event has the VALUE
parameter, which specifies the desired first row.
FILTER_EVENT
-- The ExplorerDetail
handles this event by filtering its contents.
DELETE_EVENT
-- The ExplorerDetail
passes this event to listeners. The listener should delete the selected object.
SEARCH_EVENT
-- The ExplorerDetail
handles this
event by performing the search.
To display the search controls of the Explorer Detail bean in a separate location in the page that contains the Explorer Detail bean, use the following approach:
Set the allowSearch
property of the Explorer Detail to False
so that the search controls will not be displayed twice.
Render the Explorer Detail without the search controls by using the ExplorerDetailBean
UINode.
Render the search controls for the Explorer Detail by using the ExplorerQuickSearchBean
UINode.
The QuickSearch
property of the PageLayoutBean
specifies an area for displaying the search controls.
The following code shows an example of using the Explorer Quick Search to render the search controls for an Explorer Detail. This example assumes that the following variables exist:
m_metadataManager
represents the MetadataManager
object
m_pageLayout
represents the PageLayoutBean
object
//Create the Explorer Detail with no search controls m_explorerDetail = new ExplorerDetail(); m_explorerDetail.setAllowSearch(false); // Set the MetadataManager on the Explorer Detail m_explorerDetail.setBIContext(m_metadataManager.getMDRoot()); //Register the Explorer Detail m_handler.registerThinBean(m_explorerDetail); //Create the UINode for the Explorer Detail m_pageLayout.addIndexedChild(new ExplorerDetailBean(m_explorerDetail)); //Create the UINode for search controls in the // Quick Search area of the PageLayoutBean m_pageLayout.setQuickSearch(new ExplorerQuickSearchBean(m_explorerDetail));