AbstractDemandActionGroupBuilder.java
/*
* Copyright (c) 2002-2017, Mairie de Paris
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright notice
* and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice
* and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* License 1.0
*/
package fr.paris.lutece.plugins.gru.web.actions.groups.builders.impl;
import fr.paris.lutece.plugins.gru.web.Constants;
import fr.paris.lutece.plugins.gru.web.actions.groups.builders.AbstractActionGroupBuilder;
import fr.paris.lutece.plugins.grubusiness.business.demand.Demand;
import fr.paris.lutece.portal.service.util.AppPropertiesService;
import java.util.List;
/**
* AbstractDemandActionGroupBuilder
*/
public abstract class AbstractDemandActionGroupBuilder extends AbstractActionGroupBuilder
{
protected static final String PROPERTY_COLOR_DEFAULT = "gru.color.default";
protected static final String PROPERTY_COLOR_PRIMARY = "gru.color.primary";
protected static final String PROPERTY_COLOR_DANGER = "gru.color.danger";
protected static final String COLOR_DEFAULT = AppPropertiesService.getProperty( PROPERTY_COLOR_DEFAULT, "default" );
protected static final String COLOR_PRIMARY = AppPropertiesService.getProperty( PROPERTY_COLOR_PRIMARY, "blue" );
protected static final String COLOR_DANGER = AppPropertiesService.getProperty( PROPERTY_COLOR_DANGER, "red" );
private static final String BOOKMARK_ID = "{id}";
private static final String BOOKMARK_TYPE = "{type}";
private String _strDemandManagementUrl;
private List<String> _listExcludedTypes;
private List<String> _listIncludedTypes;
/**
* Define the management url of the demand
*
* @param strUrl
* The url
*/
public void setDemandManagementUrl( String strUrl )
{
_strDemandManagementUrl = strUrl;
}
/**
* Gets the management url of the demand
*
* @return strUrl The url
*/
protected String getDemandManagementUrl( )
{
return _strDemandManagementUrl;
}
/**
* Build the management link for a given demand
*
* @param strDemandId
* The demand
* @param strDemandTypeId
* The demand type ID
* @param strCustomerId
* The customer ID
* @return The RUL of the link
*/
protected String buildDemandManagementLink( String strDemandId, String strDemandTypeId, String strCustomerId )
{
String strUrl = _strDemandManagementUrl.replace( BOOKMARK_ID, strDemandId );
strUrl = strUrl.replace( BOOKMARK_TYPE, strDemandTypeId );
return new StringBuilder( strUrl ).append( '&' ).append( Constants.PARAMETER_ID_CUSTOMER ).append( '=' ).append( strCustomerId ).toString( );
}
/**
* Define excluded types list
*
* @param listExcludedTypes
* The list
*/
public void setExcludedTypesList( List<String> listExcludedTypes )
{
_listExcludedTypes = listExcludedTypes;
}
/**
* Gets the excluded types list
*
* @return The list
*/
protected List<String> getExcludedTypesList( )
{
return _listExcludedTypes;
}
/**
* Define excluded types list
*
* @param listIncludedTypes
* The list
*/
public void setIncludedTypesList( List<String> listIncludedTypes )
{
_listIncludedTypes = listIncludedTypes;
}
/**
* Gets the excluded types list
*
* @return The list
*/
protected List<String> getIncludedTypesList( )
{
return _listIncludedTypes;
}
/**
* Process the badge color
*
* @param demand
* The Demand
* @param strCurrentBadgeColor
* The current badge color
* @param strActiveBadgeColor
* The active badge color
* @return the badge color
*/
protected String processGroupBadgeColor( Demand demand, String strCurrentBadgeColor, String strActiveBadgeColor )
{
String strBadgeColor = strCurrentBadgeColor;
if ( strCurrentBadgeColor == null )
{
strBadgeColor = COLOR_DEFAULT;
}
if ( demand.getStatusId( ) != Demand.STATUS_CLOSED )
{
strBadgeColor = strActiveBadgeColor;
}
return strBadgeColor;
}
/**
* Process the item color
*
* @param demand
* The Demand
* @param strActiveColor
* The active item color
* @return the item color
*/
protected String processItemColor( Demand demand, String strActiveColor )
{
return ( demand.getStatusId( ) == Demand.STATUS_CLOSED ) ? COLOR_DEFAULT : strActiveColor;
}
}