Le glissé-déposé n'étant pas simple, et mal expliqué dans la documentation Apple, qui ne traite que les cas de glissé-déposé d'une table sur elle-même, et pour des sujets compliqués comme un outline processing. Une fois de plus Apple oublie le débutant. Nous allons donc procéder par étape :
Pour rester le plus simple possible :
Un rappel rapide, dans le script qui suit, sur le comment créer les Data Source associées aux tableaux. (Voir, pour les détails le tutoriel Partie 2 Etape 2 Insertions de données dans un tableau).
Notez, ligne 13, l'indication que seul le drag est autorisé pour le type de données rangées "rows". (Drag d'image, URL, etc non autorisés).
J'ai, pour l'apprentissage, ligne 20 vs ligne 29, donné deux méthodes d'affectation pour désigner à quel tableau nous nous adressons.
Nous allons faire un glissé-déposé de la première ligne.
Notez bien, le Drag ne transmet pas le contenu, mais simplement le numéro de la rangée, ou les numéros des rangées sous forme de liste si l'option "multiple selection" est prise.
Pour notre exemple, juste indiqué que nous voulons une opération "move".
Il faut :
Notez, "update view" false en début pour éviter une mise à jour permanente pendant le glissé.
J'ai mis les commentaires, en français, dans le code, pour faciliter la compréhension.
Il est possible de travailler directement à partir de data_record_of_the_row. Mais attention dans ce cas le nom de la variable colonne "ColIn1"est "case sensitive". Ce qui est noté par la barre vertical, appelée pipe. {|ColIn1|:"aaa", |ColIn2|:"111"}.
Le code devient :
Je suis trop débutant pour avoir une explication, sur le pourquoi d'un seul coup, juste pour les Data Sources, AppleScript deviens sensible aux majuscules. J'ai constaté et trouvé comment contourner.
Ce projet "Drag-Drop entre deux tableaux non triés" est disponible en téléchargement dans dragDropTable Etape1.zip