323 lines
8.0 KiB
Java
323 lines
8.0 KiB
Java
package org.gcube.portlets.admin.authportletmanager.client.pagelayout;
|
|
|
|
import org.gcube.portlets.admin.authportletmanager.client.AuthManagerController;
|
|
import org.gcube.portlets.admin.authportletmanager.client.event.ListPolicyEvent;
|
|
import org.gcube.portlets.admin.authportletmanager.client.widget.BulletList;
|
|
import org.gcube.portlets.admin.authportletmanager.client.widget.ListItem;
|
|
import org.gcube.portlets.admin.authportletmanager.client.widget.Paragraph;
|
|
import org.gcube.portlets.admin.authportletmanager.client.widget.Span;
|
|
import org.gcube.portlets.admin.authportletmanager.shared.Caller.TypeCaller;
|
|
import org.gcube.portlets.widgets.widgettour.client.extendedclasses.GCubeTour;
|
|
|
|
import com.ait.toolkit.hopscotch.client.Placement;
|
|
import com.ait.toolkit.hopscotch.client.TourStep;
|
|
import com.github.gwtbootstrap.client.ui.Button;
|
|
import com.github.gwtbootstrap.client.ui.ButtonGroup;
|
|
import com.github.gwtbootstrap.client.ui.InputAddOn;
|
|
import com.github.gwtbootstrap.client.ui.TextBox;
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.event.dom.client.ClickEvent;
|
|
import com.google.gwt.event.dom.client.ClickHandler;
|
|
import com.google.gwt.event.dom.client.KeyCodes;
|
|
import com.google.gwt.event.dom.client.KeyDownEvent;
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
import com.google.gwt.uibinder.client.UiHandler;
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
import com.google.gwt.user.client.ui.FlowPanel;
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
/**
|
|
* Header Filter for search, add and delete policy
|
|
*
|
|
* @author "Alessandro Pieve " <a
|
|
* href="mailto:alessandro.pieve@isti.cnr.it">alessandro.pieve@isti.cnr.it</a>
|
|
*
|
|
*/
|
|
|
|
public class PolicyFilter extends Composite {
|
|
|
|
private static PolicyFilterUiBinder uiBinder = GWT
|
|
.create(PolicyFilterUiBinder.class);
|
|
|
|
interface PolicyFilterUiBinder extends UiBinder<Widget, PolicyFilter> {
|
|
}
|
|
|
|
|
|
@UiField
|
|
TextBox t_search;
|
|
@UiField
|
|
InputAddOn i_search;
|
|
@UiField
|
|
Button b_search;
|
|
@UiField
|
|
Button b_refresh;
|
|
@UiField
|
|
Button b_add_policy;
|
|
|
|
@UiField
|
|
Button b_delete_policy;
|
|
@UiField
|
|
Button b_group_none;
|
|
@UiField
|
|
Button b_group_user;
|
|
@UiField
|
|
Button b_group_role;
|
|
@UiField
|
|
Button b_group_service;
|
|
|
|
|
|
@UiField
|
|
Button b_search_start;
|
|
|
|
@UiField
|
|
Button b_search_contains;
|
|
|
|
|
|
@UiField
|
|
ButtonGroup b_search_type;
|
|
|
|
@UiField
|
|
FlowPanel string_search;
|
|
|
|
private String typeSearch="start";
|
|
|
|
private BulletList list;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public PolicyFilter() {
|
|
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
initFilter();
|
|
// guideTour();
|
|
|
|
}
|
|
|
|
public void guideTour(){
|
|
GCubeTour tour = new GCubeTour("Tour-auth", "auth-portlet-manager", 1, "Would you like to see again this tour next time ?", "Tour Auth Manager");
|
|
GWT.log("AuthManager - Start Gcube Tour ");
|
|
tour.setShowPrevButton(true);
|
|
|
|
TourStep firstStep = new TourStep(Placement.TOP, "idGridPolicy");
|
|
firstStep.setContent("See your rule policYY");
|
|
firstStep.setTitle("List policy active");
|
|
firstStep.centerXOffset();
|
|
firstStep.centerArrowOffset();
|
|
|
|
TourStep secondStep = new TourStep(Placement.TOP, "idAddPolicy");
|
|
secondStep.setContent("Use this for add a new policy ");
|
|
secondStep.setTitle("Add Policy");
|
|
secondStep.centerXOffset();
|
|
secondStep.centerArrowOffset();
|
|
|
|
TourStep thirdStep = new TourStep(Placement.TOP, "idSearchPolicy");
|
|
thirdStep.setContent("Use this for search an existing policy "
|
|
+ " <br>Use @ for search caller, <br>Use $ for search service, "
|
|
+ "<br>Use * for search access type.");
|
|
thirdStep.setTitle("Search Policy");
|
|
thirdStep.centerXOffset();
|
|
thirdStep.centerArrowOffset();
|
|
|
|
TourStep fourthStep = new TourStep(Placement.TOP, "idGroupPolicy");
|
|
fourthStep.setContent("Use this for filter group policy ");
|
|
fourthStep.setTitle("Filter Policy");
|
|
fourthStep.centerXOffset();
|
|
fourthStep.centerArrowOffset();
|
|
|
|
//tour.addStep(firstStep);
|
|
tour.addStep(secondStep);
|
|
tour.addStep(thirdStep);
|
|
tour.addStep(fourthStep);
|
|
|
|
tour.startTour();
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Init filter
|
|
*/
|
|
public void initFilter(){
|
|
|
|
|
|
list = new BulletList();
|
|
list.setStyleName("input-list-caller");
|
|
list.clear();
|
|
}
|
|
|
|
|
|
@UiHandler("t_search")
|
|
public void onKeyDown(KeyDownEvent event) {
|
|
if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
|
|
searchPolicy();
|
|
}
|
|
}
|
|
@UiHandler("b_search")
|
|
void onClickSearch(ClickEvent e) {
|
|
searchPolicy();
|
|
}
|
|
|
|
@UiHandler("b_search_start")
|
|
void onClickSearchTypeStart(ClickEvent e) {
|
|
typeSearch="start";
|
|
searchPolicy();
|
|
}
|
|
|
|
@UiHandler("b_search_contains")
|
|
void onClickSearchTypeContains(ClickEvent e) {
|
|
typeSearch="contains";
|
|
searchPolicy();
|
|
}
|
|
|
|
@UiHandler("b_group_none")
|
|
void onClickFilterNone(ClickEvent e) {
|
|
filterPolicy("");
|
|
}
|
|
|
|
@UiHandler("b_group_user")
|
|
void onClickFilterUser(ClickEvent e) {
|
|
filterPolicy(TypeCaller.user.toString());
|
|
}
|
|
|
|
@UiHandler("b_group_role")
|
|
void onClickFilterRole(ClickEvent e) {
|
|
filterPolicy(TypeCaller.role.toString());
|
|
}
|
|
|
|
@UiHandler("b_group_service")
|
|
void onClickFilterService(ClickEvent e) {
|
|
filterPolicy(TypeCaller.service.toString());
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@UiHandler("b_add_policy")
|
|
void onClickAddPolicy(ClickEvent e) {
|
|
GWT.log("AuthManager - Open Dialog Insert/Modify Policy");
|
|
PolicyAddDialog popup = new PolicyAddDialog();
|
|
|
|
popup.setAnimationEnabled(true);
|
|
|
|
popup.show();
|
|
|
|
}
|
|
|
|
@UiHandler("b_delete_policy")
|
|
void onClickRemovePolicy(ClickEvent e) {
|
|
GWT.log("AuthManager - Remove Policy");
|
|
if (!PolicyDataGrid.selectedPolicy.isEmpty()){
|
|
PolicyDeleteDialog confirmDeleteDialog = new PolicyDeleteDialog(PolicyDataGrid.selectedPolicy);
|
|
confirmDeleteDialog.show();
|
|
}
|
|
|
|
}
|
|
/**
|
|
*clear filter and reload all policy
|
|
* @param e
|
|
*/
|
|
|
|
@UiHandler("b_refresh")
|
|
void onClickRefresh(ClickEvent e) {
|
|
GWT.log("AuthManager - Refresh List Policy");
|
|
list.clear();
|
|
b_group_none.setFocus(true);
|
|
b_group_none.setActive(true);
|
|
|
|
b_group_user.setFocus(false);
|
|
b_group_user.setActive(false);
|
|
|
|
b_group_role.setFocus(false);
|
|
b_group_role.setActive(false);
|
|
|
|
b_group_service.setFocus(false);
|
|
b_group_service.setActive(false);
|
|
|
|
AuthManagerController.eventBus.fireEvent(new ListPolicyEvent());
|
|
}
|
|
|
|
|
|
|
|
public void searchPolicy(){
|
|
final String search = t_search.getText();
|
|
if (!search.isEmpty()){
|
|
GWT.log("AuthManager - Filter Search:"+search);
|
|
//build a list item
|
|
final ListItem displayItem = new ListItem();
|
|
displayItem.setStyleName("token-input-token-facebook");
|
|
Paragraph p = new Paragraph(search);
|
|
displayItem.addClickHandler(new ClickHandler() {
|
|
public void onClick(ClickEvent clickEvent) {
|
|
displayItem.addStyleName("token-input-selected-token-facebook");
|
|
}
|
|
});
|
|
|
|
Span span = new Span("x");
|
|
span.addClickHandler(new ClickHandler() {
|
|
public void onClick(ClickEvent clickEvent) {
|
|
removeStringSearch(displayItem, list,search);
|
|
}
|
|
});
|
|
//add a new filter into list
|
|
displayItem.add(p);
|
|
displayItem.add(span);
|
|
|
|
//add a filter into new list search
|
|
PolicyDataProvider.get().setAddStringSearch(search);
|
|
if (b_search_contains.isToggled())
|
|
typeSearch="contains";
|
|
else
|
|
typeSearch="start";
|
|
|
|
//refresh a provider for data grid
|
|
PolicyDataProvider.get().refreshlistFromSearch(typeSearch);
|
|
|
|
list.add(displayItem);
|
|
string_search.add(list);
|
|
//init textbox search
|
|
t_search.setText(null);
|
|
}
|
|
else{
|
|
PolicyDataProvider.get().refreshlistFromSearch(typeSearch);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Filter list policy for radio button and reset box search
|
|
* @param typefilter
|
|
*/
|
|
private void filterPolicy(String typefilter) {
|
|
// TODO Auto-generated method stub
|
|
//use filter
|
|
PolicyDataProvider.get().setFilterList(typefilter);
|
|
//reset box search
|
|
PolicyDataProvider.get().removeAllStringSearch();
|
|
list.clear();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Remove a string filter from list and provider
|
|
*
|
|
* @param displayItem
|
|
* @param list
|
|
* @param search
|
|
*/
|
|
public void removeStringSearch(ListItem displayItem, BulletList list,String search){
|
|
list.remove(displayItem);
|
|
PolicyDataProvider.get().removeStringSearch(search);
|
|
PolicyDataProvider.get().refreshlistFromSearch(typeSearch);
|
|
|
|
}
|
|
}
|