{"id":555,"date":"2018-07-02T09:00:08","date_gmt":"2018-07-02T08:00:08","guid":{"rendered":"http:\/\/www.programaraciegas.net\/?p=555"},"modified":"2018-06-17T06:54:54","modified_gmt":"2018-06-17T05:54:54","slug":"como-reaccionar-a-la-seleccion-de-una-lista-de-elementos-en-applescript","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=555","title":{"rendered":"C\u00f3mo reaccionar a la selecci\u00f3n de una lista de elementos en AppleScript"},"content":{"rendered":"<p>En un art&iacute;culo anterior vimos c&oacute;mo permitir al usuario seleccionar un elemento de una lista a trav&eacute;s de un cuadro de di&aacute;logo. En este art&iacute;culo veremos c&oacute;mo reaccionar a la selecci&oacute;n del usuario.<\/p>\n<p>Partiremos de nuestro ejemplo de selecci&oacute;n de un tipo de comida para pedir a domicilio:<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} multiple selections allowed false empty selection allowed false<br \/>\n<\/code><\/p>\n<h2>Almacenando el resultado<\/h2>\n<p>Para gestionar algunas respuestas es necesario que almacenemos los resultados en una variable. Este es el caso del comando <strong>choose from list<\/strong>.<\/p>\n<p>En nuestro ejemplo almacenaremos el resultado en la variable <em>resultadoDeDialogo<\/em>.<\/p>\n<p><code><br \/>\nset resultadoDeDialogo to choose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} without multiple selections allowed and empty selection allowed<br \/>\n<\/code><\/p>\n<h2>Reaccionando dependiendo del resultado<\/h2>\n<p>Para realizar una u otra operaci&oacute;n dependiendo del valor de una variable debemos usar <a href=\"http:\/\/www.programaraciegas.net\/?p=219\">estructuras condicionales en AppleScript<\/a> para poder codificar todas las posibles acciones que el usuario haga con el cuadro de di&aacute;logo.<\/p>\n<p>En nuestro ejemplo el usuario puede realizar las siguientes operaciones:<\/p>\n<ul>\n<li>Pulsar el bot&oacute;n de cancelar<\/li>\n<li>Seleccionar un elemento y pulsar el bot&oacute;n de aceptar<\/li>\n<\/ul>\n<p>Gracias a que hemos indicado en el comando <strong>choose from list<\/strong> que el usuario no puede seleccionar m&aacute;s de un valor y que el bot&oacute;n de aceptar s&oacute;lo estar&aacute; disponible si se ha seleccionado un valor de la lista no tenemos que preocuparnos por otras posibles respuestas por parte del usuario.<\/p>\n<h3>Cancelar como resultado<\/h3>\n<p>Si el usuario pulsa el bot&oacute;n de cancelar el resultado que obtendremos en la variable <em>resultadoDeDialogo<\/em> ser&aacute; false. Sabiendo esto podemos codificar qu&eacute; hacer si el usuario pulsa el bot&oacute;n cancelar.<\/p>\n<p>En nuestro ejemplo mostraremos un mensaje invitando al usuario que vuelva a ejecutar nuestra aplicaci&oacute;n cuando tenga hambre.<\/p>\n<p><code><br \/>\nset resultadoDeDialogo to choose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} without multiple selections allowed and empty selection allowed<\/p>\n<p>if resultadoDeDialogo = false then<br \/>\n\tdisplay alert \"Vuelve cuando tengas hambre\"<br \/>\nend if<br \/>\n<\/code><\/p>\n<h3>Una lista como resultado<\/h3>\n<p>Si el usuario pulsa el bot&oacute;n de aceptar el resultado obtenido ser&aacute; una lista de AppleScript con todos los valores seleccionados.<\/p>\n<p>Si hubiesemos permitido al usuario pulsar el bot&oacute;n aceptar sin seleccionar nada obtendr&iacute;amos como resultado una lista vac&iacute;a.<\/p>\n<p>Para nuestro ejemplo mostraremos un mensaje indicando que a nosotros nos apetece tambi&eacute;n ese tipo de comida excepto si es comida vegetariana ya que mostraremos otro mensaje.<\/p>\n<p><code><br \/>\nset resultadoDeDialogo to choose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} without multiple selections allowed and empty selection allowed<\/p>\n<p>if resultadoDeDialogo = false then<br \/>\n\tdisplay alert \"Vuelve cuando tengas hambre\"<br \/>\nelse<br \/>\n\tset tipoComida to get text 1 of resultadoDeDialogo<br \/>\n\tif tipoComida = \"Vegetariana\" then<br \/>\n\t\tdisplay alert \"No me apetece mucho comida vegetariana ahora. Que aproveche.\"<br \/>\n\telse<br \/>\n\t\tset cadenaResultado to \"A mi tambi\u00e9n me apetece comer comida \" & tipoComida & \". Pide un poco para mi tambi\u00e9n, por favor.\"<br \/>\n\t\tdisplay alert cadenaResultado<br \/>\n\tend if<br \/>\nend if<br \/>\n<\/code><\/p>\n<p>Con todo esto ya podemos crear scripts de AppleScript m&aacute;s complejos en los que el usuario puede controlar c&oacute;mo reaccionar&aacute; nuestro programa.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En un art&iacute;culo anterior vimos c&oacute;mo permitir al usuario seleccionar un elemento de una lista a trav&eacute;s de un cuadro de di&aacute;logo. En este art&iacute;culo veremos c&oacute;mo reaccionar a la selecci&oacute;n del usuario. Partiremos de nuestro ejemplo de selecci&oacute;n de un tipo de comida para pedir a domicilio: choose from list {\u00abVegetariana\u00bb, \u00abMejicana\u00bb, \u00abChina\u00bb, \u00abJaponesa\u00bb, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=555\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abC\u00f3mo reaccionar a la selecci\u00f3n de una lista de elementos en AppleScript\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,6],"tags":[83,288],"class_list":["post-555","post","type-post","status-publish","format-standard","hentry","category-applescript","category-programacion","tag-applescript-2","tag-listas"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=555"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/555\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}