Hi,
Cannot see anything obvious from the code.
I did a small test by adding a delete link to the ExcelTableExportPage example, which I assume your
code is based on? Adding the delete link worked just fine though. At this stage you might want to
back out some of your code to just a bare bones page with a edit/delete link and make sure that
works and then fleshing it out?
regards
Bob
On 08/03/2012 20:46 PM, Carlos Lobato wrote:
protected ExportTable tablaProspectos;
private PageLink editLink = new PageLink("Editar", AltaProspecto.class);
private ActionLink deleteLink = new ActionLink("Borrar", this, "onDeleteClick");
@Override
public void onInit() {
super.onInit();
/* a list of IDs I need to load my table (tablaProspectos) records*/
idList = (ArrayList<String>)
getContext().getSessionAttribute("idList");
prospectos = new ArrayList<Prospecto>();
prospecto = new Prospecto();
tablaProspectos = null;
/*table properties setup*/
tablaProspectos = new ExportTable("tablaProspectos");
tablaProspectos.setClass(Table.CLASS_BLUE2);
tablaProspectos.setShowBanner(true);
tablaProspectos.setPageSize(10);
tablaProspectos.setSortable(true);
/*load table records*/
prospectos = prospecto.cargarProspectosPorSector(idList);
if (!prospectos.isEmpty()) {
prospectos = prospectos.subList(0, prospectos.size());
tablaProspectos.setRowList(prospectos);
}
/*table construction*/
/* estatus is a check or cross image matched to a status active or
inactive*/
Column estatus = new Column("estatus", "Estatus");
estatus.setTextAlign("center");
estatus.setDecorator(new Decorator() {
@Override
public String render(Object row, Context context) {
Prospecto prospecto = (Prospecto) row;
if (prospecto.getEstatus().equals("A")) {
return "<img src='" + context.getRequest().getContextPath() +
"/Img/yes.png'
alt='ACTIVO' />";
} else {
return "<img src='" + context.getRequest().getContextPath() +
"/Img/no.png'
alt='NO ACTIVO' />";
}
}
});
tablaProspectos.addColumn(estatus);
/*a record property*/
Column column = new Column("sectorDesc", "Categoria");
column.setTextAlign("left");
tablaProspectos.addColumn(column);
/*a record property*/
column = new Column("trato", "Trato");
column.setTextAlign("left");
tablaProspectos.addColumn(column);
/*a record property/*
column = new Column("apellido1", "Primer Apellido");
column.setTextAlign("left");
tablaProspectos.addColumn(column);
/*more record properties*/
...
/*edit PageLink setup*/
editLink.setImageSrc("/Img/table-edit3.png");
editLink.setTitle("Editar Prospecto");
editLink.setParameter("referrer", "/comision/ReporteProspectos.htm");
editLink.setParameter("action", "editar");
editLink.setAttribute("onclick", "fSubmittingPage();");
addControl(editLink);
/*delete ActionLink setup*/
deleteLink.setImageSrc("/Img/table-delete2.png");
deleteLink.setTitle("Borrar Prospecto");
deleteLink.setAttribute("onclick", "return window.confirm('¿Esta
seguro que desea dar de
baja el registro?');");
addControl(deleteLink);
/* add edit PageLink to table*/
Column edicion = new Column("Editar");
edicion.setTextAlign("center");
edicion.setDecorator(new LinkDecorator(tablaProspectos, editLink,
"idProspecto"));
edicion.setSortable(false);
tablaProspectos.addColumn(edicion);
/* add delete ActionLink to table */
Column borrar = new Column("Borrar");
borrar.setTextAlign("center");
borrar.setDecorator(new LinkDecorator(tablaProspectos, deleteLink,
"idProspecto"));
borrar.setSortable(false);
tablaProspectos.addColumn(borrar);
setupExporter(tablaProspectos);
tablaProspectos.setExportAttachment(ExportTable.EXPORTER_ATTACHED);
addControl(tablaProspectos);
tablaProspectos.getControlLink().setActionListener(new
ActionListener() {
public boolean onAction(Control source) {
tablaProspectos.saveState(getContext());
return true;
}
});
tablaProspectos.restoreState(getContext());
}
Thanks and best regards,
-Carlos
On Thu, Mar 8, 2012 at 11:46 AM, Bob Schellink <[email protected]
<mailto:[email protected]>> wrote:
>
> Hi,
>
> Can you post a snippet how you construct the table, links and how you
> add them to the table? Looking at the source it looks like the
> ActionLink does not have a name set, hence the NullPointerException.
>
> regards
>
> Bob
>
> On Thu, Mar 8, 2012 at 6:08 PM, Carlos Lobato <[email protected]
<mailto:[email protected]>> wrote:
> > Hi,
> >
> > I'm creating an ExportTable with a Edit PageLink and a Delete
> > ActionLink. So
> > far no problems with the PageLink however the ExportTable does not seem
> > to
> > like ActionLinks. When I click it, it does delete the record but it
> > crashes,
> > the relevant parts of the exception thrown go like this:
> >
> > [Click] [error] Velocity: Exception rendering
> > #parse(/comision/ReporteProspectos.htm) at /border-template.htm[line
> > 186,
> > column 25]
> > [Click] [error] handleException: java.lang.NullPointerException
> > at org.apache.click.control.ActionLink.getHref(ActionLink.java:292)
> > at org.apache.click.control.ActionLink.getHref(ActionLink.java:345)
> > at org.apache.click.control.AbstractLink.render(AbstractLink.java:629)
> > at
> >
> >
pue.gob.mx.sle.utils.TableExportContainer.renderExportBanner(TableExportContainer.java:135)
> > at
> >
> >
pue.gob.mx.sle.utils.TableExportContainer.render(TableExportContainer.java:52)
> > at pue.gob.mx.sle.utils.ExportTable.render(ExportTable.java:216)
> >
> > At first I thought I should be overriding the Form's onProcess method
> > like
> > the Edit FormTable page from the examples, but still get the same error.
> > Maybe I should make ExportTable extend FormTable? Thanks in advance,
> >
> > -Carlos