Package org.gorpipe.querydialogs
Class Dialog
java.lang.Object
org.gorpipe.querydialogs.BasicBean
org.gorpipe.querydialogs.AbstractListBean
org.gorpipe.querydialogs.Dialog
- All Implemented Interfaces:
Serializable,ListModel
- Direct Known Subclasses:
PerspectiveDialog
A basic dialog implementation
Uses the freemarker library to interpolate the dialog's query with
supplied arguments.
The provided query is processed such that all whitespace is
replaced with a single space character.
Provides a couple of freemarker directives to query writers:
skip(value[, scope])- will skip (i.e. not output) the first occurance of the given value within the given scope
- br
- inserts an explicit newline
All arguments are wrapped in a freemarker object wrapper such that when
referencing the argument's value the query writer uses argname.val
and when referencing the argument's operator the query writer uses argname.op.
Aside from being a bean model for a dialog this class provides a ListModel interface on the dialog's arguments.
The interpolated query is defined as executable if all non-optional arguments have received valid values.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal DialogDescriptionprotected final Stringprotected booleanprotected final Stringprotected final Stringprotected final Stringstatic final StringThe property name for the dialog's base query (not interpolated).static final StringThe property name for dialog's interpolated query (read only).static final StringThe property name for the dialog's base query (not interpolated).static final StringThe property name for the dialog's base query (not interpolated).static final StringThe property name for the dialog's base query (not interpolated).static final StringThe property name for dialog's interpolated query (read only).static final StringThe property name for the dialog's executable state.static final StringThe property name for dialog's interpolated query (read only).static final StringThe property name for the dialog's type.protected final String -
Constructor Summary
ConstructorsConstructorDescriptionDialog(Map<String, ? extends Object> attributes, org.gorpipe.gor.model.FileReader fileResolver, org.gorpipe.gor.model.QueryEvaluator queryEval, DialogDescription dialogDescription, DialogType type, String query, String chartScript, String chartExec, String chartColumns, ChartDataType chartDF, List<Argument> arguments, String errorMsgTemplate, String longRunningQueryTemplate, String version, String packageVersion, String gitSHA) -
Method Summary
Modifier and TypeMethodDescriptionbooleanvoidgetArgument(String argumentName) getAttribute(String attributeName) getChart()getElementAt(int index) org.gorpipe.gor.model.FileReadergetName()getQuery()org.gorpipe.gor.model.QueryEvaluatorintgetSize()getType()booleanhasArgument(String argumentName) protected StringinterpolateChart(String templateName) protected StringinterpolateQuery(String templateName) booleanprotected voidvoidsetAdvancedArgumentsVisible(boolean visible) voidsetArgument(String argumentName, Argument arg) voidsetBaseChartColumns(String chartColumns) voidsetBaseChartDF(ChartDataType chartDF) voidsetBaseChartExec(String chartExec) voidsetBaseChartScript(String chartScript) voidsetBaseQuery(String query) voidsetDeferUpdates(boolean deferUpdates) Defer updates to interpolated query.voidsetType(DialogType type) toString()Methods inherited from class org.gorpipe.querydialogs.AbstractListBean
addListDataListener, fireContentsChanged, removeListDataListenerMethods inherited from class org.gorpipe.querydialogs.BasicBean
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Field Details
-
PROPERTY_TYPE
The property name for the dialog's type.- See Also:
-
PROPERTY_BASE_QUERY
The property name for the dialog's base query (not interpolated).- See Also:
-
PROPERTY_BASE_CHARTSCRIPT
The property name for the dialog's base query (not interpolated).- See Also:
-
PROPERTY_BASE_CHARTEXEC
The property name for the dialog's base query (not interpolated).- See Also:
-
PROPERTY_BASE_CHARTCOLUMNS
The property name for the dialog's base query (not interpolated).- See Also:
-
PROPERTY_BASE_CHARTDF
The property name for dialog's interpolated query (read only).- See Also:
-
PROPERTY_QUERY
The property name for dialog's interpolated query (read only).- See Also:
-
PROPERTY_CHART
The property name for dialog's interpolated query (read only).- See Also:
-
PROPERTY_EXECUTABLE
The property name for the dialog's executable state.- See Also:
-
dialogDescription
-
errorMsgTemplate
-
longRunningQueryTemplate
-
version
-
packageVersion
-
gitSHA
-
argumentMap
-
attributes
-
executable
protected boolean executable
-
-
Constructor Details
-
Dialog
public Dialog(Map<String, ? extends Object> attributes, org.gorpipe.gor.model.FileReader fileResolver, org.gorpipe.gor.model.QueryEvaluator queryEval, DialogDescription dialogDescription, DialogType type, String query, String chartScript, String chartExec, String chartColumns, ChartDataType chartDF, List<Argument> arguments, String errorMsgTemplate, String longRunningQueryTemplate, String version, String packageVersion, String gitSHA) throws freemarker.template.TemplateException- Throws:
freemarker.template.TemplateException
-
-
Method Details
-
getFileResolver
public org.gorpipe.gor.model.FileReader getFileResolver() -
getQueryEval
public org.gorpipe.gor.model.QueryEvaluator getQueryEval() -
getName
-
getShortName
- Returns:
- The dialog name shortened so that it contains at most 2 capital letters (from right) and breaks on the right most underscore
-
getDescription
-
getHelpLink
-
getListDescription
-
getType
-
setType
-
getBaseQuery
-
setBaseQuery
- Throws:
freemarker.template.TemplateException
-
getBaseChartExec
-
setBaseChartExec
- Throws:
freemarker.template.TemplateException
-
getBaseChartScript
-
setBaseChartScript
-
getBaseChartDF
-
setBaseChartDF
-
getBaseChartColumns
-
setBaseChartColumns
-
setDeferUpdates
public void setDeferUpdates(boolean deferUpdates) Defer updates to interpolated query. If set - query won't be evaluated on every change to input parameters but only when requested through getInterpolatedQuery() -
advancedArgumentsVisible
public boolean advancedArgumentsVisible()- Returns:
trueif advanced arguments are visible, otherwisefalse
-
setAdvancedArgumentsVisible
public void setAdvancedArgumentsVisible(boolean visible) - Parameters:
visible- the visibility of advanced arguments to set
-
loadQuery
-
interpolateQuery
protected String interpolateQuery(String templateName) throws freemarker.template.TemplateException, IOException - Throws:
freemarker.template.TemplateExceptionIOException
-
interpolateChart
protected String interpolateChart(String templateName) throws freemarker.template.TemplateException, IOException - Throws:
freemarker.template.TemplateExceptionIOException
-
calcInterpolatedQuery
public void calcInterpolatedQuery() throws freemarker.template.TemplateException- Throws:
freemarker.template.TemplateException
-
getInterpolatedQuery
-
getInterpolatedChart
-
getQuery
-
getChart
-
getVersion
-
getPackageVersion
-
getGitSha
-
getErrorMessage
-
determineLongRunningQuery
-
copyArguments
-
isExecutable
public boolean isExecutable() -
getArgument
-
hasArgument
-
setArgument
-
getAttribute
-
getElementAt
-
getSize
public int getSize() -
toString
-