1 21 22 package org.opensubsystems.patterns.listdata.data; 23 24 import java.io.Serializable ; 25 import java.util.ArrayList ; 26 import java.util.List ; 27 28 import org.opensubsystems.core.data.DataConstant; 29 import org.opensubsystems.core.data.DataObject; 30 import org.opensubsystems.core.util.GlobalConstants; 31 32 45 public class ListOptions implements Serializable 46 { 47 49 54 public static final int PAGE_SIZE_ALL = 0; 55 56 58 61 private static final long serialVersionUID = 2460394574604943241L; 62 63 71 protected Class m_listFactoryClass; 72 73 81 protected String m_strDefinitionId; 82 83 87 protected int[] m_arrOrderColumnCodes; 88 89 94 protected String [] m_arrOrderDirections; 95 96 99 protected int m_iPageSize; 100 101 104 protected int m_iBeginPosition; 105 106 109 protected int m_iEndPosition; 110 111 114 protected int m_iActualPage; 115 116 120 protected int m_iActualListSize; 121 122 127 protected String m_strSelectedItemIDs; 128 129 134 protected String m_strMarkedItemIDs; 135 136 141 protected int m_iFirstVisibleItem; 142 143 148 protected int m_iClientOrderCode; 149 150 153 protected String m_strClientOrderDirection; 154 155 159 protected ListDefinition m_definition; 160 161 168 protected int[] m_arrShowColumnCodes; 169 170 175 protected int[] m_arrRetrieveColumnCodes; 176 177 191 protected int[] m_arrSortableColumnCodes; 192 193 205 protected int[] m_arrFilterableColumnCodes; 206 207 212 protected int m_iParentDataType; 213 214 219 protected int m_iParentId; 220 221 225 protected String m_strIgnoredItemIDs; 226 227 231 protected SimpleRule m_securityFilter; 232 233 238 protected SimpleRule m_extraFilter; 239 240 245 protected int m_iExtraLogicalOperation; 246 247 251 protected boolean m_bDistinct; 252 253 258 protected boolean m_bKeepSelected; 259 260 265 protected int m_iDomainId; 266 267 269 275 public ListOptions( 276 Class listFactoryClass 277 ) 278 { 279 this(listFactoryClass, DataObject.NEW_ID_STR, 280 -1 , 281 0, null, null, 0, ListDefinition.ORDER_ASCENDING, 0, 0, 0, 0, 282 DataConstant.NO_DATA_TYPE, DataObject.NEW_ID, null, null, null, 283 null, false, false, DataObject.NEW_ID); 284 } 285 286 318 public ListOptions( 319 Class listFactoryClass, 320 String strDefinitionId, 321 int iPageSize, 322 int iActualListSize, 323 int[] arrOrderColumnCodes, 324 String [] arrOrderDirections, 325 int iClientOrderCode, 326 String strClientOrderDirection, 327 int iBeginPosition, 328 int iEndPosition, 329 int iActualPage, 330 int iFirstVisibleItem, 331 int iParentDataType, 332 int iParentId, 333 String strSelectedItemIds, 334 String strMarkedItemIds, 335 int[] arrShowColumnCodes, 336 String strIgnoredItemIds, 337 boolean bDistinct, 338 boolean bKeepSelected, 339 int iDomainId 340 ) 341 { 342 m_listFactoryClass = listFactoryClass; 343 m_strDefinitionId = strDefinitionId; 344 m_iPageSize = iPageSize; 345 m_iActualListSize = iActualListSize; 346 setOrdering(arrOrderColumnCodes, arrOrderDirections); 347 m_iClientOrderCode = iClientOrderCode; 348 m_strClientOrderDirection = strClientOrderDirection; 349 m_iBeginPosition = iBeginPosition; 350 m_iEndPosition = iEndPosition; 351 m_iActualPage = iActualPage; 352 m_iFirstVisibleItem = iFirstVisibleItem; 353 m_iParentDataType = iParentDataType; 354 m_iParentId = iParentId; 355 m_strSelectedItemIDs = strSelectedItemIds; 356 m_strMarkedItemIDs = strMarkedItemIds; 357 m_arrShowColumnCodes = arrShowColumnCodes; 358 m_arrRetrieveColumnCodes = m_arrShowColumnCodes; 359 m_strIgnoredItemIDs = strIgnoredItemIds; 360 m_bDistinct = bDistinct; 361 m_bKeepSelected = bKeepSelected; 362 m_extraFilter = null; 363 m_iDomainId = iDomainId; 364 } 365 366 371 public Class getListFactoryClass() 372 { 373 return m_listFactoryClass; 374 } 375 376 379 public String getSelectedItemIDs() 380 { 381 return m_strSelectedItemIDs; 382 } 383 384 387 public String getMarkedItemIDs() 388 { 389 return m_strMarkedItemIDs; 390 } 391 392 395 public String getIgnoredItemIDs() 396 { 397 return m_strIgnoredItemIDs; 398 } 399 400 403 public int getActualPage() 404 { 405 return m_iActualPage; 406 } 407 408 411 public int getBeginPosition() 412 { 413 return m_iBeginPosition; 414 } 415 416 419 public int getClientOrderCode() 420 { 421 return m_iClientOrderCode; 422 } 423 424 427 public int getEndPosition() 428 { 429 return m_iEndPosition; 430 } 431 432 435 public String getDefinitionId() 436 { 437 return m_strDefinitionId; 438 } 439 440 443 public int getFirstVisibleItem() 444 { 445 return m_iFirstVisibleItem; 446 } 447 448 451 public int[] getOrderColumnCodes() 452 { 453 return m_arrOrderColumnCodes; 454 } 455 456 459 public int getPageSize() 460 { 461 return m_iPageSize; 462 } 463 464 469 public void setSelectedItemIDs( 470 String strSelectedItems 471 ) 472 { 473 m_strSelectedItemIDs = strSelectedItems; 474 } 475 476 482 public void setMarkedItemIDs( 483 String strMarkedItemIDs 484 ) 485 { 486 m_strMarkedItemIDs = strMarkedItemIDs; 487 } 488 489 495 public void setIgnoredItemIDs( 496 String strIgnoredItems 497 ) 498 { 499 m_strIgnoredItemIDs = strIgnoredItems; 500 } 501 502 507 public void setActualPage( 508 int iActualPage 509 ) 510 { 511 m_iActualPage = iActualPage; 512 } 513 514 520 public void setBeginPosition( 521 int iBeginPosition 522 ) 523 { 524 m_iBeginPosition = iBeginPosition; 525 } 526 527 530 public void setClientOrderCode( 531 int iClientOrderCode 532 ) 533 { 534 m_iClientOrderCode = iClientOrderCode; 535 } 536 537 543 public void setEndPosition( 544 int iEndPosition 545 ) 546 { 547 m_iEndPosition = iEndPosition; 548 } 549 550 553 public void setDefinitionId( 554 String strDefinitionId 555 ) 556 { 557 m_strDefinitionId = strDefinitionId; 558 } 559 560 563 public void setFirstVisibleItem( 564 int iFirstVisibleItem 565 ) 566 { 567 m_iFirstVisibleItem = iFirstVisibleItem; 568 } 569 570 574 public void setOrdering( 575 int[] arrOrderColumnCodes, 576 String [] arrOrderDirections 577 ) 578 { 579 if (GlobalConstants.ERROR_CHECKING) 580 { 581 assert (((arrOrderColumnCodes == null) && (arrOrderDirections == null)) 582 || (arrOrderColumnCodes.length == arrOrderDirections.length)) 583 : "Length of order column code and order direction arrays has to be the same"; 584 } 585 586 m_arrOrderColumnCodes = arrOrderColumnCodes; 587 m_arrOrderDirections = arrOrderDirections; 588 } 589 590 593 public void setPageSize( 594 int iPageSize 595 ) 596 { 597 m_iPageSize = iPageSize; 598 } 599 600 603 public int getActualListSize() 604 { 605 return m_iActualListSize; 606 } 607 608 611 public void setActualListSize( 612 int iActualListSize 613 ) 614 { 615 m_iActualListSize = iActualListSize; 616 } 617 618 621 public ListDefinition getDefinition( 622 ) 623 { 624 return m_definition; 625 } 626 627 630 public void setDefinition( 631 ListDefinition definition 632 ) 633 { 634 m_definition = definition; 635 } 636 637 640 public int[] getShowColumnCodes( 641 ) 642 { 643 return m_arrShowColumnCodes; 644 } 645 646 649 public void setShowColumnCodes( 650 int[] arrShowColumnCodes 651 ) 652 { 653 m_arrShowColumnCodes = arrShowColumnCodes; 654 } 655 656 659 public String getClientOrderDirection() 660 { 661 return m_strClientOrderDirection; 662 } 663 664 667 public String [] getOrderDirections( 668 ) 669 { 670 return m_arrOrderDirections; 671 } 672 673 677 public void setClientOrderDirection( 678 String strClientOrderDirection 679 ) 680 { 681 m_strClientOrderDirection = strClientOrderDirection; 682 } 683 684 687 public SimpleRule getSecurityFilter( 688 ) 689 { 690 return m_securityFilter; 691 } 692 693 696 public void setSecurityFilter( 697 SimpleRule securityRule 698 ) 699 { 700 m_securityFilter = securityRule; 701 } 702 703 709 public boolean getIsFirstPage( 710 ) 711 { 712 return ((m_iBeginPosition == 1) || (m_iActualListSize == 0)); 713 } 714 715 721 public boolean getIsLastPage( 722 ) 723 { 724 return ((m_iEndPosition == m_iActualListSize) 725 || (m_iActualListSize == 0)); 726 } 727 728 735 public List getGoToPages( 736 ) 737 { 738 List lstPages = new ArrayList (); 739 740 if (m_iPageSize == PAGE_SIZE_ALL) 743 { 744 lstPages.add("1"); 746 } 747 else 748 { 749 int iBeforePages; 751 int iAfterPages; 752 int iPageStep; 753 int iPosition; 754 int iLastAdded = -1; 755 int iTemp; 756 757 iBeforePages = (m_iBeginPosition - 1) / m_iPageSize; 763 if (((m_iBeginPosition - 1) % m_iPageSize) != 0) 765 { 766 iBeforePages++; 767 } 768 769 iAfterPages = (m_iActualListSize - m_iEndPosition) / m_iPageSize; 774 if (((m_iActualListSize - m_iEndPosition) % m_iPageSize) != 0) 775 { 776 iAfterPages++; 777 } 778 779 iPageStep = m_iActualListSize / 10; 784 785 iLastAdded = 0; 786 for (iPosition = 1; iPosition < m_iBeginPosition; iPosition += iPageStep) 788 { 789 iTemp = (iPosition / m_iPageSize) + 1; 790 if (iLastAdded != iTemp) 791 { 792 iLastAdded = iTemp; 793 lstPages.add(Integer.toString(iLastAdded)); 794 } 795 } 796 797 if (iLastAdded != m_iActualPage) 799 { 800 iLastAdded = m_iActualPage; 801 lstPages.add(Integer.toString(iLastAdded)); 802 } 803 804 for (iPosition = m_iEndPosition + 1; iPosition < m_iActualListSize; 806 iPosition += iPageStep) 807 { 808 iTemp = m_iActualPage + ((iPosition - m_iEndPosition) / m_iPageSize) + 1; 809 if (iLastAdded != iTemp) 810 { 811 iLastAdded = iTemp; 812 lstPages.add(Integer.toString(iLastAdded)); 813 } 814 } 815 816 if (iLastAdded != (iBeforePages + 1 + iAfterPages)) 817 { 818 lstPages.add(Integer.toString(iBeforePages + 1 + iAfterPages)); 819 } 820 } 821 822 return lstPages; 823 } 824 825 831 public int getAbsolutePageCount() 832 { 833 int iPageCount; 834 835 if (m_iPageSize == PAGE_SIZE_ALL) 836 { 837 iPageCount = 1; 838 } 839 else 840 { 841 iPageCount = (int)(m_iActualListSize / m_iPageSize); 842 if ((m_iActualListSize % m_iPageSize) != 0) 843 { 844 iPageCount++; 845 } 846 } 847 848 return iPageCount; 849 } 850 851 860 public int getRelativePageCount() 861 { 862 int iPageCount; 863 864 if (m_iPageSize == PAGE_SIZE_ALL) 865 { 866 iPageCount = 1; 867 } 868 else 869 { 870 872 int iBeforePages; 873 int iAfterPages; 874 875 iBeforePages = (m_iBeginPosition - 1) / m_iPageSize; 881 if (((m_iBeginPosition - 1) % m_iPageSize) != 0) 883 { 884 iBeforePages++; 885 } 886 887 iAfterPages = (m_iActualListSize - m_iEndPosition) / m_iPageSize; 892 if (((m_iActualListSize - m_iEndPosition) % m_iPageSize) != 0) 893 { 894 iAfterPages++; 895 } 896 897 iPageCount = iBeforePages + 1 + iAfterPages; 899 } 900 901 return iPageCount; 902 } 903 904 914 public int[] getRetrieveColumnCodes( 915 ) 916 { 917 return m_arrRetrieveColumnCodes; 918 } 919 920 930 public void setRetrieveColumnCodes( 931 int[] arrRetrieveColumnCodes 932 ) 933 { 934 m_arrRetrieveColumnCodes = arrRetrieveColumnCodes; 935 } 936 937 955 public int[] getSortableColumnCodes( 956 ) 957 { 958 return m_arrSortableColumnCodes; 959 } 960 961 978 public void setSortableColumnCodes( 979 int[] arrSortableColumnCodes 980 ) 981 { 982 m_arrSortableColumnCodes = arrSortableColumnCodes; 983 } 984 985 1001 public int[] getFilterableColumnCodes( 1002 ) 1003 { 1004 return m_arrFilterableColumnCodes; 1005 } 1006 1007 1023 public void setFilterableColumnCodes( 1024 int[] arrFilterableColumnCodes 1025 ) 1026 { 1027 m_arrFilterableColumnCodes = arrFilterableColumnCodes; 1028 } 1029 1030 1033 public int getParentDataType( 1034 ) 1035 { 1036 return m_iParentDataType; 1037 } 1038 1039 1042 public int getParentId( 1043 ) 1044 { 1045 return m_iParentId; 1046 } 1047 1048 1051 public void setParentDataType( 1052 int iParentDataType 1053 ) 1054 { 1055 m_iParentDataType = iParentDataType; 1056 } 1057 1058 1061 public void setParentId( 1062 int iParentId 1063 ) 1064 { 1065 m_iParentId = iParentId; 1066 } 1067 1068 1071 public int getDomainId( 1072 ) 1073 { 1074 return m_iDomainId; 1075 } 1076 1077 1080 public void setDomainId( 1081 int iDomainId 1082 ) 1083 { 1084 m_iDomainId = iDomainId; 1085 } 1086 1087 1091 public SimpleRule getExtraFilter() 1092 { 1093 return m_extraFilter; 1094 } 1095 1096 1099 public boolean getIsKeepSelectedChecked( 1100 ) 1101 { 1102 return m_bKeepSelected; 1103 } 1104 1105 1108 public int getKeepSelected( 1109 ) 1110 { 1111 return m_bKeepSelected ? 1 : 0; 1112 } 1113 1114 1117 public void setKeepSelected( 1118 boolean bKeepSelected 1119 ) 1120 { 1121 m_bKeepSelected = bKeepSelected; 1122 } 1123 1124 1129 public void setExtraFilter( 1130 SimpleRule extraFilter, 1131 int iExtraLogicalOperation 1132 ) 1133 { 1134 assert ((iExtraLogicalOperation == SimpleRule.LOGICAL_AND) 1135 || (iExtraLogicalOperation == SimpleRule.LOGICAL_OR)) 1136 : "Extra condition operand is not valid"; 1137 1138 m_extraFilter = extraFilter; 1139 m_iExtraLogicalOperation = iExtraLogicalOperation; 1140 } 1141 1142 1145 public int getExtraLogicalOperation( 1146 ) 1147 { 1148 return m_iExtraLogicalOperation; 1149 } 1150 1151 1154 public boolean isDistinct() 1155 { 1156 return m_bDistinct; 1157 } 1158 1159 1164 public void setDistinct( 1165 boolean bDistinct 1166 ) 1167 { 1168 m_bDistinct = bDistinct; 1169 } 1170} 1171 | Popular Tags |