Pesquisar

terça-feira, 23 de fevereiro de 2010

Como usar JavaScript na plataforma Java

Em minha mente o assunto scripting na plataforma Java já estava bem explorado e difundido. Mas hoje fui supreendido por um amigo com um mini-framework que servia de analisador e parser para simples fórmulas matemáticas como p.ex:
2+2-1*3/3
(2+2)*10

Usando Java 6 basta esse simples código.

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
try {
String script = " 10 + 2 * 2 "; //ou sua expressão
Object result = engine.eval(script);
System.out.println(result);
} catch (ScriptException ex) {
System.out.println("deu erro :P "+ex);
}

sábado, 13 de fevereiro de 2010

JTableAnnotations - Um jeito mais simples de criar JTable

JTableAnnotations
Há algum tempo atrás escrevi um mini-framework para criação de JTable por anotação. Talvez esse pedaço de código possa lhe servir, criar JTable sempre é uma tarefa chata e tediosa (e para alguns dificil). O JTableAnnotations propõe uma simplificação no processo de configuração e preenchimento das tabelas.

Basicamente você precisará anotar suas entidades

@JTableConfiguration(rowHeight=48)
public class Product {
@JTableColumnConfiguration(order=1,width=55)
private Long id;
@JTableColumnConfiguration(order=2,width=300,editable=true,align=Align.CENTER)
private String name;
@JTableColumnConfiguration(order=3,name="Price",decimalFormat="U$ 0.00")
private BigDecimal value;
@JTableColumnConfiguration(order=4,name="Costumer Name",width=300)
private Customer customer;
@JTableColumnConfiguration(order=0,name="Photo",cellRender=IconCellRender.class)
private String picturePath;

E então o trabalho de configurar e popular fica a cargo da classe Configurator:

Customer master = new Customer();
master.setName("Master");
master.setUserName("Admin");
list = new ArrayList();
list.add(
createProduct(
master, 0L,
"Nintendo Wii",
"pictures/wii.jpg",
new BigDecimal(999.50)));
list.add(
createProduct(
master, 1L,
"XBox360",
"pictures/xbox360.jpg",
new BigDecimal(1020.85)));
list.add(
createProduct(
master, 2L,
"PS3",
"pictures/ps3.jpg",
new BigDecimal(1000.0)));
list.add(
createProduct(
master, 3L,
"PSP",
"pictures/psp.jpg",
new BigDecimal(490.0)));
list.add(
createProduct(
master, 4L,
"Nintendo DS",
"pictures/nds.jpg",
new BigDecimal(359.59015)));
new Configurator().configureAndPopulateJTable(jTable, list);
E voilá!
(odeio essa resolução do blogspot)
[Clique aqui para ver a figura abaixo]

Mais informações na página do projeto http://code.google.com/p/jtableannotations/