Skip to content
Snippets Groups Projects
Commit d7a55ccb authored by srosse's avatar srosse
Browse files

OO-4091: option to open the tree before sorting it

parent b48c59f7
No related branches found
No related tags found
No related merge requests found
......@@ -34,6 +34,7 @@ public class FlexiTableSortOptions {
private SortKey defaultOrderBy;
private boolean fromColumnModel;
private boolean openAllBySort = false;
private List<FlexiTableSort> sorts;
public FlexiTableSortOptions() {
......@@ -60,6 +61,22 @@ public class FlexiTableSortOptions {
return fromColumnModel;
}
/**
* Reopen a tree model before sorting.
*
* @return true if reopen a tree model before sorting
*/
public boolean isOpenAllBySort() {
return openAllBySort;
}
/**
* @param openAllBySort true if you want to open all the model before sorting it
*/
public void setOpenAllBySort(boolean openAllBySort) {
this.openAllBySort = openAllBySort;
}
/**
* @return true if a default order is set
*/
......
......@@ -1034,6 +1034,9 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
}
if(dataModel instanceof SortableFlexiTableDataModel) {
if(dataModel instanceof FlexiTreeTableDataModel && (sortOptions != null && sortOptions.isOpenAllBySort())) {
doOpenAll();
}
((SortableFlexiTableDataModel<?>)dataModel).sort(key);
} else if(dataSource != null) {
currentPage = 0;
......@@ -1056,6 +1059,9 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
orderBy = new SortKey[]{ sortKey };
if(dataModel instanceof SortableFlexiTableDataModel) {
if(dataModel instanceof FlexiTreeTableDataModel && (sortOptions != null && sortOptions.isOpenAllBySort())) {
doOpenAll();
}
((SortableFlexiTableDataModel<?>)dataModel).sort(sortKey);
} else if(dataSource != null) {
currentPage = 0;
......
......@@ -53,6 +53,11 @@ public class TreeNodeFlexiCellRenderer implements FlexiCellRenderer {
public TreeNodeFlexiCellRenderer(String action) {
this.action = action;
}
public TreeNodeFlexiCellRenderer(FlexiCellRenderer labelDelegate) {
this.labelDelegate = labelDelegate;
this.action = null;
}
public boolean isFlatBySearchAndFilter() {
return flatBySearchAndFilter;
......@@ -147,11 +152,15 @@ public class TreeNodeFlexiCellRenderer implements FlexiCellRenderer {
}
target.append("'> </i></a> ");
}
NameValuePair pair = new NameValuePair(action, Integer.toString(row));
String jsCode = FormJSHelper.getXHRFnCallFor(rootForm, id, 1, false, false, pair);
target.append("<a href=\"javascript:").append(jsCode).append(";\">");
labelDelegate.render(renderer, target, cellValue, row, source, ubu, translator);
target.append("</a></div>");
if(action == null) {
labelDelegate.render(renderer, target, cellValue, row, source, ubu, translator);
} else {
NameValuePair pair = new NameValuePair(action, Integer.toString(row));
String jsCode = FormJSHelper.getXHRFnCallFor(rootForm, id, 1, false, false, pair);
target.append("<a href=\"javascript:").append(jsCode).append(";\">");
labelDelegate.render(renderer, target, cellValue, row, source, ubu, translator);
target.append("</a></div>");
}
}
}
\ No newline at end of file
......@@ -277,6 +277,7 @@ public class ForumMessageListController extends FormBasicController {
FlexiTableSortOptions sortOptions = new FlexiTableSortOptions();
sortOptions.setFromColumnModel(false);
sortOptions.setOpenAllBySort(true);
sortOptions.setSorts(sorts);
tableEl.setSortSettings(sortOptions);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment