{"id":391,"date":"2014-12-08T19:54:29","date_gmt":"2014-12-08T18:54:29","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=391"},"modified":"2014-12-08T19:54:29","modified_gmt":"2014-12-08T18:54:29","slug":"tutorial-sencha-gxt-2-gestire-il-tooltip-in-un-grid","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/12\/tutorial-sencha-gxt-2-gestire-il-tooltip-in-un-grid\/","title":{"rendered":"TUTORIAL SENCHA GXT 2 \u2013 GESTIRE IL TOOLTIP IN UN GRID"},"content":{"rendered":"<p>Nell&#8217;articolo di oggi vedremo come integrare un tooltip in una datagrid sencha. \u00a0Nel fare questa attivit\u00e0 ho avuto qualche rimpianto per la semplicit\u00e0 di utilizzo di Flex, che permette di definire in modo semplice (tramite una sola properties) Il tooltip da far apparire per una determinata colonna.<\/p>\n<p>Con Sencha la cosa non \u00e8 cos\u00ec intuitiva, probabilmente esiste un modo molto semplice, ma non ho trovato una soluzione che mi soddisfacesse a pieno. \u00a0La soluzione che vi presento permette di definire un tooltip su un datagrid ed \u00e8 provata e testata su gxt\u00a03.1.0 e gwt\u00a02.6.1.<\/p>\n<p>La classe grid presenta una properties tooltip, ma essa riceve una string come argomento, pertanto si presta solo per tooltip statici, mentre la mia esigenza \u00e8 quella di un tooltip funzione della riga selezionata e ancora meglio della cella selezionata.<\/p>\n<p>Per soddisfare la necessit\u00e0 ho dovuto gestire gli eventi dell&#8217;oggetto, avrei sperato in una property della row ma le mie ricerche non hanno avuto esito positivo.<\/p>\n<p>Pertanto considerando di avere a che fare con un oggetto Grid della classe\u00a0com.sencha.gxt.widget.core.client.grid.Grid possiamo definire un handler sul mouse hover in questo modo:<\/p>\n<pre class=\"lang:default decode:true\">grid.addHandler(new MouseMoveHandler() {\r\n\r\n@Override\r\npublic void onMouseMove(MouseMoveEvent event) {\r\n\r\nBandoDG newHover = null;\r\nNativeEvent natev = event.getNativeEvent();\r\nif (Element.is(natev.getEventTarget())) {\r\nint hoverIdx = grid.getView().findRowIndex( Element.as(natev.getEventTarget()) );\r\nnewHover = grid.getStore().get(hoverIdx);\r\n}\r\n\r\nif (newHover == null) {\r\nreturn;\r\n}\r\n\r\nString note = newHover.getNote();\r\nString html = newHover.getOggetto();\r\nif (note!=null &amp;&amp; !note.isEmpty()) {\r\nhtml = \"&lt;span qtip='\" + note + \"'&gt;\" + note + \"&lt;br\/&gt;\" + newHover.getOggetto() + \"&lt;\/span&gt;\";\r\n} \r\ngrid.setToolTip(html);\r\n\r\n}\r\n}, MouseMoveEvent.getType());<\/pre>\n<p>Tramite tale approccio riusciremo a vedere il tooltip al passare del mouse, un tooltip funzione del model associato al grid.<\/p>\n<p>Nei miei piano avrei v oluto anche gestire la comparsa e scomparsa del tooltip in funzione della colonna, ma i comandi relativi non hanno avuto l&#8217;effetto desiderato.<\/p>\n<p>In questo caso direi meglio questo che niente. Alla prossima<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;articolo di oggi vedremo come integrare un tooltip in una datagrid sencha. \u00a0Nel fare questa attivit\u00e0 ho avuto qualche rimpianto per la semplicit\u00e0 di utilizzo di Flex, che permette di definire in modo semplice (tramite una sola properties) Il tooltip da far apparire per una determinata colonna. Con Sencha la cosa non \u00e8 cos\u00ec intuitiva, &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/12\/tutorial-sencha-gxt-2-gestire-il-tooltip-in-un-grid\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">TUTORIAL SENCHA GXT 2 \u2013 GESTIRE IL TOOLTIP IN UN GRID<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[73,18,17,19,74],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/391"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=391"}],"version-history":[{"count":1,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/391\/revisions"}],"predecessor-version":[{"id":392,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/391\/revisions\/392"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}