use of org.activityinfo.shared.report.model.DimensionType in project activityinfo by bedatadriven.
the class FilterAdapter method marshal.
@Override
public FilterElement marshal(Filter filter) throws Exception {
FilterElement element = new FilterElement();
element.dateRange = filter.getDateRange();
for (DimensionType t : filter.getRestrictedDimensions()) {
Restriction r = new Restriction();
r.dimension = t.toString().toLowerCase();
for (Integer id : filter.getRestrictions(t)) {
r.categories.add(id.toString());
}
element.restrictions.add(r);
}
return element;
}
use of org.activityinfo.shared.report.model.DimensionType in project activityinfo by bedatadriven.
the class DataEntryPlaceParser method updateFilter.
private void updateFilter(DataEntryPlace place, String[] qualifierParts) {
DimensionType type = DimensionType.valueOf(qualifierParts[0]);
Set<Integer> ids = Sets.newHashSet();
for (int i = 1; i < qualifierParts.length; ++i) {
ids.add(Integer.parseInt(qualifierParts[i]));
}
place.getFilter().addRestriction(type, ids);
}
use of org.activityinfo.shared.report.model.DimensionType in project activityinfo by bedatadriven.
the class DataEntryPlaceParser method appendFilter.
private static void appendFilter(StringBuilder fragment, Filter filter) {
for (DimensionType dimType : filter.getRestrictedDimensions()) {
if (fragment.length() > 0) {
fragment.append("-");
}
fragment.append(dimType.name());
Set<Integer> ids = filter.getRestrictions(dimType);
for (Integer id : ids) {
fragment.append("+").append(id);
}
}
}
use of org.activityinfo.shared.report.model.DimensionType in project activityinfo by bedatadriven.
the class SearchPresenter method onSearch.
@Override
public void onSearch(SearchEvent searchEvent) {
if (!Strings.isNullOrEmpty(searchEvent.getQuery())) {
view.setSearchQuery(searchEvent.getQuery());
view.getLoadingMonitor().beforeRequest();
service.execute(new Search(searchEvent.getQuery()), view.getLoadingMonitor(), new AsyncCallback<SearchResult>() {
@Override
public void onFailure(Throwable caught) {
// TODO handle failure
view.getLoadingMonitor().onServerError();
}
@Override
public void onSuccess(SearchResult result) {
view.setSearchResults(result.getPivotTabelData());
Filter filter = result.getPivotTabelData() == null ? null : result.getPivotTabelData().getEffectiveFilter();
view.setFilter(createFilter(filter, result.getPivotTabelData()));
view.getLoadingMonitor().onCompleted();
view.setSitePoints(SitePointList.fromSitesList(result.getRecentAdditions()));
view.setSites(fromSitesList(result.getRecentAdditions()));
}
private Map<DimensionType, List<SearchResultEntity>> createFilter(Filter effectiveFilter, PivotContent pivotContent) {
Map<DimensionType, List<SearchResultEntity>> newFilter = new HashMap<DimensionType, List<SearchResultEntity>>();
if (effectiveFilter != null) {
for (DimensionType type : effectiveFilter.getRestrictedDimensions()) {
List<SearchResultEntity> entities = new ArrayList<SearchResultEntity>();
for (Integer entityId : effectiveFilter.getRestrictions(type)) {
String name = getName(entityId, type, pivotContent);
String link = GWT.getHostPageBaseURL() + "#search/" + type.toString() + ":" + name;
SearchResultEntity entity = new SearchResultEntity(entityId, name, link, type);
entities.add(entity);
}
newFilter.put(type, entities);
}
}
return newFilter;
}
private String getName(Integer entityId, DimensionType type, PivotContent pivotTable) {
for (FilterDescription fd : pivotTable.getFilterDescriptions()) {
if (fd.getDimensionType() == type) {
return fd.getLabels().get(entityId);
}
}
return "noName";
}
});
}
}
use of org.activityinfo.shared.report.model.DimensionType in project activityinfo by bedatadriven.
the class ReportGenerator method generateReport.
private void generateReport(User user, Report report, Filter inheritedFilter, DateRange dateRange) {
GeneratorUtils.resolveElementFilter(report, dateRange);
Filter effectiveFilter = GeneratorUtils.resolveEffectiveFilter(report, inheritedFilter, dateRange);
for (ReportElement element : report.getElements()) {
generateElement(user, element, effectiveFilter, dateRange);
}
ReportContent content = new ReportContent();
content.setFileName(generateFileName(report, dateRange, user));
content.setFilterDescriptions(generateFilterDescriptions(effectiveFilter, Collections.<DimensionType>emptySet(), user));
report.setContent(content);
}
Aggregations