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
010 import java.util.ArrayList;
011 import java.util.Collections;
012 import java.util.Comparator;
013 import java.util.List;
014
015 public class ListPageLinkList
016 {
017 @Inject
018 private DescriptorService descriptorService;
019
020 @Property
021 private TynamoClassDescriptor descriptorIterator;
022
023 @Inject
024 private Messages messages;
025
026 public List<TynamoClassDescriptor> getAllDescriptors()
027 {
028 List<TynamoClassDescriptor> descriptors = descriptorService.getAllDescriptors();
029
030 List<TynamoClassDescriptor> result = new ArrayList<TynamoClassDescriptor>(descriptors.size());
031
032 for (TynamoClassDescriptor descriptor : descriptors)
033 {
034 if (!descriptor.isHidden())
035 {
036 result.add(descriptor);
037 }
038 }
039
040 Collections.sort(result, new Comparator<TynamoClassDescriptor>()
041 {
042 public int compare(TynamoClassDescriptor o1, TynamoClassDescriptor o2)
043 {
044 return DisplayNameUtils.getDisplayName(o1, messages).compareTo(DisplayNameUtils.getDisplayName(o2, messages));
045 }
046 });
047
048 return result;
049 }
050
051 public String getListAllLinkMessage()
052 {
053 return messages.format("org.tynamo.component.listalllink", DisplayNameUtils.getPluralDisplayName(descriptorIterator, messages));
054 }
055
056 }