org.web4thejob.web.panel.DefaultCommandsAuthorizationPanel Maven / Gradle / Ivy
/*
* Copyright (c) 2012-2013 Veniamin Isaias.
*
* This file is part of web4thejob.
*
* Web4thejob is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or any later version.
*
* Web4thejob is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with web4thejob. If not, see .
*/
package org.web4thejob.web.panel;
import org.springframework.context.annotation.Scope;
import org.web4thejob.command.Command;
import org.web4thejob.command.CommandEnum;
import org.web4thejob.command.Subcommand;
import org.web4thejob.context.ContextUtil;
import org.web4thejob.security.SecuredResource;
import org.web4thejob.util.CoreUtil;
import org.web4thejob.web.panel.base.AbstractSecuredResourceAuthorizationPanel;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author Veniamin Isaias
* @since 1.0.0
*/
@org.springframework.stereotype.Component
@Scope("prototype")
public class DefaultCommandsAuthorizationPanel extends AbstractSecuredResourceAuthorizationPanel implements CommandsAuthorizationPanel, ListitemRenderer {
// --------------------------- CONSTRUCTORS ---------------------------
public DefaultCommandsAuthorizationPanel() {
this(false);
}
public DefaultCommandsAuthorizationPanel(boolean readOnly) {
super(readOnly);
}
@Override
protected String getRootElementName() {
return CommandsAuthorizationPanel.ROOT_ELEMENT;
}
// -------------------------- OTHER METHODS --------------------------
@Override
protected List getSourceList() {
List commands = new ArrayList();
for (CommandEnum id : CommandEnum.values()) {
Command command = ContextUtil.getDefaultCommand(id, null);
if (command != null) {
commands.add(command);
}
for (CommandEnum subid : id.getSubcommands()) {
Subcommand subcommand = ContextUtil.getSubcommand(subid, command);
if (subcommand != null) {
commands.add(subcommand);
}
}
}
Collections.sort(commands, new Comparator() {
@Override
public int compare(Command o1, Command o2) {
return o1.toString().compareToIgnoreCase(o2.toString());
}
});
return commands;
}
@Override
protected ListitemRenderer extends SecuredResource> getRenderer() {
return this;
}
@Override
public void render(Listitem item, Command data, int index) throws Exception {
item.setImage(CoreUtil.getCommandImage(data.getId(), Command.DEFAULT_COMMAND_IMAGE));
item.setLabel(data.toString());
item.setValue(data);
item.setStyle("white-space:nowrap;");
}
}