mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Mimetypes available for transform action in the UI are now defined in an overrideable bean
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2216 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,6 +18,7 @@ package org.alfresco.web.bean.wizard;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -41,7 +42,6 @@ import org.alfresco.repo.action.executer.MoveActionExecuter;
|
||||
import org.alfresco.repo.action.executer.SimpleWorkflowActionExecuter;
|
||||
import org.alfresco.repo.action.executer.SpecialiseTypeActionExecuter;
|
||||
import org.alfresco.repo.action.executer.TransformActionExecuter;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.action.ActionDefinition;
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.service.cmr.dictionary.AspectDefinition;
|
||||
@@ -99,6 +99,7 @@ public abstract class BaseActionWizard extends AbstractWizardBean
|
||||
protected DictionaryService dictionaryService;
|
||||
protected MimetypeService mimetypeService;
|
||||
protected List<SelectItem> actions;
|
||||
private List<String> transformMimetypes;
|
||||
protected List<SelectItem> transformers;
|
||||
protected List<SelectItem> imageTransformers;
|
||||
protected List<SelectItem> aspects;
|
||||
@@ -108,6 +109,16 @@ public abstract class BaseActionWizard extends AbstractWizardBean
|
||||
protected Map<String, Serializable> currentActionProperties;
|
||||
protected List<SelectItem> objectTypes;
|
||||
|
||||
/**
|
||||
* Set the available mimetypes to act as targets of transformations
|
||||
*
|
||||
* @param mimetypes a list of valid mimetypes
|
||||
*/
|
||||
public void setTransformMimetypes(List<String> mimetypes)
|
||||
{
|
||||
this.transformMimetypes = mimetypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialises the wizard
|
||||
*/
|
||||
@@ -615,60 +626,40 @@ public abstract class BaseActionWizard extends AbstractWizardBean
|
||||
*/
|
||||
public List<SelectItem> getTransformers()
|
||||
{
|
||||
if (this.transformers == null)
|
||||
if (this.transformers != null)
|
||||
{
|
||||
ConfigService svc = (ConfigService)FacesContextUtils.getRequiredWebApplicationContext(
|
||||
FacesContext.getCurrentInstance()).getBean(Application.BEAN_CONFIG_SERVICE);
|
||||
Config wizardCfg = svc.getConfig("Action Wizards");
|
||||
if (wizardCfg != null)
|
||||
{
|
||||
ConfigElement transformersCfg = wizardCfg.getConfigElement("transformers");
|
||||
if (transformersCfg != null)
|
||||
{
|
||||
FacesContext context = FacesContext.getCurrentInstance();
|
||||
Map<String, String> mimeTypes = this.mimetypeService.getDisplaysByMimetype();
|
||||
this.transformers = new ArrayList<SelectItem>();
|
||||
for (ConfigElement child : transformersCfg.getChildren())
|
||||
{
|
||||
String id = child.getAttribute("name");
|
||||
|
||||
// look for a client localized string
|
||||
String label = null;
|
||||
String msgId = child.getAttribute("displayLabelId");
|
||||
if (msgId != null)
|
||||
{
|
||||
label = Application.getMessage(context, msgId);
|
||||
}
|
||||
|
||||
// if there wasn't an externalized string look for one in the config
|
||||
if (label == null)
|
||||
{
|
||||
label = child.getAttribute("displayLabel");
|
||||
}
|
||||
|
||||
// if there wasn't a client based label get it from the mime type service
|
||||
if (label == null)
|
||||
{
|
||||
label = mimeTypes.get(id);
|
||||
}
|
||||
|
||||
this.transformers.add(new SelectItem(id, label));
|
||||
}
|
||||
|
||||
// make sure the list is sorted by the label
|
||||
QuickSort sorter = new QuickSort(this.transformers, "label", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||
sorter.sort();
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.warn("Could not find transformers configuration element");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.warn("Could not find Action Wizards configuration section");
|
||||
}
|
||||
return this.transformers;
|
||||
}
|
||||
// check that the mimetypes are available
|
||||
if (this.transformMimetypes == null)
|
||||
{
|
||||
logger.warn("'transformMimetypes' property was not set");
|
||||
this.transformMimetypes = Collections.emptyList();
|
||||
}
|
||||
|
||||
this.transformers = new ArrayList<SelectItem>(10);
|
||||
|
||||
Map<String, String> displaysByMimetype = this.mimetypeService.getDisplaysByMimetype();
|
||||
for (String mimetype : this.transformMimetypes)
|
||||
{
|
||||
// get the display label
|
||||
String label = displaysByMimetype.get(mimetype);
|
||||
if (label == null)
|
||||
{
|
||||
// unrecognized mimetype
|
||||
logger.warn("Unrecognized mimetype given to 'transformMimetypes': " + mimetype);
|
||||
// just ignore it
|
||||
continue;
|
||||
}
|
||||
// create UI object
|
||||
SelectItem item = new SelectItem(mimetype, label);
|
||||
// add to collection
|
||||
this.transformers.add(item);
|
||||
}
|
||||
|
||||
// sort
|
||||
QuickSort sorter = new QuickSort(this.transformers, "label", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||
sorter.sort();
|
||||
|
||||
return this.transformers;
|
||||
}
|
||||
|
@@ -488,6 +488,10 @@
|
||||
<property-name>rulesBean</property-name>
|
||||
<value>#{RulesBean}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>transformMimetypes</property-name>
|
||||
<value>#{webClientTransformMimetypes}</value>
|
||||
</managed-property>
|
||||
</managed-bean>
|
||||
|
||||
<managed-bean>
|
||||
@@ -525,6 +529,10 @@
|
||||
<property-name>mimetypeService</property-name>
|
||||
<value>#{MimetypeService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>transformMimetypes</property-name>
|
||||
<value>#{webClientTransformMimetypes}</value>
|
||||
</managed-property>
|
||||
</managed-bean>
|
||||
|
||||
<managed-bean>
|
||||
|
@@ -57,9 +57,9 @@
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
classpath:alfresco/application-context.xml
|
||||
classpath:alfresco/web-client-application-context.xml
|
||||
classpath:web-services-application-context.xml
|
||||
classpath:alfresco/application-context.xml
|
||||
</param-value>
|
||||
<description>Spring config file locations</description>
|
||||
</context-param>
|
||||
|
Reference in New Issue
Block a user