1 31 32 package org.opencms.workplace.list; 33 34 import org.opencms.i18n.CmsMessageContainer; 35 import org.opencms.i18n.CmsMessages; 36 import org.opencms.main.CmsIllegalArgumentException; 37 import org.opencms.util.CmsStringUtil; 38 import org.opencms.workplace.CmsDialog; 39 import org.opencms.workplace.CmsWorkplace; 40 import org.opencms.workplace.tools.A_CmsHtmlIconButton; 41 import org.opencms.workplace.tools.CmsHtmlIconButtonStyleEnum; 42 43 import java.util.ArrayList ; 44 import java.util.Collection ; 45 import java.util.Collections ; 46 import java.util.Iterator ; 47 import java.util.List ; 48 import java.util.Locale ; 49 50 59 public class CmsHtmlList { 60 61 62 public static final String ICON_LEFT = "list/leftarrow.png"; 63 64 65 public static final String ICON_RIGHT = "list/rightarrow.png"; 66 67 68 public static final String ITEM_SEPARATOR = "|"; 69 70 71 public static final String NO_SELECTION_HELP_VAR = "noSelHelp"; 72 73 74 public static final String NO_SELECTION_MATCH_HELP_VAR = "noSelMatchHelp"; 75 76 77 private int m_currentPage; 78 79 80 private CmsListOrderEnum m_currentSortOrder; 81 82 83 private List m_filteredItems; 84 85 86 private final String m_id; 87 88 89 private int m_maxItemsPerPage = 20; 90 91 92 private CmsListMetadata m_metadata; 93 94 95 private final CmsMessageContainer m_name; 96 97 98 private final List m_originalItems = new ArrayList (); 99 100 101 private boolean m_printable; 102 103 104 private String m_searchFilter; 105 106 107 private String m_sortedColumn; 108 109 110 private List m_visibleItems; 111 112 119 public CmsHtmlList(String id, CmsMessageContainer name, CmsListMetadata metadata) { 120 121 m_id = id; 122 m_name = name; 123 m_metadata = metadata; 124 m_currentPage = 1; 125 } 126 127 138 public void addAllItems(Collection listItems) { 139 140 m_originalItems.addAll(listItems); 141 } 142 143 154 public void addItem(CmsListItem listItem) { 155 156 m_originalItems.add(listItem); 157 } 158 159 164 public void clear(Locale locale) { 165 166 m_originalItems.clear(); 167 m_filteredItems = null; 168 if (m_visibleItems != null) { 169 m_visibleItems.clear(); 170 } 171 setSearchFilter("", locale); 172 m_sortedColumn = null; 173 } 174 175 180 public List getAllContent() { 181 182 return Collections.unmodifiableList(m_originalItems); 183 } 184 185 192 public List getContent() { 193 194 if (m_filteredItems == null) { 195 return getAllContent(); 196 } else { 197 return Collections.unmodifiableList(m_filteredItems); 198 } 199 } 200 201 206 public int getCurrentPage() { 207 208 return m_currentPage; 209 } 210 211 216 public List getCurrentPageItems() { 217 218 if (getSize() == 0) { 219 return Collections.EMPTY_LIST; 220 } 221 return Collections.unmodifiableList(getContent().subList(displayedFrom() - 1, displayedTo())); 222 } 223 224 229 public CmsListOrderEnum getCurrentSortOrder() { 230 231 return m_currentSortOrder; 232 } 233 234 239 public String getId() { 240 241 return m_id; 242 } 243 244 253 public CmsListItem getItem(String id) { 254 255 Iterator it = m_originalItems.iterator(); 256 while (it.hasNext()) { 257 CmsListItem item = (CmsListItem)it.next(); 258 if (item.getId().equals(id)) { 259 return item; 260 } 261 } 262 return null; 263 } 264 265 270 public int getMaxItemsPerPage() { 271 272 return m_maxItemsPerPage; 273 } 274 275 280 public CmsListMetadata getMetadata() { 281 282 return m_metadata; 283 } 284 285 290 public CmsMessageContainer getName() { 291 292 return m_name; 293 } 294 295 302 public int getNumberOfPages() { 303 304 return (int)Math.ceil((double)getSize() / getMaxItemsPerPage()); 305 } 306 307 312 public String getSearchFilter() { 313 314 return m_searchFilter; 315 } 316 317 324 public int getSize() { 325 326 return getContent().size(); 327 } 328 329 334 public String getSortedColumn() { 335 336 return m_sortedColumn; 337 } 338 339 344 public CmsListState getState() { 345 346 return new CmsListState(this); 347 } 348 349 354 public int getTotalNumberOfPages() { 355 356 return (int)Math.ceil((double)getAllContent().size() / getMaxItemsPerPage()); 357 } 358 359 364 public int getTotalSize() { 365 366 return getAllContent().size(); 367 } 368 369 377 public void insertAllItems(Collection listItems, Locale locale) { 378 379 CmsListState state = null; 380 if (m_filteredItems != null || m_visibleItems != null) { 381 state = getState(); 382 } 383 addAllItems(listItems); 384 if (m_filteredItems != null) { 385 m_filteredItems.addAll(listItems); 386 } 387 if (m_visibleItems != null) { 388 m_visibleItems.addAll(listItems); 389 } 390 if (state != null) { 391 setState(state, locale); 392 } 393 } 394 395 403 public void insertItem(CmsListItem listItem, Locale locale) { 404 405 CmsListState state = null; 406 if (m_filteredItems != null || m_visibleItems != null) { 407 state = getState(); 408 } 409 addItem(listItem); 410 if (m_filteredItems != null) { 411 m_filteredItems.add(listItem); 412 } 413 if (m_visibleItems != null) { 414 m_visibleItems.add(listItem); 415 } 416 if (state != null) { 417 setState(state, locale); 418 } 419 } 420 421 426 public boolean isPrintable() { 427 428 return m_printable; 429 } 430 431 440 public synchronized String listCsv(CmsWorkplace wp) { 441 442 StringBuffer csv = new StringBuffer (5120); 443 csv.append(m_metadata.csvHeader(wp)); 444 if (getContent().isEmpty()) { 445 csv.append(m_metadata.csvEmptyList()); 446 } else { 447 Iterator itItems = getContent().iterator(); 448 while (itItems.hasNext()) { 449 CmsListItem item = (CmsListItem)itItems.next(); 450 csv.append(m_metadata.csvItem(item, wp)); 451 } 452 } 453 return wp.resolveMacros(csv.toString()); 454 } 455 456 465 public synchronized String listHtml(CmsWorkplace wp) { 466 467 if (isPrintable()) { 468 m_visibleItems = new ArrayList (getContent()); 469 } else { 470 m_visibleItems = new ArrayList (getCurrentPageItems()); 471 } 472 473 StringBuffer html = new StringBuffer (5120); 474 html.append(htmlBegin(wp)); 475 if (!isPrintable()) { 476 html.append(htmlTitle(wp)); 477 html.append(htmlToolBar(wp)); 478 } else { 479 html.append("<style type='text/css'>\n"); 480 html.append("td.listdetailitem, \n"); 481 html.append(".linkdisabled {\n"); 482 html.append("\tcolor: black;\n"); 483 html.append("}\n"); 484 html.append(".list th {\n"); 485 html.append("\tborder: 1px solid black;\n"); 486 html.append("}\n"); 487 html.append(".list {\n"); 488 html.append("\tborder: 1px solid black;\n"); 489 html.append("}\n"); 490 html.append("</style>"); 491 } 492 html.append("<table width='100%' cellpadding='1' cellspacing='0' class='list'>\n"); 493 html.append(m_metadata.htmlHeader(this, wp)); 494 if (m_visibleItems.isEmpty()) { 495 html.append(m_metadata.htmlEmptyTable(wp.getLocale())); 496 } else { 497 Iterator itItems = m_visibleItems.iterator(); 498 boolean odd = true; 499 while (itItems.hasNext()) { 500 CmsListItem item = (CmsListItem)itItems.next(); 501 html.append(m_metadata.htmlItem(item, wp, odd, isPrintable())); 502 odd = !odd; 503 } 504 } 505 html.append("</table>\n"); 506 if (!isPrintable()) { 507 html.append(htmlPagingBar(wp)); 508 } 509 html.append(htmlEnd(wp)); 510 return wp.resolveMacros(html.toString()); 511 } 512 513 520 public String listJs(Locale locale) { 521 522 StringBuffer js = new StringBuffer (1024); 523 CmsMessages messages = Messages.get().getBundle(locale); 524 js.append("<script type='text/javascript' SRC='"); 525 js.append(CmsWorkplace.getSkinUri()); 526 js.append("admin/javascript/list.js'></script>\n"); 527 if (!m_metadata.getMultiActions().isEmpty()) { 528 js.append("<script type='text/javascript'>\n"); 529 js.append("\tvar "); 530 js.append(NO_SELECTION_HELP_VAR); 531 js.append(" = '"); 532 js.append(CmsStringUtil.escapeJavaScript(messages.key(Messages.GUI_LIST_ACTION_NO_SELECTION_0))); 533 js.append("';\n"); 534 Iterator it = m_metadata.getMultiActions().iterator(); 535 while (it.hasNext()) { 536 CmsListMultiAction action = (CmsListMultiAction)it.next(); 537 if (action instanceof CmsListRadioMultiAction) { 538 CmsListRadioMultiAction rAction = (CmsListRadioMultiAction)action; 539 js.append("\tvar "); 540 js.append(NO_SELECTION_MATCH_HELP_VAR); 541 js.append(rAction.getId()); 542 js.append(" = '"); 543 js.append(CmsStringUtil.escapeJavaScript(messages.key( 544 Messages.GUI_LIST_ACTION_NO_SELECTION_MATCH_1, 545 new Integer (rAction.getSelections())))); 546 js.append("';\n"); 547 } 548 } 549 js.append("</script>\n"); 550 } 551 return js.toString(); 552 } 553 554 560 public CmsListItem newItem(String id) { 561 562 return new CmsListItem(getMetadata(), id); 563 } 564 565 574 public synchronized String printableHtml(CmsWorkplace wp) { 575 576 m_printable = true; 577 String html = listHtml(wp); 578 m_printable = false; 579 return html; 580 } 581 582 594 public List removeAllItems(Collection ids, Locale locale) { 595 596 List removedItems = new ArrayList (); 597 Iterator itItems = m_originalItems.iterator(); 598 while (itItems.hasNext()) { 599 CmsListItem listItem = (CmsListItem)itItems.next(); 600 if (ids.contains(listItem.getId())) { 601 removedItems.add(listItem); 602 } 603 } 604 if (removedItems.isEmpty()) { 605 return removedItems; 606 } 607 CmsListState state = null; 608 if (m_filteredItems != null || m_visibleItems != null) { 609 state = getState(); 610 } 611 m_originalItems.removeAll(removedItems); 612 if (m_filteredItems != null) { 613 m_filteredItems.removeAll(removedItems); 614 } 615 if (m_visibleItems != null) { 616 m_visibleItems.removeAll(removedItems); 617 } 618 if (state != null) { 619 setState(state, locale); 620 } 621 return removedItems; 622 } 623 624 636 public CmsListItem removeItem(String id, Locale locale) { 637 638 CmsListItem item = null; 639 Iterator itItems = m_originalItems.iterator(); 640 while (itItems.hasNext()) { 641 CmsListItem listItem = (CmsListItem)itItems.next(); 642 if (listItem.getId().equals(id)) { 643 item = listItem; 644 break; 645 } 646 } 647 if (item == null) { 648 return null; 649 } 650 CmsListState state = null; 651 if (m_filteredItems != null || m_visibleItems != null) { 652 state = getState(); 653 } 654 m_originalItems.remove(item); 655 if (m_filteredItems != null) { 656 m_filteredItems.remove(item); 657 } 658 if (m_visibleItems != null) { 659 m_visibleItems.remove(item); 660 } 661 if (state != null) { 662 setState(state, locale); 663 } 664 return item; 665 } 666 667 683 public List replaceAllItems(List listItems, Locale locale) { 684 685 List removedItems = new ArrayList (); 686 Iterator itItems = m_originalItems.iterator(); 687 while (itItems.hasNext()) { 688 CmsListItem listItem = (CmsListItem)itItems.next(); 689 Iterator itNewItems = listItems.iterator(); 690 while (itNewItems.hasNext()) { 691 if (listItem.equals(((CmsListItem)itNewItems.next()).getId())) { 692 removedItems.add(listItem); 693 } 694 } 695 } 696 CmsListState state = null; 697 if (m_filteredItems != null || m_visibleItems != null) { 698 state = getState(); 699 } 700 if (!removedItems.isEmpty()) { 701 m_originalItems.removeAll(removedItems); 702 } 703 addAllItems(listItems); 704 if (state != null) { 705 setState(state, locale); 706 } 707 return removedItems; 708 } 709 710 726 public CmsListItem replaceItem(CmsListItem listItem, Locale locale) { 727 728 CmsListItem item = null; 729 Iterator itItems = m_originalItems.iterator(); 730 while (itItems.hasNext()) { 731 CmsListItem tmp = (CmsListItem)itItems.next(); 732 if (tmp.getId().equals(listItem.getId())) { 733 item = tmp; 734 break; 735 } 736 } 737 CmsListState state = null; 738 if (m_filteredItems != null || m_visibleItems != null) { 739 state = getState(); 740 } 741 if (item != null) { 742 m_originalItems.remove(item); 743 } 744 addItem(listItem); 745 if (state != null) { 746 setState(state, locale); 747 } 748 return item; 749 } 750 751 758 public void setCurrentPage(int currentPage) throws CmsIllegalArgumentException { 759 760 if (getSize() != 0) { 761 if (currentPage < 1 || currentPage > getNumberOfPages()) { 762 throw new CmsIllegalArgumentException(Messages.get().container( 763 Messages.ERR_LIST_INVALID_PAGE_1, 764 new Integer (currentPage))); 765 } 766 } 767 m_currentPage = currentPage; 768 } 769 770 775 public void setMaxItemsPerPage(int maxItemsPerPage) { 776 777 this.m_maxItemsPerPage = maxItemsPerPage; 778 } 779 780 786 public void setSearchFilter(String searchFilter, Locale locale) { 787 788 if (!m_metadata.isSearchable()) { 789 return; 790 } 791 if (CmsStringUtil.isEmptyOrWhitespaceOnly(searchFilter)) { 792 m_filteredItems = null; 794 m_searchFilter = ""; 795 getMetadata().getSearchAction().getShowAllAction().setVisible(false); 796 } else { 797 m_filteredItems = getMetadata().getSearchAction().filter(getAllContent(), searchFilter); 798 m_searchFilter = searchFilter; 799 getMetadata().getSearchAction().getShowAllAction().setVisible(true); 800 } 801 String sCol = m_sortedColumn; 802 m_sortedColumn = ""; 803 if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(sCol)) { 804 CmsListOrderEnum order = getCurrentSortOrder(); 805 setSortedColumn(sCol, locale); 806 if (order == CmsListOrderEnum.ORDER_DESCENDING) { 807 setSortedColumn(sCol, locale); 808 } 809 } 810 setCurrentPage(1); 811 } 812 813 821 public void setSortedColumn(String sortedColumn, Locale locale) throws CmsIllegalArgumentException { 822 823 if (getMetadata().getColumnDefinition(sortedColumn) == null 824 || !getMetadata().getColumnDefinition(sortedColumn).isSorteable()) { 825 return; 826 } 827 if (m_metadata.getColumnDefinition(sortedColumn) == null) { 829 throw new CmsIllegalArgumentException(Messages.get().container( 830 Messages.ERR_LIST_INVALID_COLUMN_1, 831 sortedColumn)); 832 } 833 setCurrentPage(1); 835 if (sortedColumn.equals(m_sortedColumn)) { 837 if (m_currentSortOrder == CmsListOrderEnum.ORDER_ASCENDING) { 838 m_currentSortOrder = CmsListOrderEnum.ORDER_DESCENDING; 839 } else { 840 m_currentSortOrder = CmsListOrderEnum.ORDER_ASCENDING; 841 } 842 Collections.reverse(m_filteredItems); 843 return; 844 } 845 m_sortedColumn = sortedColumn; 847 m_currentSortOrder = CmsListOrderEnum.ORDER_ASCENDING; 848 I_CmsListItemComparator c = getMetadata().getColumnDefinition(sortedColumn).getListItemComparator(); 849 if (m_filteredItems == null) { 850 m_filteredItems = new ArrayList (getAllContent()); 851 } 852 Collections.sort(m_filteredItems, c.getComparator(sortedColumn, locale)); 853 } 854 855 863 public void setState(CmsListState listState, Locale locale) { 864 865 setSearchFilter(listState.getFilter(), locale); 866 setSortedColumn(listState.getColumn(), locale); 867 if (listState.getOrder() == CmsListOrderEnum.ORDER_DESCENDING) { 868 setSortedColumn(listState.getColumn(), locale); 869 } 870 if (listState.getPage() > 0) { 871 if (listState.getPage() <= getNumberOfPages()) { 872 setCurrentPage(listState.getPage()); 873 } else { 874 setCurrentPage(1); 875 } 876 } 877 } 878 879 888 void setMetadata(CmsListMetadata metadata) { 889 890 m_metadata = metadata; 891 } 892 893 898 private int displayedFrom() { 899 900 if (getSize() != 0) { 901 if (isPrintable()) { 902 return 1; 903 } else { 904 return (getCurrentPage() - 1) * getMaxItemsPerPage() + 1; 905 } 906 } 907 return 0; 908 } 909 910 915 private int displayedTo() { 916 917 if (getSize() != 0) { 918 if (!isPrintable()) { 919 if (getCurrentPage() * getMaxItemsPerPage() < getSize()) { 920 return getCurrentPage() * getMaxItemsPerPage(); 921 } 922 } 923 } 924 return getSize(); 925 } 926 927 934 private String htmlBegin(CmsWorkplace wp) { 935 936 StringBuffer html = new StringBuffer (512); 937 if (!isPrintable() && m_visibleItems != null && !m_visibleItems.isEmpty()) { 939 Iterator cols = getMetadata().getColumnDefinitions().iterator(); 940 while (cols.hasNext()) { 941 CmsListColumnDefinition col = (CmsListColumnDefinition)cols.next(); 942 Iterator actions = col.getDirectActions().iterator(); 943 while (actions.hasNext()) { 944 I_CmsListDirectAction action = (I_CmsListDirectAction)actions.next(); 945 action.setItem((CmsListItem)m_visibleItems.get(0)); 946 html.append(action.helpTextHtml(wp)); 947 html.append(action.confirmationTextHtml(wp)); 948 } 949 Iterator defActions = col.getDefaultActions().iterator(); 950 while (defActions.hasNext()) { 951 I_CmsListDirectAction action = (I_CmsListDirectAction)defActions.next(); 952 action.setItem((CmsListItem)m_visibleItems.get(0)); 953 html.append(action.helpTextHtml(wp)); 954 html.append(action.confirmationTextHtml(wp)); 955 } 956 } 957 } 958 html.append("<div class='listArea'>\n"); 960 html.append(((CmsDialog)wp).dialogBlock(CmsWorkplace.HTML_START, m_name.key(wp.getLocale()), false)); 961 html.append("\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n"); 962 html.append("\t\t\t<tr><td>\n"); 963 return html.toString(); 964 } 965 966 973 private String htmlEnd(CmsWorkplace wp) { 974 975 StringBuffer html = new StringBuffer (512); 976 html.append("\t\t\t</td></tr>\n"); 977 html.append("\t\t</table>\n"); 978 html.append(((CmsDialog)wp).dialogBlock(CmsWorkplace.HTML_END, m_name.key(wp.getLocale()), false)); 979 html.append("</div>\n"); 980 if (!isPrintable() && getMetadata().isSearchable()) { 981 html.append("<script type='text/javascript'>\n"); 982 html.append("\tvar form = document.forms['"); 983 html.append(getId()); 984 html.append("-form'];\n"); 985 html.append("\tform.listSearchFilter.value='"); 986 html.append(getSearchFilter() != null ? CmsStringUtil.escapeJavaScript(getSearchFilter()) : ""); 987 html.append("';\n"); 988 html.append("</script>\n"); 989 } 990 return html.toString(); 991 } 992 993 1000 private String htmlPagingBar(CmsWorkplace wp) { 1001 1002 if (getNumberOfPages() < 2) { 1003 return ""; 1004 } 1005 StringBuffer html = new StringBuffer (1024); 1006 CmsMessages messages = Messages.get().getBundle(wp.getLocale()); 1007 html.append("<table width='100%' cellspacing='0' style='margin-top: 5px;'>\n"); 1008 html.append("\t<tr>\n"); 1009 html.append("\t\t<td class='main'>\n"); 1010 String id = "listPrev"; 1012 String name = messages.key(Messages.GUI_LIST_PAGING_PREVIOUS_NAME_0); 1013 String iconPath = ICON_LEFT; 1014 boolean enabled = getCurrentPage() > 1; 1015 String helpText = messages.key(Messages.GUI_LIST_PAGING_PREVIOUS_HELP_0); 1016 if (!enabled) { 1017 helpText = messages.key(Messages.GUI_LIST_PAGING_PREVIOUS_HELPDIS_0); 1018 } 1019 String onClic = "listSetPage('" + getId() + "', " + (getCurrentPage() - 1) + ")"; 1020 html.append(A_CmsHtmlIconButton.defaultButtonHtml( 1021 wp.getJsp(), 1022 CmsHtmlIconButtonStyleEnum.SMALL_ICON_TEXT, 1023 id, 1024 name, 1025 helpText, 1026 enabled, 1027 iconPath, 1028 null, 1029 onClic)); 1030 html.append("\n"); 1031 id = "listNext"; 1033 name = messages.key(Messages.GUI_LIST_PAGING_NEXT_NAME_0); 1034 iconPath = ICON_RIGHT; 1035 enabled = getCurrentPage() < getNumberOfPages(); 1036 helpText = messages.key(Messages.GUI_LIST_PAGING_NEXT_HELP_0); 1037 if (!enabled) { 1038 helpText = messages.key(Messages.GUI_LIST_PAGING_NEXT_HELPDIS_0); 1039 } 1040 onClic = "listSetPage('" + getId() + "', " + (getCurrentPage() + 1) + ")"; 1041 html.append(A_CmsHtmlIconButton.defaultButtonHtml( 1042 wp.getJsp(), 1043 CmsHtmlIconButtonStyleEnum.SMALL_ICON_TEXT, 1044 id, 1045 name, 1046 helpText, 1047 enabled, 1048 iconPath, 1049 null, 1050 onClic)); 1051 html.append("\n"); 1052 html.append("\t\t\t "); 1054 html.append("\t\t\t<select name='listPageSet' id='id-page_set' onChange =\"listSetPage('"); 1055 html.append(getId()); 1056 html.append("', this.value);\" style='vertical-align: bottom;'>\n"); 1057 for (int i = 0; i < getNumberOfPages(); i++) { 1058 int displayedFrom = i * getMaxItemsPerPage() + 1; 1059 int displayedTo = (i + 1) * getMaxItemsPerPage() < getSize() ? (i + 1) * getMaxItemsPerPage() : getSize(); 1060 html.append("\t\t\t\t<option value='"); 1061 html.append(i + 1); 1062 html.append("'"); 1063 html.append((i + 1) == getCurrentPage() ? " selected" : ""); 1064 html.append(">"); 1065 html.append(displayedFrom); 1066 html.append(" - "); 1067 html.append(displayedTo); 1068 html.append("</option>\n"); 1069 } 1070 html.append("\t\t\t</select>\n"); 1071 html.append("\t\t\t "); 1072 if (CmsStringUtil.isEmptyOrWhitespaceOnly(m_searchFilter)) { 1073 html.append(messages.key( 1074 Messages.GUI_LIST_PAGING_TEXT_2, 1075 new Object [] {m_name.key(wp.getLocale()), new Integer (getTotalSize())})); 1076 } else { 1077 html.append(messages.key( 1078 Messages.GUI_LIST_PAGING_FILTER_TEXT_3, 1079 new Object [] {m_name.key(wp.getLocale()), new Integer (getSize()), new Integer (getTotalSize())})); 1080 } 1081 html.append("\t\t</td>\n"); 1082 html.append("\t</tr>\n"); 1083 html.append("</table>\n"); 1084 return html.toString(); 1085 } 1086 1087 1094 private String htmlTitle(CmsWorkplace wp) { 1095 1096 StringBuffer html = new StringBuffer (512); 1097 CmsMessages messages = Messages.get().getBundle(wp.getLocale()); 1098 html.append("<table width='100%' cellspacing='0'>"); 1099 html.append("\t<tr>\n"); 1100 html.append("\t\t<td align='left'>\n"); 1101 html.append("\t\t\t"); 1102 if (getTotalNumberOfPages() > 1) { 1103 if (CmsStringUtil.isEmptyOrWhitespaceOnly(m_searchFilter)) { 1104 html.append(messages.key(Messages.GUI_LIST_TITLE_TEXT_4, new Object [] { 1105 m_name.key(wp.getLocale()), 1106 new Integer (displayedFrom()), 1107 new Integer (displayedTo()), 1108 new Integer (getTotalSize())})); 1109 } else { 1110 html.append(messages.key(Messages.GUI_LIST_TITLE_FILTERED_TEXT_5, new Object [] { 1111 m_name.key(wp.getLocale()), 1112 new Integer (displayedFrom()), 1113 new Integer (displayedTo()), 1114 new Integer (getSize()), 1115 new Integer (getTotalSize())})); 1116 } 1117 } else { 1118 if (CmsStringUtil.isEmptyOrWhitespaceOnly(m_searchFilter)) { 1119 html.append(messages.key(Messages.GUI_LIST_SINGLE_TITLE_TEXT_2, new Object [] { 1120 m_name.key(wp.getLocale()), 1121 new Integer (getTotalSize())})); 1122 } else { 1123 html.append(messages.key(Messages.GUI_LIST_SINGLE_TITLE_FILTERED_TEXT_3, new Object [] { 1124 m_name.key(wp.getLocale()), 1125 new Integer (getSize()), 1126 new Integer (getTotalSize())})); 1127 } 1128 } 1129 html.append("\n"); 1130 html.append("\t\t</td>\n\t\t"); 1131 html.append(getMetadata().htmlActionBar(wp)); 1132 html.append("\n\t</tr>\n"); 1133 html.append("</table>\n"); 1134 return html.toString(); 1135 } 1136 1137 1144 private String htmlToolBar(CmsWorkplace wp) { 1145 1146 StringBuffer html = new StringBuffer (512); 1147 html.append("<table width='100%' cellspacing='0' style='margin-bottom: 5px'>\n"); 1148 html.append("\t<tr>\n"); 1149 html.append(m_metadata.htmlSearchBar(wp)); 1150 html.append(m_metadata.htmlMultiActionBar(wp)); 1151 html.append("\t</tr>\n"); 1152 html.append("</table>\n"); 1153 return html.toString(); 1154 } 1155} | Popular Tags |