Skip to content

Commit

Permalink
some improvements for ordering of custom columns
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 10, 2017
1 parent 132accc commit cd9d9ae
Showing 1 changed file with 16 additions and 0 deletions.
Expand Up @@ -168,6 +168,12 @@ public static DashboardWidgetType findWidget(DashboardLayoutType dashboard, Stri
return null;
}

/*
the ordering algorithm is: the first level is occupied by
the column which previousColumn == null || "" || notExistingColumnNameValue.
Each next level contains columns which
previousColumn == columnNameFromPreviousLevel
*/
public static List<GuiObjectColumnType> orderCustomColumns(List<GuiObjectColumnType> customColumns){
if (customColumns == null || customColumns.size() == 0){
return new ArrayList<>();
Expand All @@ -186,6 +192,7 @@ public static List<GuiObjectColumnType> orderCustomColumns(List<GuiObjectColumnT
List<String> temp = new ArrayList<> ();
int index = 0;
while (index < customColumns.size()){
int sortFrom = index;
for (int i = index; i < customColumnsList.size(); i++){
GuiObjectColumnType column = customColumnsList.get(i);
if (previousColumnValues.contains(column.getPreviousColumn()) ||
Expand All @@ -199,6 +206,15 @@ public static List<GuiObjectColumnType> orderCustomColumns(List<GuiObjectColumnT
temp.add(customColumnsList.get(index).getName());
index++;
}
if (index - sortFrom > 1){
Collections.sort(customColumnsList.subList(sortFrom, index - 1), new Comparator<GuiObjectColumnType>() {

@Override
public int compare(GuiObjectColumnType o1, GuiObjectColumnType o2) {
return String.CASE_INSENSITIVE_ORDER.compare(o1.getName(), o2.getName());
}
});
}
previousColumnValues.clear();
previousColumnValues.addAll(temp);
temp.clear();
Expand Down

0 comments on commit cd9d9ae

Please sign in to comment.