001 package org.tynamo.components;
002
003 import org.apache.tapestry5.annotations.Property;
004 import org.apache.tapestry5.ioc.Messages;
005 import org.apache.tapestry5.ioc.annotations.Inject;
006 import org.tynamo.descriptor.TynamoClassDescriptor;
007 import org.tynamo.services.DescriptorService;
008 import org.tynamo.util.DisplayNameUtils;
009 import org.tynamo.util.Utils;
010
011 import java.util.ArrayList;
012 import java.util.Collections;
013 import java.util.Comparator;
014 import java.util.List;
015
016 public class ListPageLinkList
017 {
018 @Inject
019 private DescriptorService descriptorService;
020
021 @Property
022 private TynamoClassDescriptor descriptorIterator;
023
024 @Inject
025 private Messages messages;
026
027 public List<TynamoClassDescriptor> getAllDescriptors()
028 {
029 List<TynamoClassDescriptor> descriptors = descriptorService.getAllDescriptors();
030
031 List<TynamoClassDescriptor> result = new ArrayList<TynamoClassDescriptor>(descriptors.size());
032
033 for (TynamoClassDescriptor descriptor : descriptors)
034 {
035 if (!descriptor.isNonVisual())
036 {
037 result.add(descriptor);
038 }
039 }
040
041 Collections.sort(result, new Comparator<TynamoClassDescriptor>()
042 {
043 public int compare(TynamoClassDescriptor o1, TynamoClassDescriptor o2)
044 {
045 return DisplayNameUtils.getDisplayName(o1, messages).compareTo(DisplayNameUtils.getDisplayName(o2, messages));
046 }
047 });
048
049 return result;
050 }
051
052 public String getListAllLinkMessage()
053 {
054 return messages.format(Utils.LISTALL_LINK_MESSAGE,
055 DisplayNameUtils.getPluralDisplayName(descriptorIterator, messages));
056 }
057
058 }