sparnatural
Version:
Visual client-side SPARQL query builder and knowledge graph exploration tool
82 lines (72 loc) • 3.04 kB
text/typescript
import SparnaturalFormComponent from "../components/SparnaturalFormComponent";
import ISparnaturalSpecification from "../../sparnatural/spec-providers/ISparnaturalSpecification";
import { QueryGeneratorForm } from "./actions/GenerateQueryForm";
class ActionStoreForm {
sparnaturalForm: SparnaturalFormComponent;
specProvider: ISparnaturalSpecification;
quiet = false; // Pour éviter d'exécuter des actions quand c'est nécessaire de "garder le silence"
constructor(
sparnaturalForm: SparnaturalFormComponent,
specProvider: ISparnaturalSpecification
) {
this.sparnaturalForm = sparnaturalForm;
this.specProvider = specProvider;
this.#addFormEventListeners(); // Ajout des écouteurs d'événements
}
// Ajouter les écouteurs d'événements sur les actions du formulaire
#addFormEventListeners() {
// Quand une valeur est ajoutée à un widget
this.sparnaturalForm.html[0].addEventListener(
"valueAdded",
(event: CustomEvent) => {
console.log("Valeur ajoutée dans un widget !");
new QueryGeneratorForm(this).generateQuery("onscreen");
}
);
// Quand une valeur est supprimée d'un widget
this.sparnaturalForm.html[0].addEventListener(
"valueRemoved",
(event: CustomEvent) => {
console.log("Valeur supprimée d'un widget !");
new QueryGeneratorForm(this).generateQuery("onscreen");
}
);
// Ajouter un écouteur pour l'événement "anyValueSelected" dans ActionStoreForm
this.sparnaturalForm.html[0].addEventListener(
"anyValueSelected",
(event: CustomEvent) => {
new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour
}
);
// Ajouter un écouteur pour l'événement "defaultValueSelected" dans ActionStoreForm
this.sparnaturalForm.html[0].addEventListener(
"removeAnyValueOption",
(event: CustomEvent) => {
new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour
}
);
// Ajouter un écouteur pour l'événement "notExist" dans ActionStoreForm
this.sparnaturalForm.html[0].addEventListener(
"notExist",
(event: CustomEvent) => {
new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour
}
);
// Ajouter un écouteur pour l'événement "removeNotExistOption" dans ActionStoreForm
this.sparnaturalForm.html[0].addEventListener(
"removeNotExistOption",
(event: CustomEvent) => {
new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour
}
);
this.sparnaturalForm.html[0].addEventListener(
"submit",
(event: CustomEvent) => {
console.log("Submit event received", event.detail);
console.log("ActionStoreForm: Submit event received", event.detail.type);
new QueryGeneratorForm(this).generateQuery(event.detail.type);
}
);
}
}
export default ActionStoreForm;