Skip to content

Commit

Permalink
Add combo field with options taken from sysconfig
Browse files Browse the repository at this point in the history
  • Loading branch information
sprevilla committed Sep 3, 2019
1 parent f5a9f74 commit 007f6b4
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
42 changes: 42 additions & 0 deletions modules/qi-core/src/main/java/org/jpos/qi/QIHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,48 @@ public DataProvider getDataProvider() {
return dataProvider;
}

public DataProvider getSysConfigsDataProvider (String prefix) {
Map<String,Boolean> orders = new HashMap<>();
return DataProvider.fromCallbacks(
(CallbackDataProvider.FetchCallback) query -> {
int offset = query.getOffset();
int limit = query.getLimit();
Iterator it = query.getSortOrders().iterator();
while (it.hasNext()) {
QuerySortOrder order = (QuerySortOrder) it.next();
orders.put(order.getSorted(),order.getDirection() == SortDirection.DESCENDING);
}
try {
return getSysConfigs(offset,limit,orders, prefix);
} catch (Exception e) {
getApp().getLog().error(e);
return null;
}
},
(CallbackDataProvider.CountCallback<SysConfig, Void>) query -> {
try {
return getSysConfigsCount(prefix);
} catch (Exception e) {
getApp().getLog().error(e);
return 0;
}
});
}

private Stream getSysConfigs (int offset,int limit,Map<String,Boolean> orders, String prefix) throws Exception {
return ((List) DB.exec(db -> {
SysConfigManager mgr = new SysConfigManager(db, prefix);
return mgr.getAll(offset,limit,orders);
})).stream();
}

private int getSysConfigsCount (String prefix) throws Exception {
return DB.exec(db -> {
SysConfigManager mgr = new SysConfigManager(db, prefix);
return mgr.getItemCount();
});
}

public abstract Stream getAll(int offset, int limit, Map<String,Boolean> orders) throws Exception;

public abstract int getItemCount() throws Exception;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.jpos.qi.sysconfig;

import com.vaadin.data.provider.DataProvider;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.ItemCaptionGenerator;
import org.jpos.ee.SysConfig;

public class SysConfigComboBox extends ComboBox {
public SysConfigComboBox (String caption, DataProvider dataProvider) {
super(caption);
setDataProvider(dataProvider);
setItemCaptionGenerator((ItemCaptionGenerator<SysConfig>) SysConfig::getValue);
setEmptySelectionAllowed(false);
}
}

0 comments on commit 007f6b4

Please # to comment.