List of usage examples for com.itextpdf.text.pdf PdfPTable setWidths
public void setWidths(final int relativeWidths[]) throws DocumentException
From source file:es.sm2.openppm.front.utils.DocumentUtils.java
License:Open Source License
/** * Create PDF for Control Change//from ww w . j ava 2s . com * @param idioma * @param project * @param change * @param preparedBy * @return * @throws DocumentException * @throws LogicException */ public static byte[] toPdf(ResourceBundle idioma, Project project, Changecontrol change, Employee preparedBy, final Image headerImg, final Image footerImg) throws DocumentException, LogicException { if (change == null) { throw new DocumentException("No change control found."); } if (preparedBy == null || preparedBy.getContact() == null) { throw new UserSendingException(); } Document document = new Document(PageSize.A4); document.setMargins(70F, 70F, 38F, 38F); // Total Height: 842pt, Total Width: 595pt byte[] file = null; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); @SuppressWarnings("unused") PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream); document.open(); Font fontHeader = new Font(FontFamily.TIMES_ROMAN, 9, Font.BOLD); Font fontCell = new Font(FontFamily.TIMES_ROMAN, 9); Font tituloFont = new Font(FontFamily.TIMES_ROMAN, 16, Font.BOLD); document.add(new Paragraph(" ", tituloFont)); document.add(new Paragraph(" ", tituloFont)); document.add(new Paragraph(" ", fontHeader)); Paragraph title = new Paragraph(idioma.getString("change_request").toUpperCase(), tituloFont); title.setAlignment(Paragraph.ALIGN_CENTER); document.add(title); // Header Table // Project info PdfPTable tableHeader = new PdfPTable(3); tableHeader.setWidthPercentage(100); tableHeader.setSpacingBefore(10); tableHeader.setSpacingAfter(15); int[] colWidth = new int[3]; colWidth[0] = 40; colWidth[1] = 30; colWidth[2] = 30; tableHeader.setWidths(colWidth); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.project_name"), fontHeader, 1F, 0F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.prepared_by"), fontHeader, 1F, 0F, 0F, 1F)); tableHeader.addCell(prepareHeaderCell(idioma.getString("change_request.date"), fontHeader, 1F, 1F, 0F, 1F)); tableHeader.addCell(prepareCell(project.getProjectName() + " / " + project.getAccountingCode(), fontCell, 0F, 0F, 0F, 1F)); tableHeader.addCell(prepareCell(preparedBy.getContact().getFullName(), fontCell, 0F, 0F, 0F, 1F)); tableHeader.addCell(prepareCell(DateUtil.format(idioma, new Date()), fontCell, 0F, 1F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.customer"), fontHeader, 1F, 0F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.contact_name"), fontHeader, 1F, 0F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.customer_type"), fontHeader, 1F, 1F, 0F, 1F)); tableHeader.addCell(prepareCell(project.getCustomer() != null ? project.getCustomer().getName() : "", fontCell, 0F, 0F, 0F, 1F)); tableHeader.addCell(prepareCell((project.getCustomer() != null ? project.getCustomer().getName() : "-"), fontCell, 0F, 0F, 0F, 1F)); Customertype cusType = (project.getCustomer() != null ? project.getCustomer().getCustomertype() : null); tableHeader.addCell(prepareCell(cusType == null ? "" : cusType.getName(), fontCell, 0F, 1F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.business_manager"), fontHeader, 1F, 0F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.project_manager"), fontHeader, 1F, 0F, 0F, 1F)); tableHeader.addCell( prepareHeaderCell(idioma.getString("change_request.originator"), fontHeader, 1F, 1F, 0F, 1F)); Employee bm = project.getEmployeeByFunctionalManager(); Employee pm = project.getEmployeeByProjectManager(); tableHeader.addCell(prepareCell(bm == null ? "" : bm.getContact().getFullName(), fontCell, 0F, 0F, 1F, 1F)); tableHeader.addCell(prepareCell(pm == null ? "" : pm.getContact().getFullName(), fontCell, 0F, 0F, 1F, 1F)); tableHeader.addCell(prepareCell(change.getOriginator(), fontCell, 0F, 1F, 1F, 1F)); document.add(tableHeader); // Change Information document.add(new Paragraph(idioma.getString("change_information"))); PdfPTable tableInfo = new PdfPTable(1); tableInfo.setWidthPercentage(100); tableInfo.setSpacingBefore(10); tableInfo.setSpacingAfter(15); tableInfo.addCell(prepareHeaderCell(idioma.getString("change.change_type"), fontHeader, 1F, 1F, 0F, 1F)); tableInfo.addCell(prepareCell(change.getChangetype().getDescription(), fontCell, 0F, 1F, 0F, 1F)); String priorityDesc = ""; if (change.getPriority().equals('H')) priorityDesc = idioma.getString("change.priority.high"); if (change.getPriority().equals('N')) priorityDesc = idioma.getString("change.priority.normal"); if (change.getPriority().equals('L')) priorityDesc = idioma.getString("change.priority.low"); tableInfo.addCell(prepareHeaderCell(idioma.getString("change.priority"), fontHeader, 1F, 1F, 0F, 1F)); tableInfo.addCell(prepareCell(priorityDesc, fontCell, 0F, 1F, 0F, 1F)); tableInfo.addCell(prepareHeaderCell(idioma.getString("change.desc"), fontHeader, 1F, 1F, 0F, 1F)); tableInfo.addCell(prepareCell(change.getDescription(), fontCell, 0F, 1F, 0F, 1F)); tableInfo.addCell( prepareHeaderCell(idioma.getString("change.recommended_solution"), fontHeader, 1F, 1F, 0F, 1F)); tableInfo.addCell(prepareCell(change.getRecommendedSolution(), fontCell, 0F, 1F, 1F, 1F)); PdfPTable tableSubInfo = new PdfPTable(3); tableSubInfo.setWidthPercentage(100); //TODO MIGRACION tableSubInfo.addCell(prepareSubCell(idioma.getString("change.wbs_node"), fontHeader)); tableSubInfo.addCell(prepareSubCell(idioma.getString("change.estimated_effort"), fontHeader)); tableSubInfo.addCell(prepareSubCell(idioma.getString("change.estimated_cost"), fontHeader)); tableSubInfo.addCell( prepareSubCell((change.getWbsnode() != null ? change.getWbsnode().getName() : ""), fontCell)); tableSubInfo.addCell(prepareSubCell( (change.getEstimatedEffort() != null ? String.valueOf(change.getEstimatedEffort()) : ""), fontCell)); tableSubInfo.addCell(prepareSubCell( (change.getEstimatedCost() != null ? ValidateUtil.toCurrency(change.getEstimatedCost()) : ""), fontCell)); PdfPCell subTable = new PdfPCell(tableSubInfo); subTable.setBorderWidth(1F); tableInfo.addCell(subTable); tableInfo.addCell(prepareHeaderCell(idioma.getString("change.impact_desc"), fontHeader, 1F, 1F, 0F, 1F)); tableInfo.addCell(prepareCell(change.getImpactDescription(), fontCell, 0F, 1F, 1F, 1F)); document.add(tableInfo); document.add(new Paragraph(idioma.getString("change.resolution"))); PdfPTable tableResolution = new PdfPTable(1); tableResolution.setWidthPercentage(100); tableResolution.setSpacingBefore(10); tableResolution.setSpacingAfter(15); tableResolution .addCell(prepareHeaderCell(idioma.getString("change.resolution"), fontHeader, 1F, 1F, 0F, 1F)); tableResolution.addCell( prepareCell((change.getResolution() != null && change.getResolution() ? idioma.getString("yes") : idioma.getString("no")), fontCell, 0F, 1F, 0F, 1F)); tableResolution .addCell(prepareHeaderCell(idioma.getString("change.resolution_date"), fontHeader, 1F, 1F, 0F, 1F)); tableResolution.addCell( prepareCell(DateUtil.format(idioma, change.getResolutionDate()), fontCell, 0F, 1F, 0F, 1F)); tableResolution.addCell( prepareHeaderCell(idioma.getString("change.resolution_reason"), fontHeader, 1F, 1F, 0F, 1F)); tableResolution.addCell(prepareCell(change.getResolutionReason(), fontCell, 0F, 1F, 1F, 1F)); document.add(tableResolution); document.close(); try { PdfReader reader = new PdfReader(outputStream.toByteArray()); PdfStamper stamper = new PdfStamper(reader, outputStream); int numPag = reader.getNumberOfPages(); for (int i = 1; i <= reader.getNumberOfPages(); i++) { setHeaderFooter(i, numPag, headerImg, footerImg, reader, stamper, idioma); } stamper.close(); } catch (IOException e) { e.printStackTrace(); } file = outputStream.toByteArray(); return file; }
From source file:facturacion.pdf.FacturaPdf.java
private PdfPTable getTable() throws DocumentException { PdfPTable table = new PdfPTable(5); table.setWidths(new int[] { 5, 25, 5, 5, 5 }); return table; }
From source file:facturacion.pdf.FacturaPdf.java
private PdfPTable getTableTotal() throws DocumentException { //PdfPTable table = new PdfPTable(7); //table.setWidths(new int[]{5, 5, 5, 5, 5, 5, 5}); PdfPTable table = new PdfPTable(11); table.setWidths(new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }); return table; }
From source file:facturacion.pdf.FacturaPdf.java
private PdfPTable getTableCabecera() throws DocumentException, IOException { PdfPTable table = new PdfPTable(5); table.setWidths(new int[] { 8, 20, 2, 8, 9 }); table.addCell(getCellBorderTop("Proeedor:")); table.addCell(getCellBorderTop(this.pedido.getProveedor_ci_ruc())); table.addCell(getCellBorderTop(" ")); table.addCell(getCellBorderTop(" ")); table.addCell(getCellBorderTop(" ")); table.addCell(getCellNoBorder("Razon social:")); table.addCell(getCellNoBorder(this.pedido.getProveedor_razon_social())); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder("Vendedor:")); table.addCell(getCellNoBorder(this.pedido.getVendedor_ci_ruc())); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder("Factura:")); table.addCell(//w w w . j a v a2s . c om getCellNoBorder(this.pedido.getEstablecimiento_proovedor() + "-" + this.pedido.getPunto_emision() + "-" + complete_Numero_documento(this.pedido.getNumero_documento()))); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellBorderTop("Cliente:")); table.addCell(getCellBorderTop(this.pedido.getCliente_ci_ruc())); table.addCell(getCellBorderTop(" ")); table.addCell(getCellBorderTop("Fecha:")); table.addCell(getCellBorderTop(this.pedido.getFechaFactura())); table.addCell(getCellNoBorder("Razon Social:")); table.addCell(getCellNoBorder(this.pedido.getCliente_razon_social())); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder("Dias Credito:")); table.addCell(getCellNoBorder("" + this.pedido.getDias_credito())); table.addCell(getCellNoBorder("Direccion:")); table.addCell(getCellNoBorder(this.pedido.getDireccion())); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder("Forma de Pago:")); table.addCell(getCellNoBorder(this.pedido.getForma_pago())); table.addCell(getCellNoBorder("Establecimiento:")); table.addCell(getCellNoBorder(this.pedido.getEstablecimiento_cliente())); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); table.addCell(getCellNoBorder(" ")); return table; }
From source file:fc.extensions.itext.Writer.java
License:MIT License
public PdfPTable createTable(int columns, float width, int[] columnWidthScale) throws DocumentException { PdfPTable pdfTable = new PdfPTable(columns); //table.setTableEvent(null); pdfTable.setTotalWidth(width);/* ww w . j ava 2 s .co m*/ pdfTable.setWidths(columnWidthScale); return pdfTable; }
From source file:file.PDFWriter.java
License:Open Source License
/** * Add the page number and line to the PDF * @param splitLines the array of line segments to print * @param page the page number the line was on * @throws DocumentException /*from w ww . ja v a2s .co m*/ */ private void addLineTableToPDF(String[] splitLines, String page) throws DocumentException { PdfPTable lineTable = new PdfPTable(2); PdfPCell pageCell = new PdfPCell(new Paragraph("Page: " + page, lineFont)); pageCell.setPadding(20); pageCell.setPaddingLeft(0); pageCell.setBorder(PdfPCell.NO_BORDER); Chunk lineSegment1 = new Chunk(splitLines[0]); lineSegment1.setFont(lineFont); Chunk error1 = new Chunk(splitLines[1]); error1.setFont(lineFontBold); Chunk lineSegment2 = new Chunk(splitLines[2]); lineSegment2.setFont(lineFont); Chunk error2 = new Chunk(splitLines[3]); error2.setFont(lineFontBold); Chunk lineSegment3 = new Chunk(splitLines[4]); lineSegment3.setFont(lineFont); Phrase line = new Phrase(lineSegment1); line.add(error1); line.add(lineSegment2); line.add(error2); line.add(lineSegment3); PdfPCell lineCell = new PdfPCell(line); lineCell.setPadding(20); lineCell.setBorder(PdfPCell.NO_BORDER); lineTable.setWidthPercentage(100); lineTable.setWidths(new int[] { 2, 10 }); lineTable.setSpacingBefore(1f); lineTable.setSpacingAfter(1f); lineTable.addCell(pageCell); lineTable.addCell(lineCell); document.add(lineTable); document.add(Chunk.NEWLINE); }
From source file:fll.scheduler.TournamentSchedule.java
License:Open Source License
/** * Output the schedule sorted by team number. This schedule looks much like * the input spreadsheet.// w ww. j a v a 2s . co m * * @param stream where to write the schedule * @throws DocumentException */ public void outputScheduleByTeam(final OutputStream stream) throws DocumentException { final Document pdf = PdfUtils.createLandscapePdfDoc(stream, new SimpleFooterHandler()); final int numColumns = 5 + subjectiveStations.size() + getNumberOfRounds() * 2; final PdfPTable table = PdfUtils.createTable(numColumns); final float[] columnWidths = new float[numColumns]; int idx = 0; columnWidths[idx] = 2; // team number ++idx; columnWidths[idx] = 3; // team name ++idx; columnWidths[idx] = 3; // organization ++idx; columnWidths[idx] = 2; // judging group ++idx; columnWidths[idx] = 2; // division ++idx; for (int i = 0; i < subjectiveStations.size(); ++i) { columnWidths[idx] = 2; // time ++idx; } for (int i = 0; i < getNumberOfRounds(); ++i) { columnWidths[idx] = 2; // time ++idx; columnWidths[idx] = 2; // table ++idx; } table.setWidths(columnWidths); final PdfPCell tournamentCell = PdfUtils.createHeaderCell("Tournament: " + getName()); tournamentCell.setColspan(numColumns); table.addCell(tournamentCell); table.addCell(PdfUtils.createHeaderCell(TEAM_NUMBER_HEADER)); table.addCell(PdfUtils.createHeaderCell(TEAM_NAME_HEADER)); table.addCell(PdfUtils.createHeaderCell(ORGANIZATION_HEADER)); table.addCell(PdfUtils.createHeaderCell(JUDGE_GROUP_HEADER)); table.addCell(PdfUtils.createHeaderCell(AWARD_GROUP_HEADER)); for (final String subjectiveStation : subjectiveStations) { table.addCell(PdfUtils.createHeaderCell(subjectiveStation)); } for (int round = 0; round < getNumberOfRounds(); ++round) { table.addCell(PdfUtils.createHeaderCell(String.format(PERF_HEADER_FORMAT, round + 1))); table.addCell(PdfUtils.createHeaderCell(String.format(TABLE_HEADER_FORMAT, round + 1))); } table.setHeaderRows(2); Collections.sort(_schedule, ComparatorByTeam.INSTANCE); for (final TeamScheduleInfo si : _schedule) { table.addCell(PdfUtils.createCell(String.valueOf(si.getTeamNumber()))); table.addCell(PdfUtils.createCell(si.getTeamName())); table.addCell(PdfUtils.createCell(si.getOrganization())); table.addCell(PdfUtils.createCell(si.getJudgingGroup())); table.addCell(PdfUtils.createCell(si.getAwardGroup())); for (final String subjectiveStation : subjectiveStations) { table.addCell( PdfUtils.createCell(formatTime(si.getSubjectiveTimeByName(subjectiveStation).getTime()))); } for (int round = 0; round < getNumberOfRounds(); ++round) { final PerformanceTime perf = si.getPerf(round); table.addCell(PdfUtils.createCell(formatTime(perf.getTime()))); table.addCell(PdfUtils.createCell(String.format("%s %s", perf.getTable(), perf.getSide()))); } } pdf.add(table); pdf.close(); }
From source file:fll.scheduler.TournamentSchedule.java
License:Open Source License
private void outputPerformanceSchedule(final Document detailedSchedules) throws DocumentException { final SortedMap<PerformanceTime, TeamScheduleInfo> performanceTimes = new TreeMap<PerformanceTime, TeamScheduleInfo>(); for (int round = 0; round < getNumberOfRounds(); ++round) { for (final TeamScheduleInfo si : _schedule) { performanceTimes.put(si.getPerf(round), si); }/*from w w w . j a v a2 s. co m*/ } // list of teams staying around to even up the teams final List<TeamScheduleInfo> teamsStaying = new LinkedList<TeamScheduleInfo>(); final PdfPTable table = PdfUtils.createTable(7); table.setWidths(new float[] { 2, 1, 3, 3, 2, 2, 2 }); final PdfPCell tournamentCell = PdfUtils.createHeaderCell("Tournament: " + getName() + " Performance"); tournamentCell.setColspan(7); table.addCell(tournamentCell); table.addCell(PdfUtils.createHeaderCell(TEAM_NUMBER_HEADER)); table.addCell(PdfUtils.createHeaderCell(DIVISION_HEADER)); table.addCell(PdfUtils.createHeaderCell(ORGANIZATION_HEADER)); table.addCell(PdfUtils.createHeaderCell(TEAM_NAME_HEADER)); table.addCell(PdfUtils.createHeaderCell("Time")); table.addCell(PdfUtils.createHeaderCell("Table")); table.addCell(PdfUtils.createHeaderCell("Round")); table.setHeaderRows(1); for (final Map.Entry<PerformanceTime, TeamScheduleInfo> entry : performanceTimes.entrySet()) { final PerformanceTime performance = entry.getKey(); final TeamScheduleInfo si = entry.getValue(); final int round = si.computeRound(performance); // check if team needs to stay and color the cell magenta if they do final BaseColor backgroundColor; if (null != checkIfTeamNeedsToStay(si, round)) { teamsStaying.add(si); backgroundColor = BaseColor.MAGENTA; } else { backgroundColor = null; } table.addCell(PdfUtils.createCell(String.valueOf(si.getTeamNumber()))); table.addCell(PdfUtils.createCell(si.getAwardGroup())); table.addCell(PdfUtils.createCell(si.getOrganization())); table.addCell(PdfUtils.createCell(si.getTeamName())); table.addCell(PdfUtils.createCell(formatTime(si.getPerfTime(round)), backgroundColor)); table.addCell(PdfUtils.createCell(si.getPerfTableColor(round) + " " + si.getPerfTableSide(round), backgroundColor)); table.addCell(PdfUtils.createCell(String.valueOf(round + 1))); } detailedSchedules.add(table); // output teams staying if (!teamsStaying.isEmpty()) { final String formatString = "Team %d will please stay at the table and compete again - score will not count."; final PdfPTable stayingTable = PdfUtils.createTable(1); for (final TeamScheduleInfo si : teamsStaying) { stayingTable.addCell(PdfUtils.createCell( new Formatter().format(formatString, si.getTeamNumber()).toString(), BaseColor.MAGENTA)); } detailedSchedules.add(stayingTable); } detailedSchedules.add(Chunk.NEXTPAGE); }
From source file:fll.scheduler.TournamentSchedule.java
License:Open Source License
private void outputSubjectiveScheduleByDivision(final Document detailedSchedules, final String subjectiveStation) throws DocumentException { final PdfPTable table = PdfUtils.createTable(6); table.setWidths(new float[] { 2, 1, 3, 3, 2, 2 }); final PdfPCell tournamentCell = PdfUtils .createHeaderCell("Tournament: " + getName() + " - " + subjectiveStation); tournamentCell.setColspan(6);/*from w w w . ja v a2 s .c o m*/ table.addCell(tournamentCell); table.addCell(PdfUtils.createHeaderCell(TEAM_NUMBER_HEADER)); table.addCell(PdfUtils.createHeaderCell(AWARD_GROUP_HEADER)); table.addCell(PdfUtils.createHeaderCell(ORGANIZATION_HEADER)); table.addCell(PdfUtils.createHeaderCell(TEAM_NAME_HEADER)); table.addCell(PdfUtils.createHeaderCell(subjectiveStation)); table.addCell(PdfUtils.createHeaderCell(JUDGE_GROUP_HEADER)); table.setHeaderRows(2); Collections.sort(_schedule, getComparatorForSubjectiveByDivision(subjectiveStation)); for (final TeamScheduleInfo si : _schedule) { table.addCell(PdfUtils.createCell(String.valueOf(si.getTeamNumber()))); table.addCell(PdfUtils.createCell(si.getAwardGroup())); table.addCell(PdfUtils.createCell(si.getOrganization())); table.addCell(PdfUtils.createCell(si.getTeamName())); table.addCell(PdfUtils.createCell(formatTime(si.getSubjectiveTimeByName(subjectiveStation).getTime()))); table.addCell(PdfUtils.createCell(si.getJudgingGroup())); } detailedSchedules.add(table); }
From source file:fll.scheduler.TournamentSchedule.java
License:Open Source License
private void outputSubjectiveScheduleByTime(final Document detailedSchedules, final String subjectiveStation) throws DocumentException { final PdfPTable table = PdfUtils.createTable(6); table.setWidths(new float[] { 2, 1, 3, 3, 2, 2 }); final PdfPCell tournamentCell = PdfUtils .createHeaderCell("Tournament: " + getName() + " - " + subjectiveStation); tournamentCell.setColspan(6);/* w w w . j a va 2 s . c o m*/ table.addCell(tournamentCell); table.addCell(PdfUtils.createHeaderCell(TEAM_NUMBER_HEADER)); table.addCell(PdfUtils.createHeaderCell(AWARD_GROUP_HEADER)); table.addCell(PdfUtils.createHeaderCell(ORGANIZATION_HEADER)); table.addCell(PdfUtils.createHeaderCell(TEAM_NAME_HEADER)); table.addCell(PdfUtils.createHeaderCell(subjectiveStation)); table.addCell(PdfUtils.createHeaderCell(JUDGE_GROUP_HEADER)); table.setHeaderRows(2); Collections.sort(_schedule, getComparatorForSubjectiveByTime(subjectiveStation)); for (final TeamScheduleInfo si : _schedule) { table.addCell(PdfUtils.createCell(String.valueOf(si.getTeamNumber()))); table.addCell(PdfUtils.createCell(si.getAwardGroup())); table.addCell(PdfUtils.createCell(si.getOrganization())); table.addCell(PdfUtils.createCell(si.getTeamName())); table.addCell(PdfUtils.createCell(formatTime(si.getSubjectiveTimeByName(subjectiveStation).getTime()))); table.addCell(PdfUtils.createCell(si.getJudgingGroup())); } detailedSchedules.add(table); }