<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3482518081148922546</id><updated>2024-08-29T07:06:30.360-04:00</updated><category term="ireport"/><category term="jasper reports"/><category term="hql"/><category term="dialog"/><category term="jquery"/><category term="loader"/><category term="master detail"/><category term="alert"/><category term="alfabetica"/><category term="couchdb"/><category term="create widget"/><category term="custom event"/><category term="d3js"/><category term="datagrid"/><category term="date format"/><category term="decimal"/><category term="dojo gannt"/><category term="dojogrid"/><category term="download response"/><category term="email service"/><category term="error handler"/><category term="expression"/><category term="fckeditor"/><category term="fileuploaddownload"/><category term="format"/><category term="idle timer"/><category term="input mask editor"/><category term="jpegcam"/><category term="jskeyboard"/><category term="liveForm"/><category term="log4j"/><category term="login"/><category term="lookupEditor"/><category term="mapquest"/><category term="navigation"/><category term="player"/><category term="progressbar"/><category term="registration service"/><category term="relatedPanel"/><category term="runtime"/><category term="select editor"/><category term="series bar chart"/><category term="toaster"/><category term="user management"/><category term="vlc"/><category term="wavemaker"/><category term="wizard widget"/><title type='text'>mavirroco-wavemaker</title><subtitle type='html'>Este blog esta dedicado a la comunidad hispana de wavemaker para poder compartir nuestras ideas y solucionar problemas del desarrollo de software</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-2055160734507404665</id><published>2015-10-03T10:12:00.001-04:00</published><updated>2015-10-03T10:12:08.916-04:00</updated><title type='text'>Quitar el search bar del select menu en phone y tablets</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTnWB4Ji2agGC5ssDxCh5cY-Zjv4P5tkKhNuZDDoAcxxW92m7aF7bF45TX_YOiC3w5Jz5-nlT1_plHdoW1Zoq6_5bvp1ZHtuVQuGqW3VB5Zcp_C5G5eHg4zp8U5Wi0-82RRI1jQqwwzDA/s1600/searchbar.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTnWB4Ji2agGC5ssDxCh5cY-Zjv4P5tkKhNuZDDoAcxxW92m7aF7bF45TX_YOiC3w5Jz5-nlT1_plHdoW1Zoq6_5bvp1ZHtuVQuGqW3VB5Zcp_C5G5eHg4zp8U5Wi0-82RRI1jQqwwzDA/s320/searchbar.png&quot; width=&quot;226&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Encontre un codigo sencillo para quitar el search bar cuando clickeas el select menu en dispositivos moviles como phone y tablets.&lt;br /&gt;
&lt;br /&gt;
Aqui el codigo&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;start: function() {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dojo.extend(wm.ListSet, {showSearchBar: false});&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&lt;br /&gt;
espero que les sirva</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/2055160734507404665/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/2055160734507404665' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2055160734507404665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2055160734507404665'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/10/quitar-el-search-bar-del-select-menu-en.html' title='Quitar el search bar del select menu en phone y tablets'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTnWB4Ji2agGC5ssDxCh5cY-Zjv4P5tkKhNuZDDoAcxxW92m7aF7bF45TX_YOiC3w5Jz5-nlT1_plHdoW1Zoq6_5bvp1ZHtuVQuGqW3VB5Zcp_C5G5eHg4zp8U5Wi0-82RRI1jQqwwzDA/s72-c/searchbar.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-4929564694139543070</id><published>2015-10-02T18:56:00.003-04:00</published><updated>2015-10-02T18:56:23.626-04:00</updated><title type='text'>Cambiar el incremento minutos del time editor </title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQzuPbklxBfdUv5H2Z_Hwnd5coFwLf2URq5ZT43G89g3SC5eSD689YV49t3WHNRZX2P_kHvLm1uuakk0OFVQiA-6X6bS-9J2ycQ6zIP3nmDrAE6LYU1Sue_IzhKGEQU-kAZ0ShKl3jAs/s1600/time.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQzuPbklxBfdUv5H2Z_Hwnd5coFwLf2URq5ZT43G89g3SC5eSD689YV49t3WHNRZX2P_kHvLm1uuakk0OFVQiA-6X6bS-9J2ycQ6zIP3nmDrAE6LYU1Sue_IzhKGEQU-kAZ0ShKl3jAs/s320/time.png&quot; width=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Si buscaban por ahi cambiar el incremento minutos del time editor con este codigo en el metodo start&lt;br /&gt;
lo pueden hacer&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;start: function() {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;dojo.extend(dijit._TimePicker, {clickableIncrement: &quot;T00:30:00&quot;});&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&lt;br /&gt;
en este caso estoy cambiando la variacion a 30min en ves de 15min por defecto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
espero que les sirva</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/4929564694139543070/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/4929564694139543070' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4929564694139543070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4929564694139543070'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/10/cambiar-el-incremento-minutos-del-time.html' title='Cambiar el incremento minutos del time editor '/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQzuPbklxBfdUv5H2Z_Hwnd5coFwLf2URq5ZT43G89g3SC5eSD689YV49t3WHNRZX2P_kHvLm1uuakk0OFVQiA-6X6bS-9J2ycQ6zIP3nmDrAE6LYU1Sue_IzhKGEQU-kAZ0ShKl3jAs/s72-c/time.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-1236790285979991011</id><published>2015-06-18T20:00:00.000-04:00</published><updated>2015-06-18T23:38:02.155-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="idle timer"/><title type='text'>Crear una Alert de Inactividad con dojo en wavemaker</title><content type='html'>Para poder controlar los problemas de sesion podemos usar un alert de inactividad para cerrar automaticamente la sesion activa.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-yfHZYvSU_6y2kY8_G69KIPPZL28AnkDRyFEQc4KsOZxiFu5VGOGjdOUfVGO22BqvGU5z-TslPmm8FT5kWW0y3QMabBBM9Uyf4K3kQo4ts_ZR8RCuk8pdP5YQfWOTgElXZZq8JZgjP8Y/s1600/sessionexp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-yfHZYvSU_6y2kY8_G69KIPPZL28AnkDRyFEQc4KsOZxiFu5VGOGjdOUfVGO22BqvGU5z-TslPmm8FT5kWW0y3QMabBBM9Uyf4K3kQo4ts_ZR8RCuk8pdP5YQfWOTgElXZZq8JZgjP8Y/s320/sessionexp.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Para ello tenemos que adjuntar este codigo en el App Script en la parte final&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
dojo.declare(&quot;Monitor&quot;, null, {
    _events: [
        [window, &#39;scroll&#39;],
        [window, &#39;resize&#39;],
        [document, &#39;mousemove&#39;],
        [document, &#39;keydown&#39;]
    ],
    _idleTime: null,
    _timers: null,
    idleTime: null,

    constructor: function(time, timers) {
        Monitor.prototype.time = time;
        this._timers = timers;
        this.initObservers();
        this.setTimer();
    },
    initObservers: function() {
        dojo.forEach(this._events, function(e) {
            dojo.connect(e[0], e[1], function(event) {
                Monitor.prototype.onInterrupt();
            });
        });
    },
    onInterrupt: function() {
        this.idleTime = new Date() - this._idleTime;
        dojo.publish(&quot;state:active&quot;, [this.idleTime]);
        this.setTimer();
    },
    setTimer: function() {
        var oj = Monitor.prototype;
        this.clearTimers();
        this._idleTime = new Date();

        this._timers.push(setTimeout(function() {
            dojo.publish(&quot;state:idle&quot;, null);
        }, oj.time));

    },
    clearTimers: function() {
        if (this._timers) {
            for (var i = 0; i &amp;lt; this._timers.length; i++) {
                //console.debug(&quot;Clearing Timer: &quot; + this._timers[i]);
                clearTimeout(this._timers[i]);
            }
        }
        this._timers = [];
    }

});
&lt;/code&gt;

&lt;br /&gt;
&lt;br /&gt;
en nuestro main page colocamos antes de la primera linea de codigo&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
var logoutNow = function() {
    main1.varTemplateLogout.update();
};&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;var logoutTimeout;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;var monitor = new Monitor(180000, []); //180 000 =3 minutes&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
aqui lo mas importante es el valor de 180 000 corresponde a los minutos que se dispara la advertencia&lt;br /&gt;
&lt;br /&gt;
ahora en nuestro main page en start event&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
start: function() {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;dojo.addOnLoad(function() {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;function onActive(args) {
                monitor.clearTimers();
            }&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;function onIdle() {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; console.debug(&quot;idle...logging out&quot;);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; logoutTimeout = setTimeout(logoutNow, 60000);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; main.idleDialog.show();&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;}&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;dojo.subscribe(&quot;state:active&quot;, null, onActive);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;dojo.subscribe(&quot;state:idle&quot;, null, onIdle);
        });&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;},&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
y en nuestro main page colocamos un dialog con un label y 2 botones para que no sirva para mostrar la advertencia&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;idleDialog: [&quot;wm.DesignableDialog&quot;, {&quot;buttonBarId&quot;:&quot;buttonBar5&quot;,&quot;containerWidgetId&quot;:&quot;&quot;,&quot;desktopHeight&quot;:&quot;120px&quot;,&quot;height&quot;:&quot;120px&quot;,&quot;styles&quot;:{},&quot;title&quot;:undefined,&quot;width&quot;:&quot;300px&quot;}, {&quot;onShow&quot;:&quot;idleDialogShow&quot;}, {
  containerWidget16: [&quot;wm.Container&quot;, {&quot;_classes&quot;:{&quot;domNode&quot;:[&quot;wmdialogcontainer&quot;,&quot;MainContent&quot;]},&quot;autoScroll&quot;:true,&quot;height&quot;:&quot;100%&quot;,&quot;horizontalAlign&quot;:&quot;left&quot;,&quot;padding&quot;:&quot;5&quot;,&quot;verticalAlign&quot;:&quot;top&quot;,&quot;width&quot;:&quot;100%&quot;}, {}, {
   label7: [&quot;wm.Label&quot;, {&quot;_classes&quot;:{&quot;domNode&quot;:[&quot;dialogfooter&quot;]},&quot;caption&quot;:&quot;Your session close in 60 seconds.&quot;,&quot;padding&quot;:&quot;4&quot;,&quot;styles&quot;:{},&quot;width&quot;:&quot;100%&quot;}, {}],
   label4: [&quot;wm.Label&quot;, {&quot;caption&quot;:&quot;Did you want to keep working?&quot;,&quot;height&quot;:&quot;100%&quot;,&quot;padding&quot;:&quot;4&quot;,&quot;styles&quot;:{&quot;fontSize&quot;:&quot;15px&quot;,&quot;fontWeight&quot;:&quot;bold&quot;},&quot;width&quot;:&quot;278px&quot;}, {}]
  }],
  buttonBar5: [&quot;wm.ButtonBarPanel&quot;, {&quot;border&quot;:&quot;1,0,0,0&quot;,&quot;borderColor&quot;:&quot;#333333&quot;,&quot;desktopHeight&quot;:&quot;33px&quot;,&quot;height&quot;:&quot;33px&quot;}, {}, {
   YesIdleBtn: [&quot;wm.Button&quot;, {&quot;caption&quot;:&quot;Yes&quot;,&quot;margin&quot;:&quot;4&quot;,&quot;styles&quot;:{}}, {&quot;onclick&quot;:&quot;YesIdleBtnClick&quot;}],
   NoIdleDialog: [&quot;wm.Button&quot;, {&quot;caption&quot;:&quot;No&quot;,&quot;margin&quot;:&quot;4&quot;}, {&quot;onclick&quot;:&quot;NoIdleDialogClick&quot;}]
  }]
 }],&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
y con sus respectivos eventos&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
YesIdleBtnClick: function(inSender) {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;clearTimeout(logoutTimeout);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;monitor.clearTimers();&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;this.idleDialog.hide();&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;////execute here some query for refresh server for not go to session expiration&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;},&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;NoIdleDialogClick: function(inSender) {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; main.varTemplateLogout.update();&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;},&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; idleDialogShow: function(inSender) {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; try {&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;var downloadButton = document.getElementById(&quot;countdown&quot;);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;var counter = 60;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;var id&lt;/code&gt;&amp;nbsp;= window.setInterval(function() {
                counter--;
                if (counter &amp;lt; 0) {
                    clearInterval(id);
                } else {
                    downloadButton.innerHTML = counter.toString();
                }
            }, 1000);
        } catch (e) {
            console.log(e.name, e.message);
        }&lt;br /&gt;
&amp;nbsp; },&lt;br /&gt;
&lt;br /&gt;
Espero que les sirva.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/1236790285979991011/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/1236790285979991011' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/1236790285979991011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/1236790285979991011'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/06/crear-una-alert-de-inactividad-con-dojo.html' title='Crear una Alert de Inactividad con dojo en wavemaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-yfHZYvSU_6y2kY8_G69KIPPZL28AnkDRyFEQc4KsOZxiFu5VGOGjdOUfVGO22BqvGU5z-TslPmm8FT5kWW0y3QMabBBM9Uyf4K3kQo4ts_ZR8RCuk8pdP5YQfWOTgElXZZq8JZgjP8Y/s72-c/sessionexp.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-7965379407042591017</id><published>2015-05-20T11:26:00.001-04:00</published><updated>2015-05-20T12:58:19.762-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="jskeyboard"/><title type='text'>JsKeyboard en WaveMaker</title><content type='html'>Encontre este teclado de jquery que me es util en una app touch para kiosk que no tiene teclado.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguWenJ3q1fNQNIp1SJpUxn3uKKMegLmxtDn4pXX_Jolj2cUAK-389tL-5h9iilDC0SDddqwbQ6U0HvykGpduE3HWx_vNzShh8pu1S_V4bja0EEQkuuYRGeHWkjMjG9vcB-aO4vLitLS4Y/s1600/jskeyboard.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;232&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguWenJ3q1fNQNIp1SJpUxn3uKKMegLmxtDn4pXX_Jolj2cUAK-389tL-5h9iilDC0SDddqwbQ6U0HvykGpduE3HWx_vNzShh8pu1S_V4bja0EEQkuuYRGeHWkjMjG9vcB-aO4vLitLS4Y/s400/jskeyboard.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Como siempre agregan las fuentes al index.html&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;resources/css/jsKeyboard.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;resources/js/jsKeyboard.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero en el Studio agregamos un html widget para colocar alli el teclado que tendria que ser en la parte de abajo del editor que necesitamos y en el colocamos un&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&quot;virtualKeyboard&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En mi caso lo enlace con un largeTextArea y tuve que agregar un evento onChange en start event&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;start: function() {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dojo.connect(this.largeTextArea1.domNode, &quot;onkeyup&quot;, this, &quot;largeTextArea1Change&quot;); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $(function() {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jsKeyboard.init(&quot;virtualKeyboard&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; });&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&lt;br /&gt;
Ahora para ver el teclado virtual podemos agregar este codigo en algun evento por ejemplo lo hice en un boton&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;button1Click: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;this.showKeyboard(&quot;dijit_form_SimpleTextarea_0&quot;);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&amp;nbsp;tambien necesitamos agregar un par de funciones como estas&lt;br /&gt;
&lt;br /&gt;
showKeyboard: function(id) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.clean($(&quot;#&quot; + id));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jsKeyboard.currentElement = $(&quot;#&quot; + id);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jsKeyboard.show();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;clean: function(t) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!isCleaned) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $(t).text(&quot;&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; isCleaned = true;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&lt;br /&gt;
y finalmente ya podemos usarlo en nuestro text area.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/7965379407042591017/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/7965379407042591017' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/7965379407042591017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/7965379407042591017'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/05/jskeyboard-en-wavemaker.html' title='JsKeyboard en WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguWenJ3q1fNQNIp1SJpUxn3uKKMegLmxtDn4pXX_Jolj2cUAK-389tL-5h9iilDC0SDddqwbQ6U0HvykGpduE3HWx_vNzShh8pu1S_V4bja0EEQkuuYRGeHWkjMjG9vcB-aO4vLitLS4Y/s72-c/jskeyboard.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-6380643239172986371</id><published>2015-05-20T10:56:00.000-04:00</published><updated>2015-05-29T15:25:31.270-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mapquest"/><title type='text'>Integracion MapQuest en WaveMaker</title><content type='html'>Buscando una alternativa a google maps encontre MapQuest para usar en algunas apps sin preocuparse en cuestiones de licencia.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFnFnm0LVvWLzCjV4S8hLZssUlmtJLNt2uwgkjWe_ctuXRH3vRWp1RLIwEjW7RUGcthbgaYIly7agwAL_A7NMuMVMG0wB_pTB51IANLqVA_wYPHhZ5zSa25A86DYPGhuBTSjKqp1RDVc8/s1600/mapquest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;402&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFnFnm0LVvWLzCjV4S8hLZssUlmtJLNt2uwgkjWe_ctuXRH3vRWp1RLIwEjW7RUGcthbgaYIly7agwAL_A7NMuMVMG0wB_pTB51IANLqVA_wYPHhZ5zSa25A86DYPGhuBTSjKqp1RDVc8/s640/mapquest.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Podemos hacer la integracion con codigo js que nos provee en la documentacion de MapQuest&lt;/div&gt;
&lt;div&gt;
aqui les comparto un ejemplo de marcadores.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Primero debemos crear una cuenta en MapQuest y obtener un key para apuntar al script en el index.html&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;script src=&quot;http://open.mapquestapi.com/sdk/js/v7.0.s/mqa.toolkit.js?key=YOURKEY&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ahora en Wavemaker &amp;nbsp;usar un widget Html como contenedor para alli mostrar el mapa, luego en source js vamos a configurar nuestro marker en mi caso hice 3 custom markers&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;code&gt;var customIcon1 = new MQA.Icon(&#39;resources/images/yo_green46.png&#39;, 20, 29);&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;code&gt;var customIcon2 = new MQA.Icon(&#39;resources/images/yo_yellow46.png&#39;, 20, 29);&amp;nbsp;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;code&gt;var customIcon3 = new MQA.Icon(&#39;resources/images/yo_red46.png&#39;, 20, 29);&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
la idea ahora es crear un objeto coleccion de mapquest con el conjunto de coordenadas de los marcadores&lt;/div&gt;
&lt;div&gt;
y podemos llenar desde la db o una lista ..en mi caso utilice la db y obtengo los datos desde un liveVariable&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp;/*Create a new POI collection.*/&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var sc = new MQA.ShapeCollection(),&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; poi, latlng = {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lat: 39.0,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lng: -82.0&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /*Create additional POIs and add them to the shape collection.*/&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (i = 0; i &amp;lt; this.liveVariable1.getData().length; i++) {&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; latlng.lat = this.liveVariable1.getData()[i].lat;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; latlng.lng = this.liveVariable1.getData()[i].lng;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; poi = new MQA.Poi(latlng);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (this.liveVariable1.getData()[i].status == &quot;Status 1&quot;) {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; poi.setIcon(customIcon1);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (this.liveVariable1.getData()[i].status == &quot;Status 2&quot;) {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; poi.setIcon(customIcon2);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (this.liveVariable1.getData()[i].status == &quot;Status 3&quot;) {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; poi.setIcon(customIcon3);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sc.add(poi);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Al finalizar creo un objeto TileMap para agregar la coleccion que ya tenemos&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp;/*Construct an instance of MQA.TileMap with the shape collection and margin offset in the map constructor.*/&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; window.map = new MQA.TileMap({&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elt: document.getElementById(&#39;main_mapHtml1&#39;),&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mtype: &#39;osm&#39;,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; collection: sc,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bestFitMargin: 100&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; });&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Eso es todo ahora para generar otro mapa como consejo se tendria que borrar el anterior para ello&lt;/div&gt;
&lt;div&gt;
con main.mapHtml1.domNode.innerHTML = &quot;&quot;; podemos hacerlo.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/6380643239172986371/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/6380643239172986371' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6380643239172986371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6380643239172986371'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/05/integracion-mapquest-en-wavemaker.html' title='Integracion MapQuest en WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFnFnm0LVvWLzCjV4S8hLZssUlmtJLNt2uwgkjWe_ctuXRH3vRWp1RLIwEjW7RUGcthbgaYIly7agwAL_A7NMuMVMG0wB_pTB51IANLqVA_wYPHhZ5zSa25A86DYPGhuBTSjKqp1RDVc8/s72-c/mapquest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-1766266395560754842</id><published>2015-05-20T08:53:00.000-04:00</published><updated>2015-05-20T12:59:17.081-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="create widget"/><category scheme="http://www.blogger.com/atom/ns#" term="runtime"/><title type='text'>Crear Widgets de forma dinamica</title><content type='html'>Aqui les dejo un snippet de como crear diferentes widget en js onRunTime, para ello tienen que apuntar a un container como por ejemplo un panel que estoy utilizando en el ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiephmY2UuG2GRJglvCP7yPxvEk4a33bxrITaujBpYbNgJqSnQ9bat0eRa20PbKeH_Zu7v3sfUsFv85EGnj6Hc5m9w8TvOatWbo8db3KuD1g9HIHqNfeDD-5fNXA3OYFWnQTZmoghjW5Lk/s1600/panel1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;168&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiephmY2UuG2GRJglvCP7yPxvEk4a33bxrITaujBpYbNgJqSnQ9bat0eRa20PbKeH_Zu7v3sfUsFv85EGnj6Hc5m9w8TvOatWbo8db3KuD1g9HIHqNfeDD-5fNXA3OYFWnQTZmoghjW5Lk/s640/panel1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aqui el codigo&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;buttonTextEditorClick: function(inSender) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.layoutBox1.createComponent(&quot;someTextEditor&quot;, &quot;wm.Text&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.someTextEditor.setDataValue(&quot;hola&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&amp;nbsp; &amp;nbsp; buttonSelectEditorClick: function(inSender) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.createComponent(&quot;mySelect&quot;, &quot;wm.SelectMenu&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.mySelect.setOptions(&quot;Rojo,Azul,Verde&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&amp;nbsp; &amp;nbsp; buttonCheckBoxClick: function(inSender) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.createComponent(&quot;myCheckBox&quot;, &quot;wm.Checkbox&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.myCheckBox.setCaption(&quot;El cHECK BOX&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&amp;nbsp; &amp;nbsp; buttonRadioClick: function(inSender) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.createComponent(&quot;someRadio&quot;, &quot;wm.RadioButton&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&amp;nbsp; &amp;nbsp; buttonTextAreaClick: function(inSender) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.createComponent(&quot;textAreaEditor&quot;, &quot;wm.LargeTextArea&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; },&lt;br /&gt;
&amp;nbsp; &amp;nbsp; buttonLabelClick: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;this.layoutBox1.createComponent(&quot;myLabel&quot;, &quot;wm.Label&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.myLabel.setCaption(&quot;un ejemplo&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;buttonRadioSetClick: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; this.layoutBox1.createComponent(&quot;myRadioSet&quot;, &quot;wm.RadioSet&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.myRadioSet.setOptions(&quot;Masculino,Femenino,Otros&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&amp;nbsp; buttonTextArea1Click: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; this.panel1.createComponent(&quot;textAreaEditorPanel&quot;, &quot;wm.LargeTextArea&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.textAreaEditorPanel.setCaption(&quot;mucho texto&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.panel1.reflow();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&amp;nbsp; buttonRichTextClick: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;this.layoutBox1.createComponent(&quot;richText&quot;, &quot;wm.RichText&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&amp;nbsp; buttonDateClick: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;this.layoutBox1.createComponent(&quot;dateEditor1&quot;, &quot;wm.Date&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.layoutBox1.reflow();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&amp;nbsp; buttonDojoUploadClick: function(inSender) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; this.panel1.createComponent(&quot;dojoUpload&quot;, &quot;wm.DojoFileUpload&quot;, {});&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.panel1.reflow();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;},&lt;br /&gt;
&lt;br /&gt;
Espero que les sirva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/1766266395560754842/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/1766266395560754842' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/1766266395560754842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/1766266395560754842'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/05/crear-widgets-de-forma-dinamica.html' title='Crear Widgets de forma dinamica'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiephmY2UuG2GRJglvCP7yPxvEk4a33bxrITaujBpYbNgJqSnQ9bat0eRa20PbKeH_Zu7v3sfUsFv85EGnj6Hc5m9w8TvOatWbo8db3KuD1g9HIHqNfeDD-5fNXA3OYFWnQTZmoghjW5Lk/s72-c/panel1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-2935728780133284789</id><published>2015-05-06T20:13:00.003-04:00</published><updated>2015-05-20T12:58:58.711-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="wizard widget"/><title type='text'>Personalizar Wizard widget</title><content type='html'>En un soporte tuve la necesidad de personalizar el widget wizard en ciertos idiomas pero el texto de los componentes no venia con la propiedad indicada para editar asi&lt;br /&gt;
que mediante js y dom me di mañas para poder hacerlo. aqui comparto como podrian hacerlo&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGrmZBpf1WykFkC_ZfIuBfQtAosSfLEpt4bVdln3NWw9k5w7_XMTFN_BblSLrQO8Xu-LWeuf7xJsNznleV-ux5flERvGsDcf4kC567grv1JwYaSkT-TGFvvNmhoBTgvGMtysND2EEW9Zg/s1600/wizard.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGrmZBpf1WykFkC_ZfIuBfQtAosSfLEpt4bVdln3NWw9k5w7_XMTFN_BblSLrQO8Xu-LWeuf7xJsNznleV-ux5flERvGsDcf4kC567grv1JwYaSkT-TGFvvNmhoBTgvGMtysND2EEW9Zg/s1600/wizard.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgquJ4LY-6GwTNE1KsCdbx8q9spaw_e-EQl6an40vJDUpIhIjdZ97nXgKztLtv3nECb3-Oevjtajm8vKQaN4_F6UWenq9P2-8pzYuChLM-s1aAsqFxyldvy9-NArsaX0AANzmq3t6K_DLM/s1600/wizard2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgquJ4LY-6GwTNE1KsCdbx8q9spaw_e-EQl6an40vJDUpIhIjdZ97nXgKztLtv3nECb3-Oevjtajm8vKQaN4_F6UWenq9P2-8pzYuChLM-s1aAsqFxyldvy9-NArsaX0AANzmq3t6K_DLM/s1600/wizard2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
para cambian el texto de boton preview&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&quot;main_wizardLayers1_prevButton&quot;).innerHTML = &quot;Abbrechen&quot;;&lt;br /&gt;
&lt;br /&gt;
para cambiar el texto tambien por decorator del wizard&lt;br /&gt;
&lt;br /&gt;
this.wizardLayers1.decorator.cancelCaption = &quot;Abbrechen&quot;;&lt;br /&gt;
this.wizardLayers1.decorator.nextCaption = &quot;Weiter&quot;;&lt;br /&gt;
this.wizardLayers1.decorator.doneCaption = &quot;fertig&quot;;&lt;br /&gt;
&lt;br /&gt;
para cambiar el texto de datos invalidos en el wizard&lt;br /&gt;
&lt;br /&gt;
wm.locale.phrases[&quot;wm.WizardDecorator.TOAST_INVALID&quot;] = &quot;Ungültigen Wert für ${name}&quot;;&lt;br /&gt;
&lt;br /&gt;
espero que les sirva</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/2935728780133284789/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/2935728780133284789' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2935728780133284789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2935728780133284789'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/05/personalizar-wizard-widget.html' title='Personalizar Wizard widget'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGrmZBpf1WykFkC_ZfIuBfQtAosSfLEpt4bVdln3NWw9k5w7_XMTFN_BblSLrQO8Xu-LWeuf7xJsNznleV-ux5flERvGsDcf4kC567grv1JwYaSkT-TGFvvNmhoBTgvGMtysND2EEW9Zg/s72-c/wizard.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-3711822136574355444</id><published>2015-05-06T14:33:00.002-04:00</published><updated>2015-05-20T12:58:42.550-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="d3js"/><category scheme="http://www.blogger.com/atom/ns#" term="series bar chart"/><title type='text'>Crear un chart D3 en WaveMaker</title><content type='html'>Bueno les queria dejar un poco de codigo para incrustar bar chart series d3js en wavemaker 6.x&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicusl9dalAj3yFhGqoKkX7msIa1Eke93Xu-5N0Q7H9veMFQScc3rQ8KeeK_M4uOLjwCIkWAkyLT9GuLHouWbf0DxERk0h5mDsFOwnP8BOKOaoj43vhqxEUn5Cgi1HjnulM3MU3MM4hais/s1600/chart2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicusl9dalAj3yFhGqoKkX7msIa1Eke93Xu-5N0Q7H9veMFQScc3rQ8KeeK_M4uOLjwCIkWAkyLT9GuLHouWbf0DxERk0h5mDsFOwnP8BOKOaoj43vhqxEUn5Cgi1HjnulM3MU3MM4hais/s1600/chart2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
mas que todo hay que usar un widget html en incluir un tag div para poder llenar alli el chart&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNIhbzclR5X2zH2Cc9QX62FKMbyyKLlTXAjzAOAWYHe8KXsiviCaTNJmFZMIpFVcL7MAVhO49LZJa46ru-FraiZ8Z4HqELNpQaCcHumS_kvT8j922UiFe3xL8VyUzNxbK0RP5MdyOhGAY/s1600/chart1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;544&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNIhbzclR5X2zH2Cc9QX62FKMbyyKLlTXAjzAOAWYHe8KXsiviCaTNJmFZMIpFVcL7MAVhO49LZJa46ru-FraiZ8Z4HqELNpQaCcHumS_kvT8j922UiFe3xL8VyUzNxbK0RP5MdyOhGAY/s1600/chart1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;y por su puesto referenciar a d3js y si quiere tambien usar d3 tip pues lo mismo agregar esa referencia.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;lt;script src=&quot;http://d3js.org/d3.v3.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;lt;script src=&quot;http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js&quot;&amp;gt;&amp;lt;/script&amp;gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
ya en la pagina que vamos a trabajar creamos un objeto json datos tipo array para poder llenar el chart&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;data = [];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data.push({&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; year: 1,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Current: 2704659,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cashflow: 4499890,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Savings: 2159981&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; });&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data.push({&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; year: 2,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Current: 2027307,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cashflow: 3277946,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Savings: 1420518&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; });&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;en este ejemplo lleno con 2 series para ustedes podrian adquirir los datos desde algun liveVariable en onSuccess&lt;br /&gt;
&lt;br /&gt;
finalmente colocamos el codigo de d3 y solo referenciamos al html widget como&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;var svg = d3.select(&quot;#chart1&quot;)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
que en este caso es el div id que tenemos en nuestro html widget&lt;br /&gt;
&lt;br /&gt;
les dejo un proyecto de ejemplo &lt;a href=&quot;http://mavirroco.com/d3sample1.1.Alpha.zip&quot;&gt;mavirroco.com/d3sample1.1.Alpha.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
suerte espero que les sirva&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/3711822136574355444/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/3711822136574355444' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3711822136574355444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3711822136574355444'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2015/05/crear-un-chart-d3-en-wavemaker.html' title='Crear un chart D3 en WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicusl9dalAj3yFhGqoKkX7msIa1Eke93Xu-5N0Q7H9veMFQScc3rQ8KeeK_M4uOLjwCIkWAkyLT9GuLHouWbf0DxERk0h5mDsFOwnP8BOKOaoj43vhqxEUn5Cgi1HjnulM3MU3MM4hais/s72-c/chart2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-3018695837210443929</id><published>2014-05-16T16:27:00.001-04:00</published><updated>2015-06-19T11:50:56.577-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dojogrid"/><title type='text'>Limpiar el dojogrid sin actualizar livevariable/servicevariable</title><content type='html'>Hola les comparto una forma simple de limpiar el dojogrid sin la necesidad de actualizar livevariable/servicevariable y asi no ahorramos hacer un query a nuestra db.&lt;br /&gt;
&lt;br /&gt;
Aqui el codigo&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
var emptyCells = { items: &quot;&quot; };//creamos un objeto con items vacios&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;var emptyStore = new dojo.data.ItemFileWriteStore({data: emptyCells});
this.myGridname.dojoObj.setStore(emptyStore);//aplicamos solo sobre el objeto dojo del grid
&lt;/code&gt;
&lt;span style=&quot;background-color: #eeeeee; color: #494949; font-family: monospace; font-size: 12px; line-height: 20.399999618530273px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #eeeeee; color: #494949; font-family: monospace; font-size: 12px; line-height: 20.399999618530273px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #494949; font-family: monospace;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 12px; line-height: 20.399999618530273px;&quot;&gt;Espero que les sirva.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #494949; font-family: monospace;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 12px; line-height: 20.399999618530273px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #eeeeee; color: #494949; font-family: monospace; font-size: 12px; line-height: 20.399999618530273px;&quot;&gt;Fuente:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #494949; font-family: monospace;&quot;&gt;&lt;span style=&quot;font-size: 12px; line-height: 20.399999618530273px;&quot;&gt;http://jadendreamer.wordpress.com/2011/03/07/dojo-tutorial-clear-all-data-from-the-grid/&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/3018695837210443929/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/3018695837210443929' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3018695837210443929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3018695837210443929'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2014/05/limpiar-el-dojogrid-sin-actualizar.html' title='Limpiar el dojogrid sin actualizar livevariable/servicevariable'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-4220933170521219186</id><published>2014-02-19T15:17:00.001-04:00</published><updated>2015-05-20T12:19:06.652-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dojo gannt"/><title type='text'>DojoGantt widget en WaveMaker</title><content type='html'>Hola les quería compartir este widget que estoy utilizando el dojo gantt .es ideal para gestionar proyectos, tareas y recursos en un marco de tiempo.Aquí les muestro lo que se genera el diagrama gantt cargado desde la base de datos.&lt;br /&gt;
&lt;br /&gt;
Este widget esta en la librería de dojo desde la version 1.6 y para la integración con wavemaker no es necesario descargar nada externo.&lt;br /&gt;
Aquí les muestro la estructura básica en json.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;identifier&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;items&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:[&lt;/span&gt;&lt;/code&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;   &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;color: #006666;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;,&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;  &quot;name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;Development Project&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;  &quot;startdate&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;2012-2-11&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;  &quot;tasks&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:[]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;}]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
y la definicion necesario para crear un widget..en este case necesita un elemento para cargar con id: ganttid&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;color: #000088;&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; ganttChart &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;color: #000088;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; dojox&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;gantt&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;color: #660066;&quot;&gt;GanttChart&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;
    readOnly&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;color: #000088;&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;
    dataFilePath&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;some_url&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; 
    withResource&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;color: #000088;&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&quot;ganttid&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;
  
  ganttChart&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;();&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;  
  ganttChart&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;loadJSONData&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;();&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;
  
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;});&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
luego obviamente cargarlo en un widget contenedor de html&lt;br /&gt;
&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: #e6e6e6; border: 1px solid rgb(136, 136, 136); color: #6e7173; font-family: Courier, monospace; font-size: 11px; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 10px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;color: #000088;&quot;&gt;&amp;lt;div&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;color: #660066;&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;color: #008800;&quot;&gt;&quot;ganttid&quot;&lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;color: #000088;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;color: black;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;color: #000088;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
Aqui les muestro la aplicacion corriendo&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQUF4VZEhgQgveQ8GoiZK8qmecSg_ag6qP86Zo8dzaNSgohuT-mXMz_rABTOm9OwVBl1VLe80FMKArkpbP5aeNaR6Jz41xFGkRexM35ChZTYc4oFEpQausrwfV04FwN3tLMxBledGNr5s/s1600/testgannt.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;301&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQUF4VZEhgQgveQ8GoiZK8qmecSg_ag6qP86Zo8dzaNSgohuT-mXMz_rABTOm9OwVBl1VLe80FMKArkpbP5aeNaR6Jz41xFGkRexM35ChZTYc4oFEpQausrwfV04FwN3tLMxBledGNr5s/s1600/testgannt.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Bueno luego mejoramos un poco al widget..</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/4220933170521219186/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/4220933170521219186' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4220933170521219186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4220933170521219186'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2014/02/dojogantt-widget-en-wavemaker.html' title='DojoGantt widget en WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQUF4VZEhgQgveQ8GoiZK8qmecSg_ag6qP86Zo8dzaNSgohuT-mXMz_rABTOm9OwVBl1VLe80FMKArkpbP5aeNaR6Jz41xFGkRexM35ChZTYc4oFEpQausrwfV04FwN3tLMxBledGNr5s/s72-c/testgannt.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-2169846348732279323</id><published>2012-09-01T01:19:00.000-04:00</published><updated>2015-05-20T12:58:05.951-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="input mask editor"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><title type='text'>Input Mask Editor en WaveMaker</title><content type='html'>Buscando un buen Mask plugin para integrar a un proyecto que estaba trabajando pude unir este de jquery&lt;br /&gt;
http://digitalbush.com/projects/masked-input-plugin/#demo a un editor de waveker.. aqui les dejo el proyecto de prueba...&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.novasoftware.com/Images/JQuery-Plugin/Mask-Input.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.novasoftware.com/Images/JQuery-Plugin/Mask-Input.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
Lo primero que hay que hacer es buscar el editor id#..se lo puede hacer con un inspector de codigo como firebug&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
y luego colocar los enlaces&amp;nbsp;en index.html page&lt;span style=&quot;line-height: 1.4;&quot;&gt;&amp;nbsp;de los javascripts que vamos a necesitar&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;codeblock&quot; style=&quot;background-color: #eeeeee; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;
&lt;code style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;resources/javascript/jquery.maskedinput.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
luego en la funcion &quot;start&quot; poner el masked pattern que necesites&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;codeblock&quot; style=&quot;background-color: #eeeeee; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;
&lt;code style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;dojo.declare(&quot;Main&quot;, wm.Page, {&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; start: function() {&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //here we set the mask to current texteditor&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jQuery(function($) {&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&quot;#dijit_form_TextBox_0&quot;).mask(&quot;99/99/9999&quot;);&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (e) {&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.toastError(this.name + &quot;.start() Failed: &quot; + e.toString());&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _end: 0&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
js file:&amp;nbsp;&lt;a href=&quot;http://cloud.github.com/downloads/digitalBush/jquery.maskedinput/jquery.maskedinput-1.3.min.js&quot;&gt;http://cloud.github.com/downloads/digitalBush/jquery.maskedinput/jquery.maskedinput-1.3.min.js&lt;/a&gt;&lt;br /&gt;
Descargar desde aqui el proyecto de ejemplo: &lt;a href=&quot;http://www.mavirroco.com/InputMask.1.Alpha.zip&quot;&gt;www.mavirroco.com/InputMask.1.Alpha.zip&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/2169846348732279323/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/2169846348732279323' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2169846348732279323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2169846348732279323'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2012/09/input-mask-editor-en-wavemaker.html' title='Input Mask Editor en WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-5872414835340575024</id><published>2012-08-28T23:57:00.001-04:00</published><updated>2015-05-20T12:57:44.618-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jpegcam"/><title type='text'>Integrar JPEGCAM con WaveMaker para tus fotos en tu web</title><content type='html'>Hace un tiempo realize una pequeña integracion con JPEGCAM para WaveMaker para sacar fotos desde tu webcam y guardarlas en el servidor. aqui les paso un breve tutorial para poder resolverlo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvE-gbtfZ6DKAhwOZKVVYLORtpUQX6mW_RsRCI2qHvDON7f-xV4TQfgOlzbBqGPVgxSTxPCdREQMA6isrbdXvjy1DwRJvSiXZjYAFbwyBpiQUj9D0NEFdmsIIfrds3qJr6ckKmSkNWNk/s1600/sfEWjr.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;348&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvE-gbtfZ6DKAhwOZKVVYLORtpUQX6mW_RsRCI2qHvDON7f-xV4TQfgOlzbBqGPVgxSTxPCdREQMA6isrbdXvjy1DwRJvSiXZjYAFbwyBpiQUj9D0NEFdmsIIfrds3qJr6ckKmSkNWNk/s640/sfEWjr.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Tutorial aqui&amp;nbsp;&lt;a href=&quot;http://mavirroco.com/DocsJPEGCAMWAVEMAKER.pdf&quot;&gt;http://mavirroco.com/DocsJPEGCAMWAVEMAKER.pdf&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/5872414835340575024/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/5872414835340575024' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/5872414835340575024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/5872414835340575024'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2012/08/integrar-jpegcam-con-wavemaker-para-tus.html' title='Integrar JPEGCAM con WaveMaker para tus fotos en tu web'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvE-gbtfZ6DKAhwOZKVVYLORtpUQX6mW_RsRCI2qHvDON7f-xV4TQfgOlzbBqGPVgxSTxPCdREQMA6isrbdXvjy1DwRJvSiXZjYAFbwyBpiQUj9D0NEFdmsIIfrds3qJr6ckKmSkNWNk/s72-c/sfEWjr.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-2362050710849032973</id><published>2012-08-28T23:36:00.001-04:00</published><updated>2015-05-20T12:57:32.041-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ireport"/><category scheme="http://www.blogger.com/atom/ns#" term="jasper reports"/><title type='text'>OFFTOPIC: Scriptlet para numeros en literal en jasperreports</title><content type='html'>Queria compartir este scriptlet, una clase java para crear funciones especificas en jasper reports, que estaba usando para un reporte en para mostrar los&amp;nbsp;numeros en literal, muy utilizados en facturas.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.qfxsolutions.co.uk/solutions/icon_pr_jasperreports_pro.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.qfxsolutions.co.uk/solutions/icon_pr_jasperreports_pro.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Bueno no es un post directamente relaciondo a WaveMaker pero quize compartir para que puedan incluirlo en sus aplicaciones.&lt;br /&gt;
&lt;br /&gt;
Aqui la clase en java.&lt;br /&gt;
&lt;pre&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;code style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;import java.text.DecimalFormat;

public class EnglishNumberToWords extends JRDefaultScriptlet{

  private static final String[] tensNames = {
    &quot;&quot;,    &quot; ten&quot;,    &quot; twenty&quot;,    &quot; thirty&quot;,    &quot; forty&quot;,    &quot; fifty&quot;,    &quot; sixty&quot;,    &quot; seventy&quot;,    &quot; eighty&quot;,    &quot; ninety&quot;
  };

  private static final String[] numNames = {
    &quot;&quot;,
    &quot; one&quot;,    &quot; two&quot;,    &quot; three&quot;,    &quot; four&quot;,    &quot; five&quot;,    &quot; six&quot;,    &quot; seven&quot;,    &quot; eight&quot;,    &quot; nine&quot;,    &quot; ten&quot;,
    &quot; eleven&quot;,    &quot; twelve&quot;,    &quot; thirteen&quot;,    &quot; fourteen&quot;,    &quot; fifteen&quot;,    &quot; sixteen&quot;,    &quot; seventeen&quot;,    &quot; eighteen&quot;,    &quot; nineteen&quot;
  };

  private static String convertLessThanOneThousand(int number) {
    String soFar;

    if (number % 100 &amp;lt; 20){
      soFar = numNames[number % 100];
      number /= 100;
    }
    else {
      soFar = numNames[number % 10];
      number /= 10;

      soFar = tensNames[number % 10] + soFar;
      number /= 10;
    }
    if (number == 0) return soFar;
    return numNames[number] + &quot; hundred&quot; + soFar;
  }


  public static String convert(long number) {
    // 0 to 999 999 999 999
    if (number == 0) { return &quot;zero&quot;; }

    String snumber = Long.toString(number);

    // pad with &quot;0&quot;
    String mask = &quot;000000000000&quot;;
    DecimalFormat df = new DecimalFormat(mask);
    snumber = df.format(number);

    // XXXnnnnnnnnn 
    int billions = Integer.parseInt(snumber.substring(0,3));
    // nnnXXXnnnnnn
    int millions  = Integer.parseInt(snumber.substring(3,6)); 
    // nnnnnnXXXnnn
    int hundredThousands = Integer.parseInt(snumber.substring(6,9)); 
    // nnnnnnnnnXXX
    int thousands = Integer.parseInt(snumber.substring(9,12));    

    String tradBillions;
    switch (billions) {
    case 0:
      tradBillions = &quot;&quot;;
      break;
    case 1 :
      tradBillions = convertLessThanOneThousand(billions) 
      + &quot; billion &quot;;
      break;
    default :
      tradBillions = convertLessThanOneThousand(billions) 
      + &quot; billion &quot;;
    }
    String result =  tradBillions;

    String tradMillions;
    switch (millions) {
    case 0:
      tradMillions = &quot;&quot;;
      break;
    case 1 :
      tradMillions = convertLessThanOneThousand(millions) 
      + &quot; million &quot;;
      break;
    default :
      tradMillions = convertLessThanOneThousand(millions) 
      + &quot; million &quot;;
    }
    result =  result + tradMillions;

    String tradHundredThousands;
    switch (hundredThousands) {
    case 0:
      tradHundredThousands = &quot;&quot;;
      break;
    case 1 :
      tradHundredThousands = &quot;one thousand &quot;;
      break;
    default :
      tradHundredThousands = convertLessThanOneThousand(hundredThousands) 
      + &quot; thousand &quot;;
    }
    result =  result + tradHundredThousands;

    String tradThousand;
    tradThousand = convertLessThanOneThousand(thousands);
    result =  result + tradThousand;

    // remove extra spaces!
    return result.replaceAll(&quot;^\\s+&quot;, &quot;&quot;).replaceAll(&quot;\\b\\s{2,}\\b&quot;, &quot; &quot;);
  }

 }&lt;/span&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
y desde el ireport podemos usar este scriptlet.&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXmG4niw0gahZcBZyZ1he3cc9vB3zrY7Y491h95tA7HuZ0kqF0gZ9O9xa3n6vHLFaTfQkvvOw5Y53kE2zdOzxh1TCYSKg7JLQFxbM-ZXspomRdoyJ3jey5BVvqJkDu-VFRl5_XQbQEpwU/s1600/texttosmall2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;82&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXmG4niw0gahZcBZyZ1he3cc9vB3zrY7Y491h95tA7HuZ0kqF0gZ9O9xa3n6vHLFaTfQkvvOw5Y53kE2zdOzxh1TCYSKg7JLQFxbM-ZXspomRdoyJ3jey5BVvqJkDu-VFRl5_XQbQEpwU/s320/texttosmall2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtOVk3mUMZZXAEjo64Aw_1d3i7im9yFeHjj7Q_hYrtzgpq7VU6YCkko4iVpTLeN2MOeyKZ9FiJZu2IfYexFekEIi4is2YOkbfiKBWEoEr4WLu9g6A_2MF5Hk8mO8iqoF2fuLntDcln_uM/s1600/texttosmall3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;107&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtOVk3mUMZZXAEjo64Aw_1d3i7im9yFeHjj7Q_hYrtzgpq7VU6YCkko4iVpTLeN2MOeyKZ9FiJZu2IfYexFekEIi4is2YOkbfiKBWEoEr4WLu9g6A_2MF5Hk8mO8iqoF2fuLntDcln_uM/s320/texttosmall3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Espero que les sirva.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/2362050710849032973/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/2362050710849032973' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2362050710849032973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2362050710849032973'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2012/08/scriptlet-para-numeros-en-literal-en.html' title='OFFTOPIC: Scriptlet para numeros en literal en jasperreports'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXmG4niw0gahZcBZyZ1he3cc9vB3zrY7Y491h95tA7HuZ0kqF0gZ9O9xa3n6vHLFaTfQkvvOw5Y53kE2zdOzxh1TCYSKg7JLQFxbM-ZXspomRdoyJ3jey5BVvqJkDu-VFRl5_XQbQEpwU/s72-c/texttosmall2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-1017198237289502899</id><published>2012-07-21T23:12:00.001-04:00</published><updated>2015-05-20T11:52:03.202-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="log4j"/><category scheme="http://www.blogger.com/atom/ns#" term="wavemaker"/><title type='text'>Configurando el Log4j para distribuir la salida del server tomcat</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
Quiero compartir algunas configuraciones que realize hace un tiempo en mi trabajo cuando tuve problemas con mi log file del tomcat. Si tienes muchos proyectos y quieres distribuir las salidas del server de esos proyecto esto te&lt;br /&gt;
puede servir.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://logging.apache.org/log4j/2.x/images/logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://logging.apache.org/log4j/2.x/images/logo.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este ejemplo voy a usar la clase DailyRollingFileAppender del log4j que trae mi proyecto wavemaker que va a guardar la salida en un archivo nuevo y por fechas ya no en el tipico wm.log en wavemaker.&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
Para ello editamos el archivos NOMBREDELPROYECT/src/log4j.properties&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codeblock&quot; style=&quot;background-color: #eeeeee; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;
&lt;code style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;log4j.rootLogger=warn, stdout&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout=org.apache.log4j.ConsoleAppender&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout.layout=org.apache.log4j.PatternLayout&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - &amp;lt;%m&amp;gt; (%x) %n&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
y cambiar por&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;codeblock&quot; style=&quot;background-color: #eeeeee; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;
&lt;code style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;log4j.rootLogger=warn, stdout&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout.layout=org.apache.log4j.PatternLayout&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - &amp;lt;%m&amp;gt; (%x) %n&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;log4j.appender.stdout.file=/yourfolder/yournameoflogfile.log&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&lt;code style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&lt;code style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Espero que les sirva..&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.4; margin-bottom: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/1017198237289502899/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/1017198237289502899' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/1017198237289502899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/1017198237289502899'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2012/07/configurando-el-log4j-para-distribuir.html' title='Configurando el Log4j para distribuir la salida del server tomcat'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-6431575399132421794</id><published>2012-04-10T16:41:00.000-04:00</published><updated>2012-04-10T16:41:00.567-04:00</updated><title type='text'>No mas Related Editors in readonly mode....bienvenido evento onBeforeServiceCall</title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9lbSGATn733E7IJxyan2r9RW_vTBG0nq8dU0QXD7GE41e2YY6MkAbhZH1YFzjRu92yIaFuZTjhxx6dXdg77C0hxAuBKjLM3U6IIyct4aOZC2NPUxiO5QAbDWJkM2eejzfXsZ1hxbMzCg/s1600/service.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9lbSGATn733E7IJxyan2r9RW_vTBG0nq8dU0QXD7GE41e2YY6MkAbhZH1YFzjRu92yIaFuZTjhxx6dXdg77C0hxAuBKjLM3U6IIyct4aOZC2NPUxiO5QAbDWJkM2eejzfXsZ1hxbMzCg/s1600/service.png&quot; /&gt;&lt;/a&gt;En la ultima version de WaveMaker 6.4.5GA al fin pude decir adios a los tediosos Related editors para colocar mis variables ocultas y enviar como datos estaticos, bueno existian otras formas pero no me convencian.. pero ahora con el evento del liveform &amp;nbsp;onBeforeServiceCall puedo hacerlo facilmente y ahorrarme de generar mas editors para configurar mis claves foraneas. esto me facilita escribir una sola vez el codigo en vez de hacerlo al insertar o al modificar.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Aqui un ejemplo como puede indicar que campos tiene que llenar con JSON para su clave foranea.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
liveForm1BeforeServiceCall: function(inSender, inOperation, inData) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;try {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp;inData.tlkpersonnes = {gid:this.getUserId.data.dataValue};&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;} catch(e) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp;console.error(&#39;ERROR IN liveForm1BeforeServiceCall: &#39; + e);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp; },&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/6431575399132421794/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/6431575399132421794' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6431575399132421794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6431575399132421794'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2012/04/no-mas-related-editors-in-readonly.html' title='No mas Related Editors in readonly mode....bienvenido evento onBeforeServiceCall'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9lbSGATn733E7IJxyan2r9RW_vTBG0nq8dU0QXD7GE41e2YY6MkAbhZH1YFzjRu92yIaFuZTjhxx6dXdg77C0hxAuBKjLM3U6IIyct4aOZC2NPUxiO5QAbDWJkM2eejzfXsZ1hxbMzCg/s72-c/service.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-4783791399686410262</id><published>2012-03-01T10:05:00.000-04:00</published><updated>2012-03-01T10:22:32.729-04:00</updated><title type='text'>Lecciones que se debe aprender en cuando uses WaveMaker</title><content type='html'>Esta revisando algunos articulos de WaveMaker y de repente me impresiono el feedback de un usuario novato de wavemaker, bueno solo de novato por el tiempo que esta usando la herramienta pero si que actualmente me pongo a pensar ya tiene mas experiencia que unos cuentos que conozco.&lt;br /&gt;
&amp;nbsp;Bueno aqui se puede ver las lecciones aprendidas&lt;br /&gt;
&lt;a href=&quot;http://www.vcoportal.de/2012/02/lessons-learned-with-wavemaker/#.T0-AkWXAHsQ.blogger&quot;&gt;Off-topic(?): Lessons learned with Wavemaker&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Lo coloca la parte final en español:&lt;br /&gt;
&lt;br /&gt;
Así que aquí están mis lecciones aprendidas hasta ahora (más llegará, estoy seguro):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Borrar la caché del navegador. A menudo.&lt;/li&gt;
&lt;li&gt;Utilice las funciones de depuración del navegador. Firebug y herramientas para desarrolladores de Chrome es su amigo.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Ver wm.log para Hibernate, y otras cosas ServerSide JavaServices.&lt;/li&gt;
&lt;li&gt;No te olvides de ir a dormir.&lt;/li&gt;
&lt;li&gt;La tipificación de las variables WaveMaker puede ser complicado, al acceder a ellas en JavaScript o pasarlos a JavaServices. Compruebe que el depurador navegador para JSON es correcta!&lt;/li&gt;
&lt;li&gt;Los Widgets&amp;nbsp;integrados (generado)&amp;nbsp;para el acceso a la base de datos es muy agradable y un ahorro de tiempo bueno cuando se quiere crear una interfaz de usuario de 1:1 para las tareas comunes CRUD de las tablas de bases de datos. Si quieres hacer cosas más complejas (que implican varias tablas) y, en general, desea comprender lo que sucede en el fondo, empezar desde cero!&lt;/li&gt;
&lt;li&gt;Los foros de la comunidad en http://dev.wavemaker.com/forums/ son excelentes! Comparable a los foros de PowerCLI (y esperemos que los foros VCO con el tiempo también) en VMTN a encontrar buenas respuestas con una gran cantidad de listas para usar ejemplos de código para cualquier pregunta que tenga ... Sólo asegúrese de elegir un ejemplo que se ajusta a la versión Wavemaker se utiliza!&lt;/li&gt;
&lt;li&gt;Aprenda Hibernate .&lt;/li&gt;
&lt;li&gt;Ve a dormir!&lt;/li&gt;
&lt;li&gt;HQL es excelente!&lt;/li&gt;
&lt;li&gt;La base de datos integrada para modelar herramientas es buena, pero es posible que se confunda acerca de la forma relacional vs orientado a objetos para el modelado de datos =&amp;gt; Una vez más: Aprenda Hibernate y HQL.&lt;/li&gt;
&lt;li&gt;Vaya. a dormir.&lt;/li&gt;
&lt;li&gt;Estimado equipo de Wavemaker: ¿Dónde está mi &quot;Referencias Parámetros&quot;, ficha en la interfaz gráfica de usuario?&lt;/li&gt;
&lt;li&gt;No dude en leer los informes de errores Jira . Puede haber algunos errores que son importantes para los casos de uso!&lt;/li&gt;
&lt;li&gt;No supervisar la documentación de referencia para los Widgets del lado del cliente y del lado del servidor !&lt;/li&gt;
&lt;li&gt;La documentación es muy bueno, pero a veces demasiado! Se confunde cuando hay 3 ejemplos de códigos diferentes para resolver el mismo problema.&lt;/li&gt;
&lt;li&gt;Ve a dormir&lt;/li&gt;
&lt;li&gt;El uso de Eclipse y su integración a SVN / Git para la gestión de código fuente , y aprovechar las características de exportación / importación para el proceso de implementación.&lt;/li&gt;
&lt;li&gt;Cloudfoundry es una gran plataforma para dev / test! No hay locales más necesario.&lt;/li&gt;
&lt;li&gt;Spring Roo no está integrado todavía, por desgracia,  . Sería muy bueno si se puede aprovechar Roo para la capa de datos.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Ir al slzzzzzzzzzzzzzzzzzzzz&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/4783791399686410262/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/4783791399686410262' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4783791399686410262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4783791399686410262'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2012/03/lecciones-que-se-debe-aprender-en.html' title='Lecciones que se debe aprender en cuando uses WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-5497068152545115949</id><published>2011-03-14T01:30:00.000-04:00</published><updated>2015-05-20T12:53:13.622-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="progressbar"/><title type='text'>Ejemplo de ProgressBar Widget en cuenta del Preloader en WaveMaker (with...</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;344&quot; src=&quot;http://www.youtube.com/embed/XpppWe5do80?fs=1&quot; width=&quot;425&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/5497068152545115949/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/5497068152545115949' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/5497068152545115949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/5497068152545115949'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/03/ejemplo-de-progressbar-widget-en-cuenta.html' title='Ejemplo de ProgressBar Widget en cuenta del Preloader en WaveMaker (with...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/XpppWe5do80/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-4243533435049125091</id><published>2011-03-14T00:33:00.000-04:00</published><updated>2015-05-20T12:54:37.448-04:00</updated><title type='text'>Creating a web application with WaveMaker</title><content type='html'>&lt;br /&gt;
Fuente: &amp;nbsp;youtube.com</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/4243533435049125091/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/4243533435049125091' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4243533435049125091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/4243533435049125091'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/03/creating-web-application-with-wavemaker.html' title='Creating a web application with WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-3634284833904756175</id><published>2011-03-14T00:00:00.000-04:00</published><updated>2011-03-14T00:02:12.276-04:00</updated><title type='text'>Powerbuilder for the cloud: Wavemaker</title><content type='html'>&lt;iframe width=&quot;480&quot; height=&quot;295&quot; src=&quot;http://www.youtube.com/embed/Gpz3YqRKTeE?fs=1&quot; frameborder=&quot;0&quot; allowFullScreen=&quot;&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/3634284833904756175/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/3634284833904756175' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3634284833904756175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3634284833904756175'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/03/powerbuilder-for-cloud-wavemaker.html' title='Powerbuilder for the cloud: Wavemaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/Gpz3YqRKTeE/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-2735877965648864715</id><published>2011-03-13T22:24:00.000-04:00</published><updated>2011-03-13T22:25:20.826-04:00</updated><title type='text'>Making apps, not just applications - WaveMaker is the saddle to the Cloud</title><content type='html'>&lt;iframe width=&quot;480&quot; height=&quot;295&quot; src=&quot;http://www.youtube.com/embed/S-T25IupquA?fs=1&quot; frameborder=&quot;0&quot; allowFullScreen=&quot;&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/2735877965648864715/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/2735877965648864715' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2735877965648864715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/2735877965648864715'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/03/making-apps-not-just-applications.html' title='Making apps, not just applications - WaveMaker is the saddle to the Cloud'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/S-T25IupquA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-7669102278700346700</id><published>2011-03-08T15:56:00.000-04:00</published><updated>2011-03-08T15:57:07.210-04:00</updated><title type='text'>VMWare adquiere a WaveMaker a cambiar de canal amigos!!!</title><content type='html'>Miren aqui mas datos del cambio: &lt;br /&gt;http://blog.springsource.com/2011/03/08/vmware-acquires-wavemaker/ &lt;br /&gt;http://www.keeneview.com/2011/03/wavemaker-springs-to-vmware.html &lt;br /&gt;esperamos que la herramienta madure ya nos haremos amigos del spring &lt;br /&gt;community :D</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/7669102278700346700/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/7669102278700346700' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/7669102278700346700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/7669102278700346700'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/03/vmware-adquiere-wavemaker-cambiar-de.html' title='VMWare adquiere a WaveMaker a cambiar de canal amigos!!!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-3172667645879526175</id><published>2011-02-22T01:33:00.002-04:00</published><updated>2015-05-20T12:55:13.207-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fileuploaddownload"/><title type='text'>Ejemplo de user FileUploadDownload widget con parametros en 6.2.5GA</title><content type='html'>Quiero compartir una muestra de FileUploadDownload puede utilizar con el parámetro de 6.2.5GA.&lt;br /&gt;
&lt;br /&gt;
La idea es la siguiente: cargar en  &quot;resource/data&quot; y también el nombre del archivo en la base de datos como asi el usuario actual cosa de que el proceso de inicio de sesión siguiente, el logotipo se muestre.&lt;br /&gt;
&lt;br /&gt;
Para el proceso de upload y guardar el nombre en la base de datos:&lt;br /&gt;
&lt;br /&gt;
1) Agregar widget fileUploadDownload&lt;br /&gt;
2) Ir al servicio de java para el widget fileUploadDownload&lt;br /&gt;
3) Crear un nuevo método llamado uploadFile2(File MultipartFile, String userId) y copia de la misma entidad para el método de uploadFile(File MultipartFile)&lt;br /&gt;
4) Añadir el siguiente código para grabar en la base de datos el nombre del archivo y el usuario actual:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//instance the db service&lt;br /&gt;
Sample_logo service = (Sample_logo) RuntimeAccess.getInstance().getService(Sample_logo.class);&lt;br /&gt;
try {&lt;br /&gt;
service.begin();&lt;br /&gt;
Session session = service.getDataServiceManager().getSession();&lt;br /&gt;
&lt;br /&gt;
User u=new User();&lt;br /&gt;
u.setUserId(Integer.valueOf(userId));&lt;br /&gt;
&lt;br /&gt;
UserImage ci=new UserImage();&lt;br /&gt;
ci.setUser(u);&lt;br /&gt;
ci.setFileName(filename);//filename for image&lt;br /&gt;
session.save(ci);&lt;br /&gt;
service.commit();&lt;br /&gt;
}&lt;br /&gt;
catch (Exception ex)&lt;br /&gt;
{&lt;br /&gt;
ex.printStackTrace();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) En &quot;Canvas&quot; enlazar el usuario acutal (debe crear una serviceVariable para obtener userId actual) en input del &quot;userId &quot; en las propiedades del widget fileUploadDownload&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aqui el proyecto de ejemplo http://dev.wavemaker.com/forums/files/userlogo.zip</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/3172667645879526175/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/3172667645879526175' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3172667645879526175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/3172667645879526175'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/02/ejemplo-de-user-fileuploaddownload.html' title='Ejemplo de user FileUploadDownload widget con parametros en 6.2.5GA'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-6042866188906295179</id><published>2011-01-24T11:15:00.005-04:00</published><updated>2011-01-24T11:25:19.981-04:00</updated><title type='text'>Aplicaciones hechas en WM</title><content type='html'>&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://picasaweb.google.com/s/c/bin/slideshow.swf&quot; width=&quot;600&quot; height=&quot;400&quot; flashvars=&quot;host=picasaweb.google.com&amp;captions=1&amp;hl=es&amp;feat=flashalbum&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmavirroco%2Falbumid%2F5482896001906348865%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCNmcw7ya6ZfNogE%26hl%3Des&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/6042866188906295179/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/6042866188906295179' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6042866188906295179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6042866188906295179'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2011/01/aplicaciones-hechas-en-wm.html' title='Aplicaciones hechas en WM'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-5229377055025949564</id><published>2010-09-13T23:20:00.000-04:00</published><updated>2010-09-13T23:21:24.449-04:00</updated><title type='text'>Nueva direccion de video en español de WaveMaker</title><content type='html'>hola para todos los hispanos les vuelvo a compartir estos videos.y algunos nuevos en&lt;br /&gt;&lt;br /&gt;http://dev.wavemaker.com/wiki/bin/Blog/mavirroco</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/5229377055025949564/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/5229377055025949564' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/5229377055025949564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/5229377055025949564'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2010/09/nueva-direccion-de-video-en-espanol-de.html' title='Nueva direccion de video en español de WaveMaker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3482518081148922546.post-6771008959750330970</id><published>2010-09-06T08:29:00.003-04:00</published><updated>2015-05-20T12:50:46.189-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ireport"/><category scheme="http://www.blogger.com/atom/ns#" term="jasper reports"/><title type='text'>JasperReports 3.6 Development Cookbook: Excelente libro de JasperReports</title><content type='html'>&lt;a href=&quot;https://www.packtpub.com/jasperreports-3-5-2-development-cookbook/book?utm_source=mavirroco-wavemaker.blogspot.com&amp;amp;utm_medium=bookrev&amp;amp;utm_content=blog&amp;amp;utm_campaign=mdb_004606&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.packtpub.com/sites/default/files/imagecache/productview/0769_MockupCover_Raw_01.jpg&quot; style=&quot;cursor: hand; cursor: pointer; float: left; height: 152px; margin: 0 10px 10px 0; width: 125px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Revisando un poco por la web encontré este libro:JasperReports 3.6 Development Cookbook  de Bilal Siddiqui muy grafico que tiene buenos ejemplos para el desarrollo de reportes con jasperreports y lo mejor de todo esto que trae codigo fuente para descargar y probar los ejemplos.&lt;br /&gt;
&lt;br /&gt;
Los topicos mas interesantes que me gustaron hablan de como aplicar: Enhancing the Look and Feel of your Report ya que me ayudo a cambiar mis reportes basicos. Tambien Working with a Variety of Data Sources ya que almenos usaba solamente la conexion con la base de datos y ahora vamos a poder usar mas alternativas de fuente de datos.Finalemente en el capitulo 7 un tema pendiente es el manejo de Designing a crosstab—a table with dynamic rows and columns me va a ayudar bastante.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desde esta empresa lo podes comprar Packtpub y aqui esta el enlace del libro:&lt;br /&gt;
https://www.packtpub.com/jasperreports-3-5-2-development-cookbook/book</content><link rel='replies' type='application/atom+xml' href='http://mavirroco-wavemaker.blogspot.com/feeds/6771008959750330970/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3482518081148922546/6771008959750330970' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6771008959750330970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3482518081148922546/posts/default/6771008959750330970'/><link rel='alternate' type='text/html' href='http://mavirroco-wavemaker.blogspot.com/2010/09/jasperreports-36-development-cookbook.html' title='JasperReports 3.6 Development Cookbook: Excelente libro de JasperReports'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11376096360133145791</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>