1 31 32 package org.opencms.workplace.list; 33 34 import java.util.Comparator ; 35 import java.util.Iterator ; 36 import java.util.Locale ; 37 38 54 public class CmsListItemActionIconComparator implements I_CmsListItemComparator { 55 56 59 public CmsListItemActionIconComparator() { 60 61 } 63 64 67 public Comparator getComparator(final String columnId, final Locale locale) { 68 69 return new Comparator () { 70 71 74 public int compare(Object o1, Object o2) { 75 76 CmsListItem li1 = (CmsListItem)o1; 77 CmsListItem li2 = (CmsListItem)o2; 78 CmsListColumnDefinition col = li1.getMetadata().getColumnDefinition(columnId); 79 if (col.getDirectActions().size() > 0) { 80 String i1 = null; 81 String i2 = null; 82 Iterator it = col.getDirectActions().iterator(); 83 while (it.hasNext()) { 84 I_CmsListDirectAction action = (I_CmsListDirectAction)it.next(); 85 CmsListItem tmp = action.getItem(); 86 action.setItem(li1); 87 if (action.isVisible()) { 88 i1 = action.getIconPath(); 89 } 90 action.setItem(li2); 91 if (action.isVisible()) { 92 i2 = action.getIconPath(); 93 } 94 action.setItem(tmp); 95 } 96 if (i1 != null) { 97 if (i2 == null) { 98 return 1; 99 } 100 return i1.compareTo(i2); 101 } else if (i2 != null) { 102 return -1; 103 } 104 return 0; 105 } else { 106 Comparable c1 = (Comparable )((CmsListItem)o1).get(columnId); 107 Comparable c2 = (Comparable )((CmsListItem)o2).get(columnId); 108 if (c1 != null) { 109 if (c2 == null) { 110 return 1; 111 } 112 return c1.compareTo(c2); 113 } else if (c2 != null) { 114 return -1; 115 } 116 return 0; 117 } 118 } 119 }; 120 } 121 } | Popular Tags |