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


Reply via email to