lunes, 11 de octubre de 2010

s:convertDateTime

s:convertDateTime

In the Seam documentation there is very little information about this tag.
In the documentation, there is only one example:
     h:outputText> 

This doesn't really say much. However, after some googling, I can explain some of the attributes, and what is actually useful to use.
If you want to show both date and time: dd-MM-yyyy hh:mm:ss you can use type="both" and dateStyle="full". If you want to show only date. Use type="date".

You choose from a range of different dateStyle.
default May 14, 2007 2:35:45 PM ( Default Value)
short 5/14/07 12:55:42 PM
medium May 14, 2007 2:42:36 PM
long May 14, 2007 2:41:08 PM
full Monday, May 14, 2007 2:39:56 PM


However what I have found the most useful is just to use the pattern attribute together with the type.
So if you want the style 14.07.2009 you just write

     h:outputText>
And you are set to go!

fuente

Documentacion:

http://docs.jboss.org/seam/2.1.2/reference/en-US/pdf/seam_reference.pdf
33.1.2. Converters and Validators

miércoles, 18 de agosto de 2010

Útiles atajos de teclado en Eclipse

Es obligación de un buen programador sacarle el máximo partido a las herramientas que usa en el día a día. El primer paso es conocer una buena parte de los atajos de teclado de tu IDE favorito, en mi caso Eclipse.

Y aquí os dejo una lista de los atajos que yo encuentro más útiles:

* Ctrl + T: Navegar por la jerarquía del tipo seleccionado. Mucho más útil que el típico Ctrl + click cuando el tipo es un interface.
* Ctrl + May + G: Buscar las ocurrencias del tipo o variable seleccionado por todo el workspace.
* Ctrl + H: Abrir la ventana de búsquedas.
* Ctrl + May + R: Buscar y abrir por nombre de fichero.
* Ctrl + May + T: Buscar y abrir por nombre de tipo.
* Ctrl + E: Navegar por los ficheros abiertos.
* Ctrl + O: Navegar por lista de atributos y métodos. Si lo pulsas 2 veces añade los atributos y métodos de las clases padre.
* Ctrl + L: Ir a número de línea.
* Alt + May + L: Mostrar la lista de todos los atajos de teclado. Si pulsas 2 veces abres la ventana de configuración de atajos de teclado donde podrás ver, modificar y crear nuevos atajos.

Ctrl + Shift + F - Formatea el codigo, segun las reglas de code template seteadas.

Ctrl + Shift + T - Busqueda de Tipos en el Workspace.

#

ctrl + shift + o: Organiza los imports y añade los que falten

ctrl + F6: navega por las clases abiertas (secuencial, no como el ctrl + e, que igual empiezo a usar)

ctrl + F7: navega por las vistas abiertas

ctrl + F8: navega por las perspectivas abiertas

ctrl + 3: El atajo mágico

Alt + Shift + R: Renombrado (refactoriza)



http://jcesarperez.blogspot.com/2008/10/tiles-atajos-de-teclado-en-eclipse.html

http://4trabes.com/2008/2/25/atajos-de-teclado-shortcuts-vitales-para-sobrevivir-a-eclipse

http://blogs.vandal.net/3996/vm/175148162008

--------------------------------
Para aquellos que, como yo, utilizáis eclipse (o cualquiera de sus variantes) como IDE de desarrollo, aquí os dejo una serie de truquillos, explicaciones y atajos de teclado interesantes. Seguro que ya conocéis la mayoría, pero allá van.

* Toggle Comment: (ctrl+shift+C) Comenta/Descomenta la linea actual o lineas seleccionadas.
* Generate Element Comment: (shift+alt+J) Genera las lineas de comentario del elemento sobre el que está el cursor.
* Organize Imports: (ctrl+shift+O) Importa las clases que necesitas y elimina las que no. Es aplicable a una clase, paquete o a todo el proyecto.
* Correct Indentation: (ctrl+I) corrige la identación (tabulación de lineas) de la linea actual o lineas seleccionadas.
* Format: (ctrl+shift+F) Esto te deja el código bonito. Deja los espacios correspondientes, saltos de línea, identación… según las convenciones de java.

