/** Define search for case insensitive filtering on ldap name.
*/
@Override
protected DynamicForm getAvailableFilterForm() {
DynamicForm availableFilterForm = new DynamicForm();
{
availableFilterForm.setWidth100();
availableFilterForm.setNumCols(2);
}
int groupPanelWidth = 375;
int groupPanelHeight = 150;
// Structure the display area into two separate display regions
// Available Groups region
final DynamicForm availableGroupDetails = new DynamicForm();
{
availableGroupDetails.setWidth(groupPanelWidth);
availableGroupDetails.setHeight(groupPanelHeight);
availableGroupDetails.setGroupTitle(MSG.common_title_ldapGroupsAvailable());
availableGroupDetails.setIsGroup(true);
availableGroupDetails.setWrapItemTitles(false);
//add itemChanged handler to listen for changes to SearchItem
availableGroupDetails.addItemChangedHandler(new ItemChangedHandler() {
public void onItemChanged(ItemChangedEvent itemChangedEvent) {
latestCriteria = getLatestCriteria(null);
Timer timer = new Timer() {
@Override
public void run() {
if (latestCriteria != null) {
Criteria criteria = latestCriteria;
latestCriteria = null;
populateAvailableGrid(criteria);
}
}
};
timer.schedule(500);
}
});
}
final TextItem resultCountItem = new TextItem("resultCount", MSG.common_title_groupsFound());
{
resultCountItem.setCanEdit(false);
resultCountItem.setWidth("100%");
}
final TextItem pageCountItem = new TextItem("pageCount", MSG.common_title_queryPagesParsed());
{
pageCountItem.setCanEdit(false);
pageCountItem.setWidth("100%");
}
final TextAreaItem adviceItem = new TextAreaItem("advice", MSG.common_title_suggest());
{
adviceItem.setWidth("100%");
adviceItem.setHeight(20);
String feedback = MSG.common_val_none();
adviceItem.setValue(feedback);
adviceItem.setTooltip(feedback);
adviceItem.setDisabled(true);
adviceItem.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
event.cancel();
cursorPosition = adviceItem.getSelectionRange()[0];
}
});
adviceItem.addChangedHandler(new ChangedHandler() {
@Override
public void onChanged(ChangedEvent event) {
adviceItem.setSelectionRange(cursorPosition, cursorPosition);
}
});
}
//Customize Search component
{
searchTextItem.setName(MSG.common_title_search());
searchTextItem.setTitle(MSG.view_admin_roles_filterResultsBelow());
searchTextItem.setWidth("100%");
searchTextItem.setTooltip(MSG.common_msg_typeToFilterResults());
}
final FormItemIcon loadingIcon = new FormItemIcon();
final FormItemIcon successIcon = new FormItemIcon();
final FormItemIcon failIcon = new FormItemIcon();
final FormItemIcon attentionIcon = new FormItemIcon();
String successIconPath = "[SKIN]/actions/ok.png";
String failedIconPath = "[SKIN]/actions/exclamation.png";
String loadingIconPath = "[SKIN]/loading.gif";
String attentionIconPath = "[SKIN]/Dialog/warn.png";
loadingIcon.setSrc(loadingIconPath);
successIcon.setSrc(successIconPath);
failIcon.setSrc(failedIconPath);
attentionIcon.setSrc(attentionIconPath);
final StaticTextItem groupQueryStatus = new StaticTextItem();
{
groupQueryStatus.setName("groupQueryStatus");
groupQueryStatus.setTitle(MSG.common_title_queryProgress());
groupQueryStatus.setDefaultValue(MSG.common_msg_loading());
groupQueryStatus.setIcons(loadingIcon);
}
availableGroupDetails.setItems(resultCountItem, pageCountItem, groupQueryStatus, adviceItem, searchTextItem);
// Ldap Group Settings region
final DynamicForm ldapGroupSettings = new DynamicForm();
{
ldapGroupSettings.setWidth(groupPanelWidth);
ldapGroupSettings.setHeight(groupPanelHeight);
ldapGroupSettings.setGroupTitle(MSG.view_adminRoles_ldapGroupsSettingsReadOnly());
ldapGroupSettings.setIsGroup(true);
ldapGroupSettings.setWrapItemTitles(false);
}
final TextItem groupSearch = new TextItem("groupSearch", MSG.view_admin_systemSettings_LDAPFilter_name());
{
groupSearch.setCanEdit(false);
groupSearch.setWidth("100%");
}
final TextItem groupMember = new TextItem("groupMember", MSG.view_admin_systemSettings_LDAPGroupMember_name());
{
groupMember.setCanEdit(false);
groupMember.setWidth("100%");
}
final CheckboxItem groupQueryPagingItem = new CheckboxItem("groupQueryEnable",
MSG.view_admin_systemSettings_LDAPGroupUsePaging_name());
{
groupQueryPagingItem.setCanEdit(false);
groupQueryPagingItem.setValue(false);
groupQueryPagingItem.setShowLabel(false);
groupQueryPagingItem.setShowTitle(true);
groupQueryPagingItem.setTitleOrientation(TitleOrientation.LEFT);
//You have to set this attribute
groupQueryPagingItem.setAttribute("labelAsTitle", true);
}
final TextItem groupQueryPagingCountItem = new TextItem("groupQueryCount",
MSG.view_adminRoles_ldapQueryPageSize());
{
groupQueryPagingCountItem.setCanEdit(false);
groupQueryPagingCountItem.setWidth("100%");
}
final CheckboxItem groupUsePosixGroupsItem = new CheckboxItem("groupUsePosixGroups",
MSG.view_admin_systemSettings_LDAPGroupUsePosixGroup_name());
{
groupUsePosixGroupsItem.setCanEdit(false);
groupUsePosixGroupsItem.setValue(false);
groupUsePosixGroupsItem.setShowLabel(false);
groupUsePosixGroupsItem.setShowTitle(true);
groupUsePosixGroupsItem.setTitleOrientation(TitleOrientation.LEFT);
//You have to set this attribute
groupUsePosixGroupsItem.setAttribute("labelAsTitle", true);
}
ldapGroupSettings.setItems(groupSearch, groupMember, groupQueryPagingItem, groupQueryPagingCountItem,
groupUsePosixGroupsItem);
// orient both panels next to each other
HLayout panel = new HLayout();
{
panel.addMember(availableGroupDetails);
DynamicForm spacerWrapper = new DynamicForm();
spacerWrapper.setItems(new SpacerItem());
panel.addMember(spacerWrapper);
panel.addMember(ldapGroupSettings);
}
availableFilterForm.addChild(panel);