Modeler - Liste des hooks

Bonjour,

Est ce qu’il est possible d’avoir la liste des Modelhooks ?

Cordialement,
Zouhair OUALI ALAMI

Comme indiqué dans ma réponse Modeler - Template, la customisation du Javascript de rendu du modeler nécessite une prestation et/ou accompagnement très proche de notre part.

Ok, C’est dommage parce qu’à mon avis, le modeler doit être mis plus en avant pour vendre la solution et cela ne peut pas se faire si vous ne partagez pas un minimum avec l’intégrateur.

Le post peut être clos.

Je ne comprends pas bien ta réponse.

Vous pouvez facilement mettre le modeler graphique en avant sans pour autant vous lancer dans une implémentation complexe de rendus graphiques spécifiques via implémentation de model hooks spécifiques.

Il y a plein de paramètres qui permettent de jouer sur le rendu (visuel et contenu) standard des blocs et des traits qui représentent vos objets métier. L’implémentation des model hooks n’est requis que pour les rendus “exotiques”

Bonjour David,

Peut-être qu’il y a plein de paramètres qui me permettent de jouer sur le rendu, mais je ne les connais pas. J’ai cherché dans la “documentation” pour combler mon “ignorance”, mais hélas je ne trouve pas des réponses à mes questions.

Tout cela dit, revenons à mon besoin; en te l’expliquant, tu verras que ce n’est pas du tout “exotique” :

  • J’ai un modèle très simple avec 2 objets application et fonction, une relation de composition entre fonctions et une relation n-n “application réalise fonction” (donc un 3ème objet “relation”)
  • L’objet fonction a un attribut liste de valeurs qui s’appelle “niveau” avec trois valeurs : zone, quartier, bloc. Cela permet d’affiner la relation de composition entre fonctions de la manière suivante : Une zone composée de quartiers composés de blocs
  • je cherche à construire un diagramme de type Plan d’occupation des sols i.e. un template de modèle avec 3 conteneurs fonctions (selon le niveau) et un objet “application réalise fonction” sur lequel j’affiche uniquement le nom de l’application (une astuce pour pouvoir afficher la même “application” plusieurs fois sur le diagramme). J’ai réussi à construire ce template et ça me donne ça :

  • Par exemple : l’application venus réalise le bloc fonctionnel Gestion des CRA qui est dans le quartier Paie qui est dans la zone Finance
  • Mon souci se présente quand je commence à bouger mes éléments; par exemple : je bouge mon conteneur Paie vers la gauche et blob, il absorbe Trésorerie et contrôle interne et il les garde en lui (à la manière du jeu agar.io) alors que je ne souhaite pas qu’il y est chevauchement entre conteneurs du même niveau ni attachement entre conteneurs de “même niveau” :

  • D’où mon besoin de “customiser” le template et mon besoin de connaitre la liste des hooks parce que je suis convaincu que s’il y a une solution à mon besoin, elle serait là.

Cordialement,
Zouhaire

OK de ce que je comprends de ton besoin, outre les pbs d’usabilité rencontrés, c’est qu’on est au delà d’une simple “customisation” du rendu du modeler actuel via les points de customisation existants mais plutôt dans une autre logique de visualisation graphique.

Cela dépasse mes compétences, je passe la main à François.

Bonjour,

Au niveau du template de modèle, ça doit être faisable sans code, mais on n’a jamais vraiment poussé ce besoin très loin :

  • Sur les versions récentes, on peut créer un template d’objet de modèle de type “Container” (cf copie d’écran)
  • Dans ce cas, le contenu de ce template est alors un objet à attacher automatiquement sous forme de poupée russe (comme un Module qui contient des Objets et non pas un attribut listé du père comme dans Objet/Attributs)
  • Si le conteneur inséré est “Libre” alors l’utilisateur doit gérer à la main le placement des fils, sinon il doit sélectionner un objet métier.
  • Il y a aussi l’option “Attach/Detach” du container (via menu click droit sur l’objet avalé) : l’objet peut être libéré de tout container ou soumis à l’attracteur, il faut passer par là pour libérer un objet déjà avalé façon agario ou autre jeu à la mode :wink:

Si cela ne convient pas au besoin, il faudra revoir ça dans le cadre d’un support spécifique.

Hello,

ça ne répond pas à mes questions puisque tout ce que tu me décris là, je le sais déjà.

Cordialement,
Zouhair

Un conteneurs déplace par définition ce qu’il contient (par relation en base ou à l’écran), ce fonctionnement n’est pas celui attendu dans ton besoin et il n’est pas surchargeable par hook. Comme expliqué dans la version actuelle, il faut “détacher du conteneur” le block “Trésorerie” pour qu’il ne se colle pas aux autres, et le re-rendre “attachable” plus tard.

Il faudrait sûrement réfléchir à ton besoin

  1. pour voir comment le rendre possible dans un modèle hiérarchique strict : si pas de conteneur “libre” => déplacer que les liens physiques et non pas les contenus graphiques absorbant à l’écran

  2. Si le conteneur est “libre”, impossible de savoir qui doit contenir quoi automatiquement et donc le fonctionnement actuel est suffisant.

Je vais regarder si on peut facilement faire ce distinguo.

J’ai pu changer de comportement du conteneur simplement pour faire ce distingo sur le test d’inclusion.
Dans l’objet Container, il faut remplacer la méthode containsContainer par la suivante :

this.containsContainer = function(c) {
	var n = this;
	// parent object ?
	if (c.template && n.template)
		return c.container==n;
	// Free container inclusion ?
	if (!c.template && !n.template)
		return (c.x>n.x && c.x+c.w<n.x+n.w && c.y>n.y && c.y+c.h<n.y+n.h);
	// Not same nature
	return false;
};

Ce sera livré dans un prochain patch.

Si tu souhaites l’avoir sur ton projet, il faut trouver un moyen de surcharger cette méthode à l’instanciation du Conteneur. Cela semble trop complexe à t’expliquer sans formation préalable car cette méthode est privée, et il faudra pas mal ruser pour y parvenir.

Merci pour votre aide.

Comme convenu avec Thomas, je vais voir comment dégager du temps et passer vous voir; ça sera beaucoup plus pratique.

Cordialement,