us.jts.commander.panel.PermSearchModalPanel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of commander Show documentation
Show all versions of commander Show documentation
Commander is an ANSI RBAC compliant administrative Web UI
package us.jts.commander.panel;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.PageableListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import us.jts.commander.GlobalUtils;
import us.jts.fortress.ReviewMgr;
import us.jts.fortress.rbac.Permission;
/**
*
* @author Shawn McKinney
* @version $Rev$
*/
public class PermSearchModalPanel extends Panel
{
@SpringBean
private ReviewMgr reviewMgr;
private static final Logger LOG = Logger.getLogger(PermSearchModalPanel.class.getName());
private ModalWindow window;
private Permission permSelection;
private String objectSearchVal;
private String opSearchVal;
private boolean isAdmin;
/**
* @param id
*/
public PermSearchModalPanel( String id, ModalWindow window, final boolean isAdmin )
{
super( id );
this.reviewMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
this.isAdmin = isAdmin;
this.window = window;
loadPanel();
}
public void loadPanel()
{
LoadableDetachableModel requests = getListViewModel();
PageableListView ouView = createListView( requests );
add( ouView );
add( new AjaxPagingNavigator( "navigator", ouView ) );
}
private PageableListView createListView( final LoadableDetachableModel requests )
{
final PageableListView listView = new PageableListView( "dataview", requests, 16 )
{
@Override
protected void populateItem( final ListItem item )
{
final Permission modelObject = ( Permission ) item.getModelObject();
item.add( new AjaxLink( "select" )
{
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target)
{
permSelection = modelObject;
window.close( target );
}
} );
item.add( new Label( "objectName", new PropertyModel( item.getModel(), "objectName" ) ) );
item.add( new Label( "objectId", new PropertyModel( item.getModel(), "objectId" ) ) );
item.add( new Label( "opName", new PropertyModel( item.getModel(), "opName" ) ) );
item.add( new Label( "type", new PropertyModel( item.getModel(), "type" ) ) );
item.add( new Label( "admin", new PropertyModel( item.getModel(), "admin" ) ) );
}
};
return listView;
}
private LoadableDetachableModel getListViewModel()
{
final LoadableDetachableModel ret = new LoadableDetachableModel()
{
@Override
protected Object load()
{
List> objects = null;
try
{
permSelection = null;
if(objectSearchVal == null)
objectSearchVal = "";
Permission permission = new Permission( objectSearchVal, "" );
permission.setAdmin( isAdmin );
objects = reviewMgr.findPermissions( permission );
}
catch ( us.jts.fortress.SecurityException se )
{
String error = "getListViewModel caught SecurityException=" + se;
LOG.error( error );
}
return objects;
}
};
return ret;
}
public void setAdmin( boolean admin )
{
isAdmin = admin;
}
public Permission getSelection()
{
return permSelection;
}
public void setSearchVal( String objectSearchVal )
{
this.objectSearchVal = objectSearchVal;
}
}