mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 09:15:41 +00:00
70 lines
5.0 KiB
JavaScript
70 lines
5.0 KiB
JavaScript
class ConcordanceQueryBuilder {
|
|
|
|
constructor() {
|
|
this.elements = new ElementReferencesQueryBuilder();
|
|
this.generalFunctions = new GeneralFunctionsQueryBuilder(this.elements);
|
|
this.tokenAttributeBuilder = new TokenAttributeBuilderFunctionsQueryBuilder(this.elements);
|
|
this.structuralAttributeBuilder = new StructuralAttributeBuilderFunctionsQueryBuilder(this.elements);
|
|
|
|
this.elements.closeQueryBuilder.addEventListener('click', () => {this.generalFunctions.closeQueryBuilderModal(this.elements.concordanceQueryBuilder);});
|
|
this.elements.concordanceQueryBuilderButton.addEventListener('click', () => {this.generalFunctions.clearAll();});
|
|
this.elements.insertQueryButton.addEventListener('click', () => {this.generalFunctions.insertQuery();});
|
|
this.elements.positionalAttrButton.addEventListener('click', () => {this.generalFunctions.showPositionalAttrArea();});
|
|
this.elements.structuralAttrButton.addEventListener('click', () => {this.generalFunctions.showStructuralAttrArea();});
|
|
|
|
//#region Structural Attribute Event Listeners
|
|
this.elements.sentence.addEventListener('click', () => {this.structuralAttributeBuilder.addSentence();});
|
|
this.elements.entity.addEventListener('click', () => {this.structuralAttributeBuilder.addEntity();});
|
|
this.elements.textAnnotation.addEventListener('click', () => {this.structuralAttributeBuilder.addTextAnnotation();});
|
|
|
|
this.elements.englishEntType.addEventListener('change', () => {this.structuralAttributeBuilder.englishEntTypeHandler();});
|
|
this.elements.germanEntType.addEventListener('change', () => {this.structuralAttributeBuilder.germanEntTypeHandler();});
|
|
this.elements.emptyEntity.addEventListener('click', () => {this.structuralAttributeBuilder.emptyEntityButton();});
|
|
|
|
this.elements.textAnnotationSubmit.addEventListener('click', () => {this.structuralAttributeBuilder.textAnnotationSubmitHandler();});
|
|
|
|
//#endregion
|
|
|
|
//#region Token Attribute Event Listeners
|
|
this.elements.queryBuilderTutorialInfoIcon.addEventListener('click', () => {this.tokenAttributeBuilder.tutorialIconHandler('#query-builder-tutorial-start');});
|
|
this.elements.tokenTutorialInfoIcon.addEventListener('click', () => {this.tokenAttributeBuilder.tutorialIconHandler('#add-new-token-tutorial');});
|
|
this.elements.editTokenTutorialInfoIcon.addEventListener('click', () => {this.tokenAttributeBuilder.tutorialIconHandler('#edit-options-tutorial');});
|
|
this.elements.structuralAttributeTutorialInfoIcon.addEventListener('click', () => {this.tokenAttributeBuilder.tutorialIconHandler('#add-structural-attribute-tutorial');});
|
|
this.elements.generalOptionsQueryBuilderTutorialInfoIcon.addEventListener('click', () => {this.tokenAttributeBuilder.tutorialIconHandler('#general-options-query-builder');});
|
|
|
|
this.elements.positionalAttr.addEventListener('change', () => {this.tokenAttributeBuilder.tokenTypeSelector();});
|
|
this.elements.tokenSubmitButton.addEventListener('click', () => {this.tokenAttributeBuilder.addTokenToQuery();});
|
|
|
|
this.elements.wordInput.addEventListener('input', () => {this.tokenAttributeBuilder.inputFieldHandler();});
|
|
this.elements.lemmaInput.addEventListener('input', () => {this.tokenAttributeBuilder.inputFieldHandler();});
|
|
this.elements.ignoreCase.addEventListener('change', () => {this.tokenAttributeBuilder.inputOptionHandler(this.elements.ignoreCase);});
|
|
this.elements.wildcardChar.addEventListener('click', () => {this.tokenAttributeBuilder.inputOptionHandler(this.elements.wildcardChar);});
|
|
this.elements.optionGroup.addEventListener('click', () => {this.tokenAttributeBuilder.inputOptionHandler(this.elements.optionGroup);});
|
|
|
|
this.elements.oneOrMore.addEventListener('click', () => {this.tokenAttributeBuilder.incidenceModifiersHandler(this.elements.oneOrMore);});
|
|
this.elements.zeroOrMore.addEventListener('click', () => {this.tokenAttributeBuilder.incidenceModifiersHandler(this.elements.zeroOrMore);});
|
|
this.elements.zeroOrOne.addEventListener('click', () => {this.tokenAttributeBuilder.incidenceModifiersHandler(this.elements.zeroOrOne);});
|
|
this.elements.nSubmit.addEventListener('click', () => {this.tokenAttributeBuilder.nSubmitHandler();});
|
|
this.elements.nmSubmit.addEventListener('click', () => {this.tokenAttributeBuilder.nmSubmitHandler();});
|
|
|
|
this.elements.or.addEventListener('click', () => {this.tokenAttributeBuilder.orHandler();});
|
|
this.elements.and.addEventListener('click', () => {this.tokenAttributeBuilder.andHandler();});
|
|
|
|
//#endregion Token Attribute Event Listeners
|
|
let selectInstances = this.elements.concordanceQueryBuilder.querySelectorAll('select');
|
|
M.FormSelect.init(
|
|
selectInstances,
|
|
{
|
|
dropdownOptions: {
|
|
alignment: 'bottom',
|
|
coverTrigger: false
|
|
}
|
|
}
|
|
)
|
|
let dropdownContents = this.elements.concordanceQueryBuilder.querySelectorAll('.dropdown-content');
|
|
dropdownContents.forEach((dropdownContent) => {
|
|
dropdownContent.style.paddingBottom = '15px';
|
|
});
|
|
}
|
|
}
|