Pero lo mejor, es que puedes definir todas esas cosas a tu gusto. Ve al menu de Windows->Preferences->Java->Code Style->Formatter. Seleccionando “Edit” accedes a un menu donde puedes cambiar el aspecto del código sobre los comentarios, saltos de linea, sentencias de control, declaración de variables…

Es aplicable a una clase, paquete o a todo el proyecto.
* Clean Up: Esta herramienta es realmente poderosa. Es parecida a “Format”. Permite eliminar/añadir el modificador this, paréntesis, llaves, anotaciones automáticas y otras cosillas. Es aplicable a una clase, paquete o a todo el proyecto.
* Generate Getters/Setters: Genera métodos get/set estilo JavaBean para los campos que queramos.
* Generate Constructor using Fields: Genera el constructor de la clase con los campos definidos, en plan JavaBean.
* Surround With: (shift+alt+Z) Mete las lineas seleccionadas en un bloque if, while, try-catch, etc.

http://es.debugmodeon.com/articulo/eclipse-tips
-----------------

martes, 10 de agosto de 2010

Problema operaciones con double

http://blog.4bits.es/precision-en-java-bigdecimal/

http://www.forosuse.org/forosuse/archive/index.php/t-8199.html

lunes, 9 de agosto de 2010

Imprimir componente de la pantalla

http://download.oracle.com/javase/tutorial/2d/printing/gui.html

http://download.oracle.com/javase/tutorial/2d/printing/dialog.html

---------------------

imprimir = new JButton("Print");
fechaPanel.add(imprimir);

imprimir.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(CalendarioWindows.this);

if (pj.printDialog()) {
try {
pj.print();
} catch (PrinterException exc) {
System.out.println(exc);
}
}
}

});
*********************

public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}

Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());

/*escalar*/

String header = "Calendar View";
String header2 = getMesString(Integer.parseInt((String)mes.getSelectedItem())) + " " + anio.getValue();

Color original = g.getColor();

g.setColor(colorHeader);

g2d.setFont(fuenteHeader1);

g2d.drawString(header, 0, 30);

g2d.setFont(fuenteHeader2);

g2d.drawString(header2, 0, 56);

g2d.setColor(original);

g2d.translate(0, 80);

Double escala =calcularEscala( pf.getImageableWidth(), pf.getImageableHeight(),panelCalendario.getSize().getWidth(), panelCalendario.getSize().getHeight());
g2d.scale(escala, escala);

/* Print the entire visible contents of a java.awt.Frame */
panelCalendario.printAll(g);

return PAGE_EXISTS;

}

/**
* devuelve la escala necesaria pa que entre en la hoja
* @param paginaWidth
* @param paginaHeight
* @param graficoWidth
* @param graficoHeight
* @return
*/
public double calcularEscala(double paginaWidth, double paginaHeight,double graficoWidth, double graficoHeight){
double escala = 100 ;
System.out.println("**********************");
System.out.println("*** pw " +paginaWidth);
System.out.println("*** ph " +paginaHeight);
System.out.println("*** gw " +graficoWidth);
System.out.println("*** gh "+graficoHeight);

if(paginaWidth < graficoWidth){
escala= paginaWidth/graficoWidth;
System.out.println("** e1 "+ escala);

}
if(paginaHeight < graficoHeight){
double e = paginaHeight / graficoHeight;
System.out.println("** e2 " + e);
if(e escala = e;
}
}

System.out.println("** e3 "+ escala);
return escala;
}

miércoles, 4 de agosto de 2010

Istalacion jboss seam 2

http://jboss.org/tools
-copiar el link de JBoss Tools 3.1 :: Eclipse 3.5.2
-agregarlo en eclipse >help>install sofwarre
-marcar plugin:
* jboss tool rich faces
* jboss toll hibernate
* jboss tool seam

