/*
* Copyright (c) 2008 TouK.pl
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package pl.touk.wonderfulsecurity.gwt.client.ui.permission;
import com.extjs.gxt.ui.client.Style;
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.event.GridEvent;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.user.client.rpc.AsyncCallback;
import pl.touk.wonderfulsecurity.core.ClientSecurity;
import pl.touk.wonderfulsecurity.gwt.client.rpc.ISecurityManagerRpcAsync;
import pl.touk.wonderfulsecurity.gwt.client.ui.BasePagedList;
import pl.touk.wonderfulsecurity.gwt.client.ui.StrippedParameters;
import java.util.ArrayList;
import java.util.List;
import pl.touk.wonderfulsecurity.gwt.client.rpc.RpcExecutor;
/**
* @author Szymon Doroz - sdr@touk.pl
*/
public class PermissionPagedList extends BasePagedList {
public PermissionPagedList() {
super(null,"PermissionPagedList");
}
protected void afterGridRowDoubleClicked(GridEvent ge) {
}
protected ColumnModel buildColumnModel() {
List columnConfig = new ArrayList();
columnConfig.add(new ColumnConfig("id", "Id", 80));
columnConfig.add(new ColumnConfig("name", "Nazwa", 180));
columnConfig.add(new ColumnConfig("description", "Opis", 100));
this.setExpandedColumnId("description");
ColumnModel cm = new ColumnModel(columnConfig);
return cm;
}
protected String buildHeading() {
return "Lista wszystkich dostępnych uprawnień";
}
protected RpcProxy constructRpcProxy() {
RpcProxy proxy = new RpcProxy() {
protected void load(Object loadConfig, final AsyncCallback asyncCallback) {
BasePagingLoadConfig plc = ((BasePagingLoadConfig) loadConfig);
StrippedParameters strippedParams = new StrippedParameters(plc);
// TODO: change somuser to interface call
ISecurityManagerRpcAsync securityManagerRpc = ClientSecurity.getAsyncSecurityManager();
RequestBuilder rb = securityManagerRpc.fetchPagedListWithOverallCount("Some user",strippedParams.getProperties(), plc.getOffset(),plc.getLimit()
,plc.getSortInfo().getSortField(), plc.getSortInfo().getSortDir() == Style.SortDir.DESC,
"pl.touk.wonderfulsecurity.beans.WsecPermission", asyncCallback);
RpcExecutor.execute(rb);
}
};
return proxy;
}
}