mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Moving to root below branch label
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2005 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
327
source/java/org/alfresco/web/bean/RulesBean.java
Normal file
327
source/java/org/alfresco/web/bean/RulesBean.java
Normal file
@@ -0,0 +1,327 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Alfresco, Inc.
|
||||
*
|
||||
* Licensed under the Mozilla Public License version 1.1
|
||||
* with a permitted attribution clause. You may obtain a
|
||||
* copy of the License at
|
||||
*
|
||||
* http://www.alfresco.org/legal/license.txt
|
||||
*
|
||||
* 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 org.alfresco.web.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.faces.event.ActionEvent;
|
||||
|
||||
import org.alfresco.service.cmr.action.Action;
|
||||
import org.alfresco.service.cmr.action.ActionCondition;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.rule.Rule;
|
||||
import org.alfresco.service.cmr.rule.RuleService;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
import org.alfresco.web.ui.common.Utils;
|
||||
import org.alfresco.web.ui.common.component.UIActionLink;
|
||||
import org.alfresco.web.ui.common.component.UIModeList;
|
||||
import org.alfresco.web.ui.common.component.data.UIRichList;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* Backing bean for the manage content rules dialog
|
||||
*
|
||||
* @author gavinc
|
||||
*/
|
||||
public class RulesBean
|
||||
{
|
||||
private static final String MSG_ERROR_DELETE_RULE = "error_delete_rule";
|
||||
private static final String LOCAL = "local";
|
||||
private static final String INHERITED = "inherited";
|
||||
|
||||
private static Log logger = LogFactory.getLog(RulesBean.class);
|
||||
|
||||
private String viewMode = INHERITED;
|
||||
private BrowseBean browseBean;
|
||||
private RuleService ruleService;
|
||||
private List<WrappedRule> rules;
|
||||
private Rule currentRule;
|
||||
private UIRichList richList;
|
||||
|
||||
/**
|
||||
* Returns the current view mode the list of rules is in
|
||||
*
|
||||
* @return The current view mode
|
||||
*/
|
||||
public String getViewMode()
|
||||
{
|
||||
return this.viewMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The space to work against
|
||||
*/
|
||||
public Node getSpace()
|
||||
{
|
||||
return this.browseBean.getActionSpace();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of rules to display
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<WrappedRule> getRules()
|
||||
{
|
||||
boolean includeInherited = true;
|
||||
|
||||
if (this.viewMode.equals(LOCAL))
|
||||
{
|
||||
includeInherited = false;
|
||||
}
|
||||
|
||||
// get the rules from the repository
|
||||
List<Rule> repoRules = this.ruleService.getRules(getSpace().getNodeRef(), includeInherited);
|
||||
this.rules = new ArrayList<WrappedRule>(repoRules.size());
|
||||
|
||||
// wrap them all passing the current space
|
||||
for (Rule rule : repoRules)
|
||||
{
|
||||
WrappedRule wrapped = new WrappedRule(rule, getSpace().getNodeRef());
|
||||
this.rules.add(wrapped);
|
||||
}
|
||||
|
||||
return this.rules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles a rule being clicked ready for an action i.e. edit or delete
|
||||
*
|
||||
* @param event The event representing the click
|
||||
*/
|
||||
public void setupRuleAction(ActionEvent event)
|
||||
{
|
||||
UIActionLink link = (UIActionLink)event.getComponent();
|
||||
Map<String, String> params = link.getParameterMap();
|
||||
String id = params.get("id");
|
||||
if (id != null && id.length() != 0)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Rule clicked, it's id is: " + id);
|
||||
|
||||
this.currentRule = this.ruleService.getRule(
|
||||
getSpace().getNodeRef(), id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current rule
|
||||
*
|
||||
* @return The current rule
|
||||
*/
|
||||
public Rule getCurrentRule()
|
||||
{
|
||||
return this.currentRule;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler called upon the completion of the Delete Rule page
|
||||
*
|
||||
* @return outcome
|
||||
*/
|
||||
public String deleteOK()
|
||||
{
|
||||
String outcome = null;
|
||||
|
||||
if (this.currentRule != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
String ruleTitle = this.currentRule.getTitle();
|
||||
|
||||
this.ruleService.removeRule(getSpace().getNodeRef(),
|
||||
this.currentRule);
|
||||
|
||||
// clear the current rule
|
||||
this.currentRule = null;
|
||||
|
||||
// setting the outcome will show the browse view again
|
||||
outcome = "manageRules";
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Deleted rule '" + ruleTitle + "'");
|
||||
}
|
||||
catch (Throwable err)
|
||||
{
|
||||
Utils.addErrorMessage(Application.getMessage(
|
||||
FacesContext.getCurrentInstance(), MSG_ERROR_DELETE_RULE) + err.getMessage(), err);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.warn("WARNING: deleteOK called without a current Rule!");
|
||||
}
|
||||
|
||||
return outcome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the current view mode based on user selection
|
||||
*
|
||||
* @param event ActionEvent
|
||||
*/
|
||||
public void viewModeChanged(ActionEvent event)
|
||||
{
|
||||
UIModeList viewList = (UIModeList)event.getComponent();
|
||||
this.viewMode = viewList.getValue().toString();
|
||||
|
||||
// force the list to be re-queried when the page is refreshed
|
||||
if (this.richList != null)
|
||||
{
|
||||
this.richList.setValue(null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the UIRichList component being used by this backing bean
|
||||
*
|
||||
* @param richList UIRichList component
|
||||
*/
|
||||
public void setRichList(UIRichList richList)
|
||||
{
|
||||
this.richList = richList;
|
||||
this.richList.setValue(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the UIRichList component being used by this backing bean
|
||||
*
|
||||
* @return UIRichList component
|
||||
*/
|
||||
public UIRichList getRichList()
|
||||
{
|
||||
return this.richList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param browseBean The BrowseBean to set.
|
||||
*/
|
||||
public void setBrowseBean(BrowseBean browseBean)
|
||||
{
|
||||
this.browseBean = browseBean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ruleService Sets the rule service to use
|
||||
*/
|
||||
public void setRuleService(RuleService ruleService)
|
||||
{
|
||||
this.ruleService = ruleService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inner class to wrap the Rule objects so we can expose a flag to indicate whether
|
||||
* the rule is a local or inherited rule
|
||||
*/
|
||||
public class WrappedRule
|
||||
{
|
||||
private Rule rule;
|
||||
private NodeRef ruleNode;
|
||||
|
||||
/**
|
||||
* Constructs a RuleWrapper object
|
||||
*
|
||||
* @param rule The rule we are wrapping
|
||||
* @param ruleNode The node the rules belong to
|
||||
*/
|
||||
public WrappedRule(Rule rule, NodeRef ruleNode)
|
||||
{
|
||||
this.rule = rule;
|
||||
this.ruleNode = ruleNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rule being wrapped
|
||||
*
|
||||
* @return The wrapped Rule
|
||||
*/
|
||||
public Rule getRule()
|
||||
{
|
||||
return this.rule;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the current rule is a local rule or
|
||||
* has been inherited from a parent
|
||||
*
|
||||
* @return true if the rule is defined on the current node
|
||||
*/
|
||||
public boolean getLocal()
|
||||
{
|
||||
return ruleNode.equals(this.rule.getOwningNodeRef());
|
||||
}
|
||||
|
||||
/** Methods to support sorting of the rules list in a table */
|
||||
|
||||
/**
|
||||
* Returns the rule id
|
||||
*
|
||||
* @return The id
|
||||
*/
|
||||
public String getId()
|
||||
{
|
||||
return this.rule.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rule title
|
||||
*
|
||||
* @return The title
|
||||
*/
|
||||
public String getTitle()
|
||||
{
|
||||
return this.rule.getTitle();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rule description
|
||||
*
|
||||
* @return The description
|
||||
*/
|
||||
public String getDescription()
|
||||
{
|
||||
return this.rule.getDescription();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the created date
|
||||
*
|
||||
* @return The created date
|
||||
*/
|
||||
public Date getCreatedDate()
|
||||
{
|
||||
return this.rule.getCreatedDate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the modfified date
|
||||
*
|
||||
* @return The modified date
|
||||
*/
|
||||
public Date getModifiedDate()
|
||||
{
|
||||
return this.rule.getModifiedDate();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user