lunes, 12 de julio de 2010

Agregar Panel de color

private JLabel assignedBackground;
private Color elegido;
private Color original;

/*............................*/

private void agregarPanelColor(){
final JPanel colorPanel = new JPanel();
colorPanel.add(new JLabel("Color asignado"));
assignedBackground = new JLabel();
assignedBackground.setOpaque(true);
assignedBackground.setPreferredSize(new Dimension(20, 15));
original = assignedBackground.getBackground();
colorPanel.add(assignedBackground);

JButton colorButton = new JButton("Seleccionar..");
colorButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {
Color actual = null;
if (elegido != null) {
actual = elegido;
} else if (entidad != null && entidad.getColor() != null) {
actual = new Color(Integer.parseInt(entidad.getColor(), 16));
}
elegido = JColorChooser.showDialog(EstadoComandoWindows.this, "Seleccionar el color para el estado.", actual);
assignedBackground.setBackground(elegido);
colorPanel.repaint();
}

});
colorPanel.add(colorButton);
componentes.add(colorPanel);
}

@Override
public EstadoComanda getEntidad() {
EstadoComanda e = super.getEntidad();
if (elegido == null) {
e.setColor(null);
} else {
e.setColor(ColorUtil.toHexString(elegido));
}
return e;
}

@Override
public void setEntidad(EstadoComanda entidad) {
super.setEntidad(entidad);
if(entidad != null){
if (entidad.getJavaColor() != null) {
elegido = entidad.getJavaColor();
assignedBackground.setBackground(elegido);
} else {
elegido = null;
assignedBackground.setBackground(original);
}
}
}

sábado, 19 de junio de 2010

Instalacion componentes joomla

- Phocagalery
http://www.video-tutorial-joomla.com/componente-joomla/phoca-gallery-instalar-y-actualizar.html

para ver los huecos para modulos de una pag , a la pagina agregarle ?tp=1 ej : http://zimazero.zobyhost.com/?tp=1

lunes, 31 de mayo de 2010

agregar boton derecho a una tabla

tabla.getTabla().getContextMenu().add(new AbstractAction("Editar Cuota"){

public void actionPerformed(ActionEvent e) {
//mostrarle que se va a mover a tal numero y con fecha de vencimiento tal
if (tabla.getTabla().getTabla().getSelectedRow() != -1) {
CuotaPrestamo cuota =(CuotaPrestamo)tabla.getValor();
System.out.println("*** cuota.getNumero()" + cuota.getNumero());
System.out.println("*** cuota.getFecha()" + cuota.getFecha());
CuotaPrestamo cuotaConsulta = PrestamoManager.getInstance().getControl().consultarProximaCuota(cuota);
int r = SwingAlert.mostrarPreguntaSiNo("Se va a mover la cuota nro. " +cuota.getNumero()
+ " al nro. "+ cuotaConsulta .getNumero() +" con frcha de vencimiento " + cuotaConsulta .getFecha(),ListadoCobranzaWindows.this);

if (r == JOptionPane.YES_OPTION) {
PrestamoManager.getInstance().getControl().editarCuota(cuota);
}
}
}

});

viernes, 28 de mayo de 2010

Hacer algunos campos editables de una tabla

modelo = new ListTableModel>(DtoRendicionCreditoSinCuotas.class){

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return (columnIndex == 8 || columnIndex == 9);
}

@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
if(columnIndex == 8){
((DtoRendicionCreditoSinCuotas)get(rowIndex)).setCantidadPagadas(((Number)value).intValue());
}
if(columnIndex == 9){
((DtoRendicionCreditoSinCuotas)get(rowIndex)).setMontoPagado(((Number)value).doubleValue());
}
}


};

viernes, 7 de mayo de 2010

comparador

