Bob, a co-worker suggested we should generate the ExportTable again at the ActionLink method and add it to the form via addControl(exportTable). I'm not sure this is the best way to do it but so far it's working.
Regards, -Carlos On Sun, Mar 11, 2012 at 5:53 PM, Carlos Lobato <[email protected]> wrote: > alrite Bob, will try that. Thanks always for your time, > > best, > -Carlos > > > On Sun, Mar 11, 2012 at 3:24 AM, Bob Schellink <[email protected]> wrote: > >> 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 >>> >>> >> >
