source: ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/browser/BrowserColumns.as @ 1837

Last change on this file since 1837 was 1837, checked in by twagoo, 12 years ago

Added CommentsCount? column to profile/component browser

File size: 3.5 KB
Line 
1package clarin.cmdi.componentregistry.browser {
2        import clarin.cmdi.componentregistry.common.ItemDescription;
3       
4        import mx.collections.Sort;
5        import mx.collections.SortField;
6        import mx.controls.dataGridClasses.DataGridColumn;
7        import mx.utils.ObjectUtil;
8       
9        public class BrowserColumns {
10                public function BrowserColumns() {
11                }
12               
13                public function getProfileColumns():Array {
14                        var columns:Array = new Array();
15                        columns.push(createColumn("name", "Name"));
16                        columns.push(createColumn("groupName", "Group Name"));
17                        columns.push(createColumn("domainName", "Domain Name"));
18                        columns.push(createColumn("creatorName", "Creator"));
19                        columns.push(createColumn("description", "Description"));
20                        columns.push(createDateColumn());
21                        columns.push(createCommentsColumn());
22                        return columns;
23                }
24               
25                public function getComponentColumns():Array {
26                        var columns:Array = new Array();
27                        columns.push(createColumn("name", "Name"));
28                        columns.push(createColumn("groupName", "Group Name"));
29                        columns.push(createColumn("domainName", "Domain Name"));
30                        columns.push(createColumn("creatorName", "Creator Name"));
31                        columns.push(createColumn("description", "Description"));
32                        columns.push(createDateColumn());
33                        columns.push(createCommentsColumn());
34                        return columns;
35                }
36               
37                private function createColumn(dataField:String, headerText:String):DataGridColumn {
38                        var c:DataGridColumn = new DataGridColumn();
39                        c.dataField = dataField;
40                        c.headerText = headerText;
41                        c.dataTipField = dataField;
42                        c.sortCompareFunction = function(itemA:Object, itemB:Object):int { //Sort all string fields case insensitive
43                                return ObjectUtil.stringCompare(itemA[dataField], itemB[dataField], true);
44                        }
45                        return c;
46                }
47               
48                public static function getInitialSortForProfiles():Sort {
49                        var sort:Sort = new Sort();
50                        var sortByGroup:SortField = new SortField("groupName", true);
51                        var sortByName:SortField = new SortField("name", true);
52                        var sortByDate:SortField = new SortField("registrationDate", true, true);
53                        sortByDate.compareFunction = compareRegistrationDate;
54                        sort.fields = [sortByGroup, sortByName, sortByDate];
55                        return sort
56                }
57               
58                public static function getInitialSortForComponents():Sort {
59                        var sort:Sort = new Sort();
60                        var sortByGroup:SortField = new SortField("groupName", true);
61                        var sortByName:SortField = new SortField("name", true);
62                        var sortByDate:SortField = new SortField("registrationDate", true, true);
63                        sortByDate.compareFunction = compareRegistrationDate;
64                        sort.fields = [sortByGroup, sortByName, sortByDate];
65                        return sort
66                }
67               
68                private function createDateColumn():DataGridColumn {
69                        var c:DataGridColumn = createColumn("registrationDate", "Registration Date");
70                        c.sortCompareFunction = compareRegistrationDate;
71                        return c;
72                }
73               
74                private static function compareRegistrationDate(itemA:Object, itemB:Object):int {
75                        return ObjectUtil.dateCompare(itemA.registrationDateValue, itemB.registrationDateValue);
76                }
77               
78                private function createCommentsColumn():DataGridColumn {
79                        var c:DataGridColumn = createColumn("commentsCount","Comments");
80                        c.width = 75;
81                        c.sortCompareFunction = compareCommentsCount;
82                        return c;
83                }
84               
85                private static function compareCommentsCount(objectA:Object, objectB:Object):int {
86                        //var stringA:String = itemA.toString();
87                        //var stringB:String = itemB.toString();
88                        var itemA:ItemDescription = ItemDescription(objectA);
89                        var itemB:ItemDescription = ItemDescription(objectB);
90                        return ObjectUtil.numericCompare(itemA.commentsCount, itemB.commentsCount);
91                }
92               
93        }
94}
Note: See TracBrowser for help on using the repository browser.