Skip to content

Commit

Permalink
mid-7600 Query playground
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jan 26, 2022
1 parent 745113a commit 66235b0
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,17 @@ <h3><div wicket:id="repositoryQueryLabel"/></h3>
</div>
</div>
<div class="col-md-6">
<h3><wicket:message key="PageRepositoryQuery.hibernateQuery"/></h3>
<textarea wicket:id="editorHibernate"></textarea>
<h4><wicket:message key="PageRepositoryQuery.hibernateParameters"/></h4>
<p class="small" wicket:id="hibernateParametersNote" />
<textarea wicket:id="hibernateParameters"></textarea>
<div class="form-group" style="margin-top: 15px">
<a class="btn btn-primary" wicket:id="executeHibernate"/>
<h3><div wicket:id="queryLabel"/></h3>
<textarea wicket:id="queryEditor"></textarea>
<div wicket:id="hibernateParametersContainer">
<h4>
<wicket:message key="PageRepositoryQuery.hibernateParameters"/>
</h4>
<p class="small" wicket:id="hibernateParametersNote"/>
<textarea wicket:id="hibernateParameters"></textarea>
<div class="form-group" style="margin-top: 15px">
<a class="btn btn-primary" wicket:id="executeHibernate"/>
</div>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -105,13 +106,15 @@ public class PageRepositoryQuery extends PageAdminConfiguration {
private static final String ID_USE_IN_OBJECT_LIST = "useInObjectList";
private static final String ID_EXECUTE_HIBERNATE = "executeHibernate";
private static final String ID_EDITOR_MIDPOINT = "editorMidPoint";
private static final String ID_EDITOR_HIBERNATE = "editorHibernate";
private static final String ID_QUERY_EDITOR = "queryEditor";
private static final String ID_QUERY_LABEL = "queryLabel";
private static final String ID_HIBERNATE_PARAMETERS = "hibernateParameters";
private static final String ID_RESULT_LABEL = "resultLabel";
private static final String ID_RESULT_TEXT = "resultText";
private static final String ID_QUERY_SAMPLE = "querySample";
private static final String ID_OBJECT_TYPE = "objectType";
private static final String ID_DISTINCT = "distinct";
private static final String ID_HIBERNATE_PARAMETERS_CONTAINER = "hibernateParametersContainer";
private static final String ID_HIBERNATE_PARAMETERS_NOTE = "hibernateParametersNote";
private static final String ID_INCOMPLETE_RESULTS_NOTE = "incompleteResultsNote";
private static final String ID_VIEW_BUTTON_PANEL = "viewButtonPanel";
Expand Down Expand Up @@ -206,24 +209,32 @@ protected void onUpdate(AjaxRequestTarget target) {
editorMidPoint.setResizeToMaxHeight(false);
mainForm.add(editorMidPoint);

AceEditor editorHibernate = new AceEditor(ID_EDITOR_HIBERNATE, new PropertyModel<>(model, RepoQueryDto.F_HIBERNATE_QUERY));
Label queryLabel = new Label(ID_QUERY_LABEL, createQueryLabelModel());
mainForm.add(queryLabel);

AceEditor editorHibernate = new AceEditor(ID_QUERY_EDITOR, new PropertyModel<>(model, RepoQueryDto.F_HIBERNATE_QUERY));
editorHibernate.setHeight(300);
editorHibernate.setResizeToMaxHeight(false);
editorHibernate.setReadonly(!isAdmin);
editorHibernate.setMode(null);
mainForm.add(editorHibernate);

WebMarkupContainer hibernateParametersContainer = new WebMarkupContainer(ID_HIBERNATE_PARAMETERS_CONTAINER);
hibernateParametersContainer.setOutputMarkupId(true);
hibernateParametersContainer.setVisible(!isNativeRepo());
mainForm.add(hibernateParametersContainer);

AceEditor hibernateParameters = new AceEditor(ID_HIBERNATE_PARAMETERS, new PropertyModel<>(model, RepoQueryDto.F_HIBERNATE_PARAMETERS));
hibernateParameters.setReadonly(true);
hibernateParameters.setHeight(100);
hibernateParameters.setResizeToMaxHeight(false);
hibernateParameters.setMode(null);
mainForm.add(hibernateParameters);
hibernateParametersContainer.add(hibernateParameters);

Label hibernateParametersNote = new Label(ID_HIBERNATE_PARAMETERS_NOTE, createStringResource("PageRepositoryQuery.hibernateParametersNote",
WebComponentUtil.getMidpointCustomSystemName(PageRepositoryQuery.this, "midPoint")));
hibernateParametersNote.setVisible(isAdmin && !isNativeRepo());
mainForm.add(hibernateParametersNote);
hibernateParametersContainer.add(hibernateParametersNote);

Label queryVsFilterNote = new Label(ID_QUERY_VS_FILTER_NOTE, createStringResource("PageRepositoryQuery.queryVsFilterNote",
WebComponentUtil.getMidpointCustomSystemName(PageRepositoryQuery.this, "midPoint")));
Expand Down Expand Up @@ -267,7 +278,7 @@ protected void onSubmit(AjaxRequestTarget target) {
};
midPointQueryButtonBar.add(executeMidPoint);

AjaxSubmitButton compileMidPoint = new AjaxSubmitButton(ID_COMPILE_MIDPOINT, createStringResource("PageRepositoryQuery.button.translate")) {
AjaxSubmitButton compileMidPoint = new AjaxSubmitButton(ID_COMPILE_MIDPOINT, createCompileMidpointLabelModel()) {
@Override
protected void onError(AjaxRequestTarget target) {
target.add(getFeedbackPanel());
Expand Down Expand Up @@ -357,7 +368,7 @@ protected void onSubmit(AjaxRequestTarget target) {
}
};
executeHibernate.setVisible(isAdmin && !isNativeRepo());
mainForm.add(executeHibernate);
hibernateParametersContainer.add(executeHibernate);

Label resultLabel = new Label(ID_RESULT_LABEL, new IModel<String>() {
@Override
Expand Down Expand Up @@ -402,6 +413,14 @@ public boolean isVisible() {

}

private IModel<String> createCompileMidpointLabelModel() {
return isNativeRepo() ? createStringResource("PageRepositoryQuery.button.translate.SQL") : createStringResource("PageRepositoryQuery.button.translate");
}

private IModel<String> createQueryLabelModel() {
return isNativeRepo() ? createStringResource("PageRepositoryQuery.sqlQuery") : createStringResource("PageRepositoryQuery.hibernateQuery");
}

private void useInObjectListPerformed(AjaxRequestTarget target) {
final RepoQueryDto dto = model.getObject();
String queryText = dto.getMidPointQuery();
Expand Down

0 comments on commit 66235b0

Please sign in to comment.