| 1 24 package org.riotfamily.riot.editor; 25 26 import java.util.HashMap ; 27 import java.util.Map ; 28 29 import org.apache.commons.logging.Log; 30 import org.apache.commons.logging.LogFactory; 31 import org.riotfamily.common.i18n.AdvancedMessageCodesResolver; 32 import org.riotfamily.common.xml.ConfigurationEventListener; 33 import org.riotfamily.forms.factory.FormRepository; 34 import org.riotfamily.riot.list.ListRepository; 35 import org.riotfamily.riot.runtime.RiotRuntime; 36 import org.riotfamily.riot.runtime.RiotRuntimeAware; 37 import org.springframework.util.Assert; 38 39 42 public class EditorRepository implements RiotRuntimeAware { 43 44 private static Log log = LogFactory.getLog(EditorRepository.class); 45 46 private Map editorDefinitions = new HashMap (); 47 48 private GroupDefinition rootGroupDefinition; 49 50 private ListRepository listRepository; 51 52 private FormRepository formRepository; 53 54 private AdvancedMessageCodesResolver messageCodesResolver; 55 56 private String riotServletPrefix; 57 58 public String getRiotServletPrefix() { 59 return riotServletPrefix; 60 } 61 62 public void setRiotRuntime(RiotRuntime runtime) { 63 riotServletPrefix = runtime.getServletPrefix(); 64 } 65 66 public GroupDefinition getRootGroupDefinition() { 67 return this.rootGroupDefinition; 68 } 69 70 public void setRootGroupDefinition(GroupDefinition rootGroupDefinition) { 71 this.rootGroupDefinition = rootGroupDefinition; 72 } 73 74 protected Map getEditorDefinitions() { 75 return this.editorDefinitions; 76 } 77 78 public void addEditorDefinition(EditorDefinition editorDefinition) { 79 String id = editorDefinition.getId(); 80 Assert.notNull(id, "Editor must have an id."); 81 EditorDefinition existingEditor = getEditorDefinition(id); 82 if (existingEditor != null) { 83 log.info("Overwriting editor " + id); 84 if (existingEditor.getParentEditorDefinition() instanceof GroupDefinition) { 85 GroupDefinition oldGroup = (GroupDefinition) existingEditor.getParentEditorDefinition(); 86 oldGroup.getEditorDefinitions().remove(existingEditor); 87 } 88 } 89 editorDefinitions.put(id, editorDefinition); 90 } 91 92 public EditorDefinition getEditorDefinition(String editorId) { 93 if (editorId == null) { 94 return rootGroupDefinition; 95 } 96 return (EditorDefinition) editorDefinitions.get(editorId); 97 } 98 99 public ListDefinition getListDefinition(String editorId) { 100 return (ListDefinition) getEditorDefinition(editorId); 101 } 102 103 public FormDefinition getFormDefinition(String editorId) { 104 return (FormDefinition) getEditorDefinition(editorId); 105 } 106 107 public GroupDefinition getGroupDefinition(String editorId) { 108 return (GroupDefinition) getEditorDefinition(editorId); 109 } 110 111 public ListRepository getListRepository() { 112 return listRepository; 113 } 114 115 public void setListRepository(ListRepository listRepository) { 116 this.listRepository = listRepository; 117 } 118 119 public FormRepository getFormRepository() { 120 return this.formRepository; 121 } 122 123 public void setFormRepository(FormRepository formRepository) { 124 this.formRepository = formRepository; 125 } 126 127 public AdvancedMessageCodesResolver getMessageCodesResolver() { 128 return this.messageCodesResolver; 129 } 130 131 public void setMessageCodesResolver(AdvancedMessageCodesResolver messageKeyResolver) { 132 this.messageCodesResolver = messageKeyResolver; 133 } 134 135 141 public void addListener(ConfigurationEventListener listener) { 142 } 143 144 } 145 | Popular Tags |