Package org.dashbuilder.displayer.client
Class AbstractDisplayer<V extends AbstractDisplayer.View>
- java.lang.Object
-
- org.dashbuilder.displayer.client.AbstractDisplayer<V>
-
- All Implemented Interfaces:
com.google.gwt.user.client.ui.IsWidget,Displayer,DisplayerListener
- Direct Known Subclasses:
AbstractErraiDisplayer,AbstractGwtDisplayer
public abstract class AbstractDisplayer<V extends AbstractDisplayer.View> extends Object implements Displayer
Base class for implementing custom displayers.Any derived class must implement:
- The draw(), redraw() & close() methods.
- The capture of events coming from the DisplayerListener interface.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceAbstractDisplayer.ExpressionEvalstatic interfaceAbstractDisplayer.Formatterstatic interfaceAbstractDisplayer.View
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,List<org.dashbuilder.dataset.group.Interval>>columnSelectionMapprotected org.dashbuilder.dataset.filter.DataSetFiltercurrentFilterprotected org.dashbuilder.dataset.DataSetdataSetprotected DataSetHandlerdataSetHandlerprotected org.dashbuilder.displayer.DisplayerConstraintsdisplayerConstraintsprotected org.dashbuilder.displayer.DisplayerSettingsdisplayerSettingsprotected booleandrawnprotected AbstractDisplayer.ExpressionEvalevaluatorprotected AbstractDisplayer.Formatterformatterprotected Map<String,ValueFormatter>formatterMapprotected List<DisplayerListener>listenerListprotected booleanrefreshEnabled
-
Constructor Summary
Constructors Constructor Description AbstractDisplayer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddFormatter(String columnId, ValueFormatter formatter)Registers a custom formatter for the given columnvoidaddListener(DisplayerListener... listeners)Add a listener interested in receive events generated within this displayer component.protected voidafterClose()protected voidafterDataSetLookup(org.dashbuilder.dataset.DataSet dataSet)Call back method invoked just after the data set lookup is executed.protected voidafterDraw()protected voidafterLoad()protected voidafterRedraw()com.google.gwt.user.client.ui.WidgetasWidget()protected voidbeforeDataSetLookup()Call back method invoked just before the data set lookup is executed.protected voidbeforeLoad()voidcheckDisplayerSettings(org.dashbuilder.displayer.DisplayerSettings displayerSettings)voidclose()Close the displayerabstract org.dashbuilder.displayer.DisplayerConstraintscreateDisplayerConstraints()It initializes the constraints this displayer conforms toprotected abstract voidcreateVisualization()The required logic in charge of rendering the visualization once the data has been retrieved during a call to draw()voiddraw()Draw the displayer by executing first the lookup call to retrieve the target data setvoidexport(ExportFormat format, int maxRows, ExportCallback callback)Export the data being displayed into the specified output format.voidfilterApply(String columnId, List<org.dashbuilder.dataset.group.Interval> intervalList)Filter the values of the given column.voidfilterApply(org.dashbuilder.dataset.filter.DataSetFilter filter)Apply the given filterSet<String>filterColumns()Get the set of columns being filtered.List<Integer>filterIndexes(String columnId)Get the current filter selected interval indexes for the given data set column.org.dashbuilder.dataset.group.IntervalfilterInterval(String columnId, int idx)Get the current filter interval matching the specified indexList<org.dashbuilder.dataset.group.Interval>filterIntervals(String columnId)Get the current filter intervals for the given data set column.voidfilterReset()Clear any filter.voidfilterReset(String columnId)Clear any filter on the given column.voidfilterUpdate(String columnId, int row)Updates the current filter values for the given data set column.voidfilterUpdate(String columnId, int row, Integer maxSelections)Updates the current filter values for the given data set column.voidfilterUpdate(org.dashbuilder.dataset.filter.DataSetFilter filter)Updates the current filter values for the given data set column.protected StringformatDate(org.dashbuilder.dataset.group.DateIntervalType type, org.dashbuilder.dataset.group.GroupStrategy strategy, String date, String pattern, String expression)protected StringformatDateDynamic(org.dashbuilder.dataset.group.DateIntervalType type, String date, String pattern)protected StringformatDateFixed(org.dashbuilder.dataset.group.DateIntervalType type, String date)StringformatInterval(org.dashbuilder.dataset.group.Interval interval, org.dashbuilder.dataset.DataColumn column)StringformatValue(int row, int column)StringformatValue(Object value, org.dashbuilder.dataset.DataColumn column)DataSetHandlergetDataSetHandler()org.dashbuilder.displayer.DisplayerConstraintsgetDisplayerConstraints()Every Displayer implementation must define the set of features it supports as well as other behavioral settings.StringgetDisplayerId()org.dashbuilder.displayer.DisplayerSettingsgetDisplayerSettings()AbstractDisplayer.ExpressionEvalgetEvaluator()AbstractDisplayer.FormattergetFormatter()ValueFormattergetFormatter(String columnId)abstract VgetView()It returns the actual implementation of the ViewvoidhandleError(String message)voidhandleError(String message, Throwable error)voidhandleError(Throwable error)voidhandleError(org.dashbuilder.common.client.error.ClientRuntimeError error)booleanisDrawn()Check if the displayer is completely drawn.booleanisRefreshOn()Check if the automatic refresh is on.voidonClose(Displayer displayer)Invoked just after the displayer has been closed.voidonDataLoaded(Displayer displayer)Invoked right after the data lookup finishes and the data set is available,voidonDataLookup(Displayer displayer)Invoked just before the data lookup operation has been started,voidonDraw(Displayer displayer)Invoked just after the displayer has been drawn.voidonError(Displayer displayer, org.dashbuilder.common.client.error.ClientRuntimeError error)Invoked when some error occurs.voidonFilterEnabled(Displayer displayer, org.dashbuilder.dataset.filter.DataSetFilter filter)Invoked when a filter request is executed on a given Displayer instance.voidonFilterEnabled(Displayer displayer, org.dashbuilder.dataset.group.DataSetGroup groupOp)Invoked when a group interval selection filter request is executed on a given Displayer instance.voidonFilterReset(Displayer displayer, List<org.dashbuilder.dataset.group.DataSetGroup> groupOps)Invoked when a group interval reset request is executed on a given Displayer instance.voidonFilterReset(Displayer displayer, org.dashbuilder.dataset.filter.DataSetFilter filter)Invoked when a filter reset request is executed on a given Displayer instance.voidonFilterUpdate(Displayer displayer, org.dashbuilder.dataset.filter.DataSetFilter oldFilter, org.dashbuilder.dataset.filter.DataSetFilter newFilter)Invoked when an update filter request is executed on an already filtered Displayer instance.voidonRedraw(Displayer displayer)Invoked just after the displayer has been redrawn.protected DateparseDynamicGroupDate(org.dashbuilder.dataset.group.DateIntervalType type, String date)voidredraw()Just reload the data set and make the current displayer to redraw.voidsetDataSetHandler(DataSetHandler dataSetHandler)The handler used to fetch and manipulate the data set.voidsetDisplayerSettings(org.dashbuilder.displayer.DisplayerSettings displayerSettings)The data displayer to draw.voidsetEvaluator(AbstractDisplayer.ExpressionEval evaluator)voidsetFormatter(AbstractDisplayer.Formatter formatter)voidsetRefreshOn(boolean enabled)Enables or disables the automatic refresh capability (enabled by default).voidshowError(org.dashbuilder.common.client.error.ClientRuntimeError error)voidsortApply(String columnId, org.dashbuilder.dataset.sort.SortOrder sortOrder)Set the sort order operation to apply to the data set.protected voidupdateRefreshTimer()protected abstract voidupdateVisualization()The required logic in charge of updating a visualization once the data has been retrieved during a call to redraw()
-
-
-
Field Detail
-
dataSet
protected org.dashbuilder.dataset.DataSet dataSet
-
dataSetHandler
protected DataSetHandler dataSetHandler
-
displayerSettings
protected org.dashbuilder.displayer.DisplayerSettings displayerSettings
-
displayerConstraints
protected org.dashbuilder.displayer.DisplayerConstraints displayerConstraints
-
listenerList
protected List<DisplayerListener> listenerList
-
columnSelectionMap
protected Map<String,List<org.dashbuilder.dataset.group.Interval>> columnSelectionMap
-
formatterMap
protected Map<String,ValueFormatter> formatterMap
-
formatter
protected AbstractDisplayer.Formatter formatter
-
evaluator
protected AbstractDisplayer.ExpressionEval evaluator
-
currentFilter
protected org.dashbuilder.dataset.filter.DataSetFilter currentFilter
-
refreshEnabled
protected boolean refreshEnabled
-
drawn
protected boolean drawn
-
-
Method Detail
-
asWidget
public com.google.gwt.user.client.ui.Widget asWidget()
- Specified by:
asWidgetin interfacecom.google.gwt.user.client.ui.IsWidget
-
getView
public abstract V getView()
It returns the actual implementation of the View- To be provided by the concrete displayer implementation -
-
createDisplayerConstraints
public abstract org.dashbuilder.displayer.DisplayerConstraints createDisplayerConstraints()
It initializes the constraints this displayer conforms to- To be provided by the concrete displayer implementation -
-
createVisualization
protected abstract void createVisualization()
The required logic in charge of rendering the visualization once the data has been retrieved during a call to draw()- To be provided by the concrete displayer implementation -
-
updateVisualization
protected abstract void updateVisualization()
The required logic in charge of updating a visualization once the data has been retrieved during a call to redraw()- To be provided by the concrete displayer implementation -
-
getDisplayerConstraints
public org.dashbuilder.displayer.DisplayerConstraints getDisplayerConstraints()
Description copied from interface:DisplayerEvery Displayer implementation must define the set of features it supports as well as other behavioral settings. These "constrains" are needed for two main reasons:- Validation purposes: in order to ensure the DisplayerSettings are valid and ready for rendering.
- Edition purposes: in order to let the DisplayerEditor know what features/settings/behaviour this Displayer implementation supports.
- Specified by:
getDisplayerConstraintsin interfaceDisplayer
-
getDisplayerSettings
public org.dashbuilder.displayer.DisplayerSettings getDisplayerSettings()
- Specified by:
getDisplayerSettingsin interfaceDisplayer
-
setDisplayerSettings
public void setDisplayerSettings(org.dashbuilder.displayer.DisplayerSettings displayerSettings)
Description copied from interface:DisplayerThe data displayer to draw.- Specified by:
setDisplayerSettingsin interfaceDisplayer
-
checkDisplayerSettings
public void checkDisplayerSettings(org.dashbuilder.displayer.DisplayerSettings displayerSettings)
-
getDataSetHandler
public DataSetHandler getDataSetHandler()
- Specified by:
getDataSetHandlerin interfaceDisplayer
-
setDataSetHandler
public void setDataSetHandler(DataSetHandler dataSetHandler)
Description copied from interface:DisplayerThe handler used to fetch and manipulate the data set.- Specified by:
setDataSetHandlerin interfaceDisplayer
-
getFormatter
public AbstractDisplayer.Formatter getFormatter()
-
setFormatter
public void setFormatter(AbstractDisplayer.Formatter formatter)
-
getEvaluator
public AbstractDisplayer.ExpressionEval getEvaluator()
-
setEvaluator
public void setEvaluator(AbstractDisplayer.ExpressionEval evaluator)
-
addListener
public void addListener(DisplayerListener... listeners)
Description copied from interface:DisplayerAdd a listener interested in receive events generated within this displayer component.- Specified by:
addListenerin interfaceDisplayer
-
getDisplayerId
public String getDisplayerId()
-
isDrawn
public boolean isDrawn()
Description copied from interface:DisplayerCheck if the displayer is completely drawn.
-
draw
public void draw()
Draw the displayer by executing first the lookup call to retrieve the target data set
-
redraw
public void redraw()
Just reload the data set and make the current displayer to redraw.
-
showError
public void showError(org.dashbuilder.common.client.error.ClientRuntimeError error)
-
beforeDataSetLookup
protected void beforeDataSetLookup()
Call back method invoked just before the data set lookup is executed.
-
afterDataSetLookup
protected void afterDataSetLookup(org.dashbuilder.dataset.DataSet dataSet)
Call back method invoked just after the data set lookup is executed.
-
setRefreshOn
public void setRefreshOn(boolean enabled)
Description copied from interface:DisplayerEnables or disables the automatic refresh capability (enabled by default).- Specified by:
setRefreshOnin interfaceDisplayer- See Also:
DisplayerSettings.getRefreshInterval()
-
isRefreshOn
public boolean isRefreshOn()
Description copied from interface:DisplayerCheck if the automatic refresh is on.- Specified by:
isRefreshOnin interfaceDisplayer
-
updateRefreshTimer
protected void updateRefreshTimer()
-
beforeLoad
protected void beforeLoad()
-
afterLoad
protected void afterLoad()
-
afterDraw
protected void afterDraw()
-
afterRedraw
protected void afterRedraw()
-
afterClose
protected void afterClose()
-
handleError
public void handleError(String message)
-
handleError
public void handleError(Throwable error)
-
handleError
public void handleError(org.dashbuilder.common.client.error.ClientRuntimeError error)
-
onDataLookup
public void onDataLookup(Displayer displayer)
Description copied from interface:DisplayerListenerInvoked just before the data lookup operation has been started,- Specified by:
onDataLookupin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance.
-
onDataLoaded
public void onDataLoaded(Displayer displayer)
Description copied from interface:DisplayerListenerInvoked right after the data lookup finishes and the data set is available,- Specified by:
onDataLoadedin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance.
-
onDraw
public void onDraw(Displayer displayer)
Description copied from interface:DisplayerListenerInvoked just after the displayer has been drawn.- Specified by:
onDrawin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance.
-
onRedraw
public void onRedraw(Displayer displayer)
Description copied from interface:DisplayerListenerInvoked just after the displayer has been redrawn.- Specified by:
onRedrawin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance.
-
onClose
public void onClose(Displayer displayer)
Description copied from interface:DisplayerListenerInvoked just after the displayer has been closed.- Specified by:
onClosein interfaceDisplayerListener- Parameters:
displayer- The Displayer instance.
-
onError
public void onError(Displayer displayer, org.dashbuilder.common.client.error.ClientRuntimeError error)
Description copied from interface:DisplayerListenerInvoked when some error occurs.- Specified by:
onErrorin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance event comes from.error- The error instance.
-
onFilterEnabled
public void onFilterEnabled(Displayer displayer, org.dashbuilder.dataset.group.DataSetGroup groupOp)
Description copied from interface:DisplayerListenerInvoked when a group interval selection filter request is executed on a given Displayer instance.- Specified by:
onFilterEnabledin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance where the interval selection event comes from.groupOp- The group interval selection operation.
-
onFilterEnabled
public void onFilterEnabled(Displayer displayer, org.dashbuilder.dataset.filter.DataSetFilter filter)
Description copied from interface:DisplayerListenerInvoked when a filter request is executed on a given Displayer instance.- Specified by:
onFilterEnabledin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance where the filter request event comes from.filter- The filter operation.
-
onFilterUpdate
public void onFilterUpdate(Displayer displayer, org.dashbuilder.dataset.filter.DataSetFilter oldFilter, org.dashbuilder.dataset.filter.DataSetFilter newFilter)
Description copied from interface:DisplayerListenerInvoked when an update filter request is executed on an already filtered Displayer instance.- Specified by:
onFilterUpdatein interfaceDisplayerListener- Parameters:
displayer- The Displayer instance where the filter request event comes from.oldFilter- The old filter operation.newFilter- The new filter operation.
-
onFilterReset
public void onFilterReset(Displayer displayer, List<org.dashbuilder.dataset.group.DataSetGroup> groupOps)
Description copied from interface:DisplayerListenerInvoked when a group interval reset request is executed on a given Displayer instance.- Specified by:
onFilterResetin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance where the interval selection event comes from.groupOps- The set of group interval selection operations reset.
-
onFilterReset
public void onFilterReset(Displayer displayer, org.dashbuilder.dataset.filter.DataSetFilter filter)
Description copied from interface:DisplayerListenerInvoked when a filter reset request is executed on a given Displayer instance.- Specified by:
onFilterResetin interfaceDisplayerListener- Parameters:
displayer- The Displayer instance where the filter event comes from.filter- The filter operation to reset.
-
filterIntervals
public List<org.dashbuilder.dataset.group.Interval> filterIntervals(String columnId)
Get the current filter intervals for the given data set column.- Parameters:
columnId- The column identifier.- Returns:
- A list of intervals.
-
filterInterval
public org.dashbuilder.dataset.group.Interval filterInterval(String columnId, int idx)
Get the current filter interval matching the specified index- Parameters:
columnId- The column identifier.idx- The index of the interval- Returns:
- The target interval matching the specified parameters or null if it does not exist.
-
filterIndexes
public List<Integer> filterIndexes(String columnId)
Get the current filter selected interval indexes for the given data set column.- Parameters:
columnId- The column identifier.- Returns:
- A list of interval indexes
-
filterUpdate
public void filterUpdate(String columnId, int row)
Updates the current filter values for the given data set column.- Parameters:
columnId- The column to filter for.row- The row selected.
-
filterUpdate
public void filterUpdate(String columnId, int row, Integer maxSelections)
Updates the current filter values for the given data set column.- Parameters:
columnId- The column to filter for.row- The row selected.maxSelections- The number of different selectable values available.
-
filterApply
public void filterApply(String columnId, List<org.dashbuilder.dataset.group.Interval> intervalList)
Filter the values of the given column.- Parameters:
columnId- The name of the column to filter.intervalList- A list of interval selections to filter for.
-
filterApply
public void filterApply(org.dashbuilder.dataset.filter.DataSetFilter filter)
Apply the given filter- Parameters:
filter- A filter
-
filterUpdate
public void filterUpdate(org.dashbuilder.dataset.filter.DataSetFilter filter)
Updates the current filter values for the given data set column. Any previous filter is reset.- Parameters:
filter- A filter
-
filterReset
public void filterReset(String columnId)
Clear any filter on the given column.- Parameters:
columnId- The name of the column to reset.
-
filterReset
public void filterReset()
Clear any filter.
-
sortApply
public void sortApply(String columnId, org.dashbuilder.dataset.sort.SortOrder sortOrder)
Set the sort order operation to apply to the data set.- Parameters:
columnId- The name of the column to sort.sortOrder- The sort order.
-
formatInterval
public String formatInterval(org.dashbuilder.dataset.group.Interval interval, org.dashbuilder.dataset.DataColumn column)
-
addFormatter
public void addFormatter(String columnId, ValueFormatter formatter)
Description copied from interface:DisplayerRegisters a custom formatter for the given column- Specified by:
addFormatterin interfaceDisplayer
-
getFormatter
public ValueFormatter getFormatter(String columnId)
-
formatValue
public String formatValue(int row, int column)
-
formatDate
protected String formatDate(org.dashbuilder.dataset.group.DateIntervalType type, org.dashbuilder.dataset.group.GroupStrategy strategy, String date, String pattern, String expression)
-
formatDateFixed
protected String formatDateFixed(org.dashbuilder.dataset.group.DateIntervalType type, String date)
-
formatDateDynamic
protected String formatDateDynamic(org.dashbuilder.dataset.group.DateIntervalType type, String date, String pattern)
-
parseDynamicGroupDate
protected Date parseDynamicGroupDate(org.dashbuilder.dataset.group.DateIntervalType type, String date)
-
export
public void export(ExportFormat format, int maxRows, ExportCallback callback)
Description copied from interface:DisplayerExport the data being displayed into the specified output format.
-
-