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
que mediante js y dom me di mañas para poder hacerlo. aqui comparto como podrian hacerlo
para cambian el texto de boton preview
document.getElementById("main_wizardLayers1_prevButton").innerHTML = "Abbrechen";
para cambiar el texto tambien por decorator del wizard
this.wizardLayers1.decorator.cancelCaption = "Abbrechen";
this.wizardLayers1.decorator.nextCaption = "Weiter";
this.wizardLayers1.decorator.doneCaption = "fertig";
para cambiar el texto de datos invalidos en el wizard
wm.locale.phrases["wm.WizardDecorator.TOAST_INVALID"] = "Ungültigen Wert für ${name}";
espero que les sirva
6 de mayo de 2015
Crear un chart D3 en WaveMaker
Bueno les queria dejar un poco de codigo para incrustar bar chart series d3js en wavemaker 6.x
mas que todo hay que usar un widget html en incluir un tag div para poder llenar alli el chart
y por su puesto referenciar a d3js y si quiere tambien usar d3 tip pues lo mismo agregar esa referencia.
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script>.
ya en la pagina que vamos a trabajar creamos un objeto json datos tipo array para poder llenar el chart
data = [];
data.push({
year: 1,
Current: 2704659,
Cashflow: 4499890,
Savings: 2159981
});
data.push({
year: 2,
Current: 2027307,
Cashflow: 3277946,
Savings: 1420518
});
en este ejemplo lleno con 2 series para ustedes podrian adquirir los datos desde algun liveVariable en onSuccess
finalmente colocamos el codigo de d3 y solo referenciamos al html widget como
var svg = d3.select("#chart1")
que en este caso es el div id que tenemos en nuestro html widget
les dejo un proyecto de ejemplo mavirroco.com/d3sample1.1.Alpha.zip
suerte espero que les sirva
mas que todo hay que usar un widget html en incluir un tag div para poder llenar alli el chart
y por su puesto referenciar a d3js y si quiere tambien usar d3 tip pues lo mismo agregar esa referencia.
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script>.
ya en la pagina que vamos a trabajar creamos un objeto json datos tipo array para poder llenar el chart
data = [];
data.push({
year: 1,
Current: 2704659,
Cashflow: 4499890,
Savings: 2159981
});
data.push({
year: 2,
Current: 2027307,
Cashflow: 3277946,
Savings: 1420518
});
en este ejemplo lleno con 2 series para ustedes podrian adquirir los datos desde algun liveVariable en onSuccess
finalmente colocamos el codigo de d3 y solo referenciamos al html widget como
var svg = d3.select("#chart1")
que en este caso es el div id que tenemos en nuestro html widget
les dejo un proyecto de ejemplo mavirroco.com/d3sample1.1.Alpha.zip
suerte espero que les sirva
16 de mayo de 2014
Limpiar el dojogrid sin actualizar livevariable/servicevariable
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.
Aqui el codigo
Espero que les sirva.
Fuente: http://jadendreamer.wordpress.com/2011/03/07/dojo-tutorial-clear-all-data-from-the-grid/
Aqui el codigo
var emptyCells = { items: "" };//creamos un objeto con items vacios var emptyStore = new dojo.data.ItemFileWriteStore({data: emptyCells});
this.myGridname.dojoObj.setStore(emptyStore);//aplicamos solo sobre el objeto dojo del grid
Espero que les sirva.
Fuente: http://jadendreamer.wordpress.com/2011/03/07/dojo-tutorial-clear-all-data-from-the-grid/
19 de febrero de 2014
DojoGantt widget en WaveMaker
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.
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.
Aquí les muestro la estructura básica en json.
luego obviamente cargarlo en un widget contenedor de html
Aqui les muestro la aplicacion corriendo
Bueno luego mejoramos un poco al widget..
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.
Aquí les muestro la estructura básica en json.
{
"identifier":"id",
"items":[{
"id":1,
"name":"Development Project",
"startdate":"2012-2-11",
"tasks":[]
}]
}
y la definicion necesario para crear un widget..en este case necesita un elemento para cargar con id: ganttid var ganttChart = new dojox.gantt.GanttChart({
readOnly: false,
dataFilePath: "some_url",
withResource: false
}, "ganttid");
ganttChart.init();
ganttChart.loadJSONData();
});
luego obviamente cargarlo en un widget contenedor de html
<div id="ganttid">
</div>
Aqui les muestro la aplicacion corriendo
Bueno luego mejoramos un poco al widget..
1 de septiembre de 2012
Input Mask Editor en WaveMaker
Buscando un buen Mask plugin para integrar a un proyecto que estaba trabajando pude unir este de jquery
http://digitalbush.com/projects/masked-input-plugin/#demo a un editor de waveker.. aqui les dejo el proyecto de prueba...
js file: http://cloud.github.com/downloads/digitalBush/jquery.maskedinput/jquery.maskedinput-1.3.min.js
Descargar desde aqui el proyecto de ejemplo: www.mavirroco.com/InputMask.1.Alpha.zip
http://digitalbush.com/projects/masked-input-plugin/#demo a un editor de waveker.. aqui les dejo el proyecto de prueba...
Lo primero que hay que hacer es buscar el editor id#..se lo puede hacer con un inspector de codigo como firebug
y luego colocar los enlaces en index.html page de los javascripts que vamos a necesitar
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="resources/javascript/jquery.maskedinput.js"></script>
luego en la funcion "start" poner el masked pattern que necesites
dojo.declare("Main", wm.Page, {
start: function() {
try {
//here we set the mask to current texteditor
jQuery(function($) {
$("#dijit_form_TextBox_0").mask("99/99/9999");
});
} catch (e) {
app.toastError(this.name + ".start() Failed: " + e.toString());
}
},
_end: 0
});Descargar desde aqui el proyecto de ejemplo: www.mavirroco.com/InputMask.1.Alpha.zip
28 de agosto de 2012
Integrar JPEGCAM con WaveMaker para tus fotos en tu web
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.
Tutorial aqui http://mavirroco.com/DocsJPEGCAMWAVEMAKER.pdf
Tutorial aqui http://mavirroco.com/DocsJPEGCAMWAVEMAKER.pdf
OFFTOPIC: Scriptlet para numeros en literal en jasperreports
Queria compartir este scriptlet, una clase java para crear funciones especificas en jasper reports, que estaba usando para un reporte en para mostrar los numeros en literal, muy utilizados en facturas.
Bueno no es un post directamente relaciondo a WaveMaker pero quize compartir para que puedan incluirlo en sus aplicaciones.
Aqui la clase en java.
Aqui la clase en java.
import java.text.DecimalFormat; public class EnglishNumberToWords extends JRDefaultScriptlet{ private static final String[] tensNames = { "", " ten", " twenty", " thirty", " forty", " fifty", " sixty", " seventy", " eighty", " ninety" }; private static final String[] numNames = { "", " one", " two", " three", " four", " five", " six", " seven", " eight", " nine", " ten", " eleven", " twelve", " thirteen", " fourteen", " fifteen", " sixteen", " seventeen", " eighteen", " nineteen" }; private static String convertLessThanOneThousand(int number) { String soFar; if (number % 100 < 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] + " hundred" + soFar; } public static String convert(long number) { // 0 to 999 999 999 999 if (number == 0) { return "zero"; } String snumber = Long.toString(number); // pad with "0" String mask = "000000000000"; 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 = ""; break; case 1 : tradBillions = convertLessThanOneThousand(billions) + " billion "; break; default : tradBillions = convertLessThanOneThousand(billions) + " billion "; } String result = tradBillions; String tradMillions; switch (millions) { case 0: tradMillions = ""; break; case 1 : tradMillions = convertLessThanOneThousand(millions) + " million "; break; default : tradMillions = convertLessThanOneThousand(millions) + " million "; } result = result + tradMillions; String tradHundredThousands; switch (hundredThousands) { case 0: tradHundredThousands = ""; break; case 1 : tradHundredThousands = "one thousand "; break; default : tradHundredThousands = convertLessThanOneThousand(hundredThousands) + " thousand "; } result = result + tradHundredThousands; String tradThousand; tradThousand = convertLessThanOneThousand(thousands); result = result + tradThousand; // remove extra spaces! return result.replaceAll("^\\s+", "").replaceAll("\\b\\s{2,}\\b", " "); } }
y desde el ireport podemos usar este scriptlet.
Espero que les sirva.
Suscribirse a:
Entradas (Atom)