Comparator comparador = new Comparator(){

public int compare(DtoClientePasajero o1, DtoClientePasajero o2) {
int i = o1.getApellido().compareToIgnoreCase(o2.getApellido());
if(i==0){
i = o1.getNombre().compareToIgnoreCase(o2.getNombre());
}
if(i==0){
i = o1.getMail().compareToIgnoreCase(o2.getMail());
}
return i;
}
};


Collections.sort(cPList, comparador);

agregar una tarea en una ventana

activities = new SwingABMTable("Activities", "Activity", modelo, new ActivityWindows()) {

@Override
public boolean aceptar(EntityWindows w) {
boolean s = super.aceptar(w);
if (w.getAccion() != EntityWindows.ACCION_DETALLES) {
try {
System.out.println("entro 22222****");
TripManager.getInstance().getControl().modificarTrip(ItineraryPanel.this.tripWindows.getEntidad());
} catch (Exception ex) {
ManejadorExcepciones.manejarExcepcion(ex);
}
}
return s;
}

};

Formato de hora para una fila de una columna

CellRendererFecha renderer = new CellRendererFecha() {

@Override
public void setValue(Object value) {
if (value != null) {
setText(DateFormatter.getHora((Date) value));
setHorizontalAlignment(JLabel.CENTER);
} else {
setText(null);
}

}


};


activities.getTabla().getTabla().getColumnModel().getColumn(0).setCellRenderer(renderer);

domingo, 7 de marzo de 2010

Como agregar un Fan Box en joomla??

Muy sensillo:
1- obtienes el scrip fan box en tu pagina de facebook . esto es ir a editar pagina> Promocionar con un panel para fans y donde dice "Elige dónde quieres poner el widget:" , eliges other..

2- A ese script lo podes poner en un modulo HTML basico de esos, creas un modulo "custom", editalo en modo html y deberia salir sin problemas .

miércoles, 24 de febrero de 2010

Querys raros mysql

  • Devolver muchos insert para inserta los datos que no estan en una tabla a otra ( las tablas son iguales pero de distinto esquema)
SELECT concat('insert into ospelsy_estudio.', table_name ,' (SELECT DISTINCT p1.* FROM ospelsym_maipu.', table_name ,' p1 LEFT JOIN ospelsy_estudio.', table_name , ' p2 USING (id) WHERE p2.id IS NULL);')
FROM `TABLES` T where table_schema = 'ospelsym'

jueves, 18 de febrero de 2010

Colgar un reporte en un panel de Swing

panel.addChangeListener(new ChangeListener() {

public void stateChanged(ChangeEvent e) {
if (panel.getSelectedComponent() == reportePanel) {
SwingAlert.mostrarAdvertencia("cambio de pestaña", panel);
agregarPestañaReporte();
}
}
});

------------------------

private void agregarPestañaReporte() {

if (entidad != null) {

HashMap parametros = new HashMap();

parametros.put("TRIP_ID", entidad.getId());

try {

if (tripReport == null) {
String ubicacion = "/inertial/uncorking/Trips.jrxml";
InputStream stream = TripWindows.class.getResourceAsStream(ubicacion);
tripReport = JasperCompileManager.compileReport(stream);
subreporte = JasperCompileManager.compileReport(TripWindows.class.getResourceAsStream("/inertial/uncorking/SubReportPasajeros.jrxml"));
}
parametros.put("SUBREPORTE_PASAJEROS", subreporte);
reportePanel.removeAll();
JasperPrint jp = JasperFillManager.fillReport(tripReport, parametros, UncorkingMain.CONN);
reporte = new JRViewer(jp);
reportePanel.add(reporte, BorderLayout.CENTER);
} catch (JRException ex) {
Logger.getLogger(TripWindows.class.getName()).log(Level.SEVERE, null, ex);
}
}

}

jueves, 11 de febrero de 2010

Sensibilidad a mayúsuclas y minúsculas

cambiar el parametro lower_case_table_names=1 de  archivo /etc/my.cnf en la seccion [mysqld]
reiniciar mysql
y despues hacer el restor

