Foro

Correr apps Ext JS con adobe AIR o similar...(YA PUDEE!!)

0
Buenas. Me estoy metiendo en este mundo y me surge la necesidad de saber de que manera voy a correr mis aplicaciones, ya que NO quiero correrlas en un navegador. La idea es correrlas como se ve en el ejemplo del sitio web de extjs... simpleTask creo que es, pero la verdad es que no pude hacer andar ni una simple ventana, ni con Aptana ni con Dreamweaver. Loq ue quiero es correr mis ventanas como si fueran aplicaciones de escritorio. - Se puede hacer con una aplicacion ExtJS normal o hay que diseñarlas con otra estructura? - Que pasa con los archivos PHP y las conexiones con SQL? - Se puede hacer que la aplicacion se llame desde el servidor y no localmente? o sea mi app no funciona local, tengo que llamarla desde mi server. - Hay otra manera mas efectiva de hacerlo? yo me meti a investigar AIR porque no conozco otra cosa, pero lo cierto es que ni siquiera hay un solo tutorial para los que recien arrancamos... Saludos y gracias.
0
buena voz, mas info porfa!!
0
No hay mas info. Lo que hice es mi app en el server web en una intranet. En adobe air lo unico que hago es una ventana con un iframe a la aplicacion en el server, es como si fuera un navegador, solo con la apariencia de window de extjs y sin todos los botenes y barra de direcciones... Esta es toda mi app en air: Ext.onReady(function() { new Ext.air.Window({ win: window.nativeWindow, width: 1280, height: 768, layout: 'fit', iconCls:'icon-grid', title: 'Consulta de Personal', html: '' }); }); Si entras en http://foro.quizzpot.com/discussion/comment/3513/#Comment_3513 vas a ver un screenshot de mi app. Lo unico que no anda hasta ahora es un plugin que rota el texto cuando se contrae un panel hacia este u oeste. Saludos.
0
A ver que opinan... hice la famosa ventana de air, como puse mas arriba... y en vez de pasar toda mi aplicacion a air, solamente le hago un iframe con la url de mi aplicacion en el servidor. De esa manera me ahorro muuuuuchos problemas, sobre todo corriendo los php fuera del servidor. Seguramente tiene sus desventajas, porque es muy fácil lo que hago y aún asi muchos prefieren correr la app en el browser (a mi no me gusta para nada) Lo bueno de esto es que mi app puede correr en windows como una app de escritorio normal y tambien en browser por ejemplo en una tableta, sin agregarle nada... esa era mi idea al principio... escucho criticas. Gracias, saludos.
0
Excelente trabajo! la verdad es que no tengo experiencia con Air, sería bueno que fueras documentando tu progreso para futuras referencias. Saludos
0
Me esta costando mi salud... jeje. Pero lo cierto es que NO hay en ningun lado un ejemplo claro y limpio de como hacer una simple ventana! eso es lo minimo para el que empieza (como yo) bajando el simpleTask u otros ejemplos que no son "simples" es un dolor de cabeza. Yo a medida que vaya aumentando conocimientos los voy a volcar acá, ahora justamente estoy peleando para poner un grid, porque tengo errores. Estoy recibiendo ayuda del foro de Sencha por el momento. Saludos.
0
Rianse... pero no me digan que no es hermosa... jaja El rar que adjunto, se puede meter como proyecto de Aptana, y queda andando sin modificaciones calculo... se debe poder pulir un poco los archivos que incluyo ene el proyecto, porque lo que hice al no encontrar informacion de como hacer una simple ventana en AIR, fue agarrar una app andando y pelarla hasta que me quede solo la ventana... de ahi para adelante calculo que no cambia mucho la cosa... por lo menos es un comienzo creo. Saludos.
0
Bueno, estuve averiguando y encontre algunos ejemplos que funcionan... lo que no puedo hacer es convertir mi ventana (que ya esta tomando forma...) a una ventana AIR. Ya inclui los archivos necesarios ext.air pero tengo muchas tudas todavia. Pongo parte de mi code y del code de la ventana ext.air que consegui: App air: Ext.onReady(function() { var codeWin, form = new WinForm(), docs = 'http://docs.sencha.com/air/'; new Ext.air.Window({ win: window.nativeWindow, width: 800, height: 600, autoScroll: true, items: [ form ], tbar: [{ text: 'Show source', handler: function() { if (!codeWin) { codeWin = new CodeWindow({ closeAction: 'hide', width: 600, height: 300, title: 'Source of root window', source: { win: { toString: function() { return "window.nativeWindow, // wrap this around the native root window, use this always on root windows"; } }, width: 800, height: 600 } }); } codeWin.show(); } },'-',{ text: 'Open Docs', clickEvent: 'mousedown', handler: function() { var f = form.find('hasFocus', true)[0]; air.navigateToURL(new air.URLRequest(docs + (f ? '&member=' + f.name : '')), "_blank"); } }], buttonAlign: 'center', fbar: [{ text: 'Create new window', handler: function() { var o = Ext.apply({}, form.getForm().getFieldValues()); new CodeWindow(o); } }] }); }, window, {single: true}); Otro de los archivos air... CodeWindow = Ext.extend(Ext.air.Window, { hidden: false, autoScroll: true, title: 'new Ext.air.Window', buttonAlign: 'center', trayIcon: '/lib/extair/resources/icons/extlogo16.png', trayTip: "Window is minimized to tray\nClick to open", fileQuery: { type: 'queryAttribute', root: Ext.air.App.getRootHtmlWindow().document, attribute: 'query' }, bodyCfg: { tag: 'pre', cls: 'prettyprint linenums lang-js x-window-body' // add default class, too, since it is not added on custom elements }, onInit: function(win, X) { this.createBodyHtml(); this.tbar = [{ text: 'Copy to Clipboard', handler: this.copyToClipboard, scope: this }]; this.fbar = [{ text: 'Close', handler: function() { this[this.closeAction || 'close'](); }, scope: this }]; CodeWindow.superclass.onInit.call(this, win, X); }, onComplete: function() { CodeWindow.superclass.onComplete.call(this); var w = this.getWindow(), v = this.getViewport(); if (v.rendered) { w.prettyPrint(); } else { v.on('render', function() { w.prettyPrint(); }, this, {single: true}); } }, createBodyHtml: function() { var c = "", cfg = this.source || this.initialConfig || {}, d, s; Ext.iterate(cfg, function(k, v) { if (!Ext.isEmpty(v)) { d = Ext.air.Window.prototype[k] === v ? " // default value" : ""; s = Ext.isString(v) ? "'" : ""; c += ["\t", k, ": ", s, String(v), s, ",", d, "\n"].join(""); } }); this.bodyHtml = ["new Ext.air.Window({\n", c, "\thidden: false\n});"].join(""); }, copyToClipboard: function() { Ext.air.Clipboard.setData(air.ClipboardFormats.TEXT_FORMAT, this.bodyHtml); } }); Y esto es parte de la mia... no le encuentro el equivalente para cambiar de ext.window a ext.air.window... lo cambio y tira errores, pero la estructura no es la misma. Mi interface... MyWindowUi = Ext.extend(Ext.Window, { title: 'Consultas de Personal', width: 1324, height: 900, constrain: true, maximizable: true, iconCls: 'icon-pers', layout: 'border', initComponent: function() { this.items = [ { xtype: 'panel', height: 505, layout: 'border', region: 'north', items: [ { xtype: 'grid', store: 'stConsulta', height: 315, region: 'center', ref: '../legajos', layout: 'fit', plugins: [new Ext.ux.grid.GridHeaderFilters()], selModel: new Ext.grid.RowSelectionModel({ singleSelect: true }), columns: [ ... Aca sigue.... .... ]; MyWindowUi.superclass.initComponent.call(this); } }); y los eventos MyWindow = Ext.extend(MyWindowUi, { initComponent: function() { MyWindow.superclass.initComponent.call(this); this.legajos.on('rowclick',this.lee_justif,this); this.legajos.on('rowclick',this.lee_ausencias,this); }, Saludos.

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.