jmesa之Toolbar

  • 格式:docx
  • 大小:25.92 KB
  • 文档页数:5

Java代码1.public class HtmlToolbar extends AbstractToolbar {2.3.@SuppressWarnings("unchecked")4.@Override5. public String render() {6. if (hasToolbarItems()) { // already has items7. return super.render();8. }9.10. addToolbarItem(ToolbarItemType.FIRST_PAGE_ITEM);11. addToolbarItem(ToolbarItemType.PREV_PAGE_ITEM);12.13.//AbstractToolbar有个enablePageNumbers方法,用于设置显示数字的页是否可用,但14.//本人试着新创建HtmlToolbar对象,然后将enablePageNumbers的值设为true,然后将它重新放回tableFacade,结果还是一样,换了几个位置,都没成功,估计是系统的bug15. if (enablePageNumbers) {16. addToolbarItem(ToolbarItemType.PAGE_NUMBER_ITEMS);17. }18.19. addToolbarItem(ToolbarItemType.NEXT_PAGE_ITEM);20. addToolbarItem(ST_PAGE_ITEM);21.22. if (enableSeparators) {23. addToolbarItem(ToolbarItemType.SEPARATOR);24. }25.26. MaxRowsItem maxRowsItem = (MaxRowsItem) addToolbarItem(ToolbarItemType.MAX_ROWS_ITEM);27. if (getMaxRowsIncrements() != null) {28. maxRowsItem.setIncrements(getMaxRowsIncrements());29. }30.31. boolean exportable = ViewUtils.isExportable(getExportTypes());32.33. if (exportable && enableSeparators) {34. addToolbarItem(ToolbarItemType.SEPARATOR);35. }36.37. if (exportable) {38. addExportToolbarItems(getExportTypes());39. }40.41. Row row = getTable().getRow();42. List columns = row.getColumns();43.44. boolean filterable = ViewUtils.isFilterable(columns);45.46. if (filterable && enableSeparators) {47. addToolbarItem(ToolbarItemType.SEPARATOR);48. }49.50. if (filterable) {51. addToolbarItem(ToolbarItemType.FILTER_ITEM);52. addToolbarItem(ToolbarItemType.CLEAR_ITEM);53. }54.55. boolean editable = ViewUtils.isEditable(getCoreContext().getWorksheet());56. if (editable && enableSeparators) {57. addToolbarItem(ToolbarItemType.SEPARATOR);58. }59.60. if (editable) {61. addToolbarItem(ToolbarItemType.SAVE_WORKSHEET_ITEM);62. addToolbarItem(ToolbarItemType.FILTER_WORKSHEET_ITEM);63. }64.65. return super.render();66. }67.}上面说了,enablePageNumbers好像没有什么作用,只有手动实现一个工具栏的类,然后直接添加ToolbarItemType.PAGE_NUMBER_ITEMS参数,官方有一个例子,这个例子还添加了一个自定义的图形按钮,一并写上来,于是自定义的工具栏类就像下面这样:Java代码1.public class CustomToolbar extends AbstractToolbar {2.@Override3. public String render() {4. addToolbarItem(ToolbarItemType.FIRST_PAGE_ITEM);5. addToolbarItem(ToolbarItemType.PREV_PAGE_ITEM);6. addToolbarItem(ToolbarItemType.NEXT_PAGE_ITEM);7. addToolbarItem(ST_PAGE_ITEM);8.9. addToolbarItem(ToolbarItemType.SEPARATOR);10. addToolbarItem(ToolbarItemType.PAGE_NUMBER_ITEMS);11.12. ImageItemImpl item = new ImageItemImpl();13. item.setCode("custom-item");14. item.setTooltip("Hello World");15. item.setImage(getImage("custom.png", getWebContext(), getCoreContext()));16. item.setAlt("custom");17. ToolbarItemRenderer renderer = new CustomItemRenderer(item, getCoreContext());18. renderer.setOnInvokeAction("onInvokeAction");19. item.setToolbarItemRenderer(renderer);20. addToolbarItem(item);21.22.23. MaxRowsItem maxRowsItem = (MaxRowsItem) addToolbarItem(ToolbarItemType.MAX_ROWS_ITEM);24. if (getMaxRowsIncrements() != null) {25. maxRowsItem.setIncrements(getMaxRowsIncrements());26. }27.28. boolean exportable = ViewUtils.isExportable(getExportTypes());29.30. if (exportable) {31. addToolbarItem(ToolbarItemType.SEPARATOR);32. addExportToolbarItems(getExportTypes());33. }34.35. Row row = getTable().getRow();36. List columns = row.getColumns();37.38. boolean filterable = ViewUtils.isFilterable(columns);39.40. if (filterable) {41. addToolbarItem(ToolbarItemType.SEPARATOR);42. addToolbarItem(ToolbarItemType.FILTER_ITEM);43. addToolbarItem(ToolbarItemType.CLEAR_ITEM);44. }45.46. boolean editable = ViewUtils.isEditable(getCoreContext().getWorksheet());47.48. if (editable) {49. addToolbarItem(ToolbarItemType.SEPARATOR);50. addToolbarItem(ToolbarItemType.SAVE_WORKSHEET_ITEM);51. addToolbarItem(ToolbarItemType.FILTER_WORKSHEET_ITEM);52. }53.54. addToolbarItem(ToolbarItemType.SEPARATOR);55.56.57. return super.render();58. }59.60. private static String getImage(String image, WebContext webContext,CoreContext coreContext) {61. String imagesPath = HtmlUtils.imagesPath(webContext, coreContext);62. return imagesPath + image;63. }64.65. private static class CustomItemRenderer extends AbstractItemRenderer{66. public CustomItemRenderer(ToolbarItem item, CoreContext coreContext) {67. setToolbarItem(item);68. setCoreContext(coreContext);69. }70.71. public String render() {72. ToolbarItem item = getToolbarItem();73. StringBuilder action = new StringBuilder("javascript:");74. action.append("alert('Hello World')");75. item.setAction(action.toString());76. return item.enabled();77. }78. }79.}其中有张图片custom.png放在images/table目录即可。