ver que cambio la variable: show variables like 'lower%'

http://dev.mysql.com/doc/refman/5.0/es/name-case-sensitivity.html
http://dev.mysql.com/doc/refman/5.0/es/moving.html

miércoles, 3 de febrero de 2010

EJ. expreciones Regulares

de una cadena obtener las sub cadena hasta el año

public class prueba {

@EJB
private static ImportacionOrdenesRemote importacionOrdenesBean;

public static void main(String[] args) {
String cadena = "AUTO/NACIONALES RENAULT 12 TL 1990 UWV-817";
Pattern patron = Pattern.compile("(\\d\\d\\d\\d)");
Matcher matcher = patron.matcher(cadena);
matcher.find();

String a = matcher.group(1);
System.out.println("***anio" + matcher.group(1));


String cadModelo = cadena.substring(0,cadena.indexOf(a)).trim();
cadena = cadena.substring(cadena.indexOf(a),cadena.length()).trim();

System.out.println("modelo " + cadModelo);
System.out.println("dadena" + cadena);
}
}



fuente :http://www.chuidiang.com/chuwiki/index.php?title=Expresiones_Regulares_en_Java

viernes, 29 de enero de 2010

Pintar celda de una tabla segun su valo

  1. Hago una clase que extienda de DefaultTableCellRenderer
public class EstadoPolizaCellRenderer extends DefaultTableCellRenderer {

private static Color original;

public EstadoPolizaCellRenderer() {
//obtengo el valor por defecto del color de la letra
original = new JLabel().getForeground();
}

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
// value trae el valor .. la columna era del tipo de la enumeracion
JLabel componente = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // llama al metodo setvalue adentro
setCellColor(componente,(EstadoPropuesta) value);
return componente;
}

@Override
protected void setValue(Object value) {
if (value instanceof EstadoPropuesta) {
setText(((EstadoPropuesta) value).getNombre());
} else {
setText(null);
}
}

private void setCellColor(JLabel componente, EstadoPropuesta valor) {
if (valor == EstadoPropuesta.ANULADA) {
componente.setForeground(Color.RED);
} else if (valor == EstadoPropuesta.CARGADA ||
valor == EstadoPropuesta.EMISION) {
componente.setForeground(Color.BLUE);
} else {
componente.setForeground(original);
}
}

}

2. en la tabla setearle el render que creamos, es por tipo de columna
tabla = new SwingTablePanel>(pagedModel) {

@Override
protected SwingTable createSwingTable(String titulo, SwingTableModel> modelo) {
SwingTable tablaLocal = super.createSwingTable(titulo, modelo);
tablaLocal.getTabla().setDefaultRenderer(EstadoPropuesta.class, new EstadoPolizaCellRenderer());
return tablaLocal;
}
}

martes, 12 de enero de 2010

Swing Select

localidad = new SwingSelect("Localidad","nombre",Localidad.class,1,new SwingSelectFilter() {

public List buscar(String texto) {
return LocalidadManager.getControl().listarLocalidades(texto);
}
});

localidad.addColumn(new Columna("Código", "codigo",int.class));
add(localidad);

Funciones Utiles COMMONS Apache

  • Copiar OBjetos. copia todos los atributos de un obejeto a otro: Si queremos clonar el objeto despues de esto le cambiamos el id al nuevo
    BeanUtils.copyProperties(poliza, polizaExistente);

Like con campos enteros JPQL

Hay un artilugio para poder usar like en campos enteros , es concatenando una cadena vacia al entero esto lo combierte el campo a cadena y puedo usar el Like normalmente.
La fucion en jpql quedaria: CONCAT(campoint,'');

EJ:

return em.createQuery("select p from Localidad p Where UPPER(p.nombre) Like :texto " + " OR UPPER(CONCAT(p.codigo,'')) Like :texto order by p.nombre")
.setParameter("texto", texto.toUpperCase() +'%').getResultList();