diff --git a/config/alfresco/web-client-application-context.xml b/config/alfresco/web-client-application-context.xml
index 1988a00f2c..568fb33106 100644
--- a/config/alfresco/web-client-application-context.xml
+++ b/config/alfresco/web-client-application-context.xml
@@ -25,20 +25,5 @@
-
-
-
-
-
- text/html
- application/pdf
- text/plain
- text/xml
- application/x-shockwave-flash
- image/gif
- image/jpeg
-
-
-
diff --git a/config/alfresco/web-client-config.xml b/config/alfresco/web-client-config.xml
index 7b42609129..2f2c2e4dff 100644
--- a/config/alfresco/web-client-config.xml
+++ b/config/alfresco/web-client-config.xml
@@ -304,6 +304,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/source/java/org/alfresco/web/bean/wizard/BaseActionWizard.java b/source/java/org/alfresco/web/bean/wizard/BaseActionWizard.java
index ad24610bb6..4a87c98508 100644
--- a/source/java/org/alfresco/web/bean/wizard/BaseActionWizard.java
+++ b/source/java/org/alfresco/web/bean/wizard/BaseActionWizard.java
@@ -18,7 +18,6 @@ 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;
@@ -42,6 +41,7 @@ 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,7 +99,6 @@ public abstract class BaseActionWizard extends AbstractWizardBean
protected DictionaryService dictionaryService;
protected MimetypeService mimetypeService;
protected List actions;
- private List transformMimetypes;
protected List transformers;
protected List imageTransformers;
protected List aspects;
@@ -109,16 +108,6 @@ public abstract class BaseActionWizard extends AbstractWizardBean
protected Map currentActionProperties;
protected List objectTypes;
- /**
- * Set the available mimetypes to act as targets of transformations
- *
- * @param mimetypes a list of valid mimetypes
- */
- public void setTransformMimetypes(List mimetypes)
- {
- this.transformMimetypes = mimetypes;
- }
-
/**
* Initialises the wizard
*/
@@ -626,41 +615,61 @@ public abstract class BaseActionWizard extends AbstractWizardBean
*/
public List getTransformers()
{
- if (this.transformers != null)
+ if (this.transformers == null)
{
- 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(10);
-
- Map displaysByMimetype = this.mimetypeService.getDisplaysByMimetype();
- for (String mimetype : this.transformMimetypes)
- {
- // get the display label
- String label = displaysByMimetype.get(mimetype);
- if (label == null)
+ ConfigService svc = (ConfigService)FacesContextUtils.getRequiredWebApplicationContext(
+ FacesContext.getCurrentInstance()).getBean(Application.BEAN_CONFIG_SERVICE);
+ Config wizardCfg = svc.getConfig("Action Wizards");
+ if (wizardCfg != null)
{
- // unrecognized mimetype
- logger.warn("Unrecognized mimetype given to 'transformMimetypes': " + mimetype);
- // just ignore it
- continue;
+ ConfigElement transformersCfg = wizardCfg.getConfigElement("transformers");
+ if (transformersCfg != null)
+ {
+ FacesContext context = FacesContext.getCurrentInstance();
+ Map mimeTypes = this.mimetypeService.getDisplaysByMimetype();
+ this.transformers = new ArrayList();
+ 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");
}
- // 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;
}
diff --git a/source/web/WEB-INF/faces-config.xml b/source/web/WEB-INF/faces-config.xml
index 349441f116..a8d556ce18 100644
--- a/source/web/WEB-INF/faces-config.xml
+++ b/source/web/WEB-INF/faces-config.xml
@@ -488,10 +488,6 @@
rulesBean
#{RulesBean}
-
- transformMimetypes
- #{webClientTransformMimetypes}
-
@@ -529,10 +525,6 @@
mimetypeService
#{MimetypeService}
-
- transformMimetypes
- #{webClientTransformMimetypes}
-