1 31 32 package org.opencms.setup.xml; 33 34 import org.opencms.configuration.CmsConfigurationManager; 35 import org.opencms.configuration.CmsVfsConfiguration; 36 import org.opencms.configuration.I_CmsXmlConfiguration; 37 import org.opencms.widgets.CmsDisplayWidget; 38 import org.opencms.widgets.CmsGroupWidget; 39 import org.opencms.widgets.CmsMultiSelectWidget; 40 import org.opencms.widgets.CmsUserWidget; 41 42 import java.util.ArrayList ; 43 import java.util.List ; 44 45 import org.dom4j.Document; 46 import org.dom4j.Node; 47 48 57 public class CmsXmlAddXmlContentWidgets extends A_CmsSetupXmlUpdate { 58 59 60 private List m_xpaths; 61 62 65 public String getName() { 66 67 return "Add new Xml Content widgets"; 68 } 69 70 73 public String getXmlFilename() { 74 75 return CmsVfsConfiguration.DEFAULT_XML_FILE_NAME; 76 } 77 78 81 protected boolean executeUpdate(Document document, String xpath) { 82 83 Node node = document.selectSingleNode(xpath); 84 if (node == null) { 85 if (getXPathsToUpdate().contains(xpath)) { 86 if (xpath.indexOf("DisplayWidget") > 0) { 87 CmsSetupXmlHelper.setValue(document, xpath + "/@" + I_CmsXmlConfiguration.A_ALIAS, "DisplayWidget"); 88 CmsSetupXmlHelper.setValue( 89 document, 90 xpath + "/@" + I_CmsXmlConfiguration.A_CLASS, 91 CmsDisplayWidget.class.getName()); 92 } else if (xpath.indexOf("MultiSelectWidget") > 0) { 93 CmsSetupXmlHelper.setValue( 94 document, 95 xpath + "/@" + I_CmsXmlConfiguration.A_ALIAS, 96 "MultiSelectWidget"); 97 CmsSetupXmlHelper.setValue( 98 document, 99 xpath + "/@" + I_CmsXmlConfiguration.A_CLASS, 100 CmsMultiSelectWidget.class.getName()); 101 } else if (xpath.indexOf("UserWidget") > 0) { 102 CmsSetupXmlHelper.setValue(document, xpath + "/@" + I_CmsXmlConfiguration.A_ALIAS, "UserWidget"); 103 CmsSetupXmlHelper.setValue( 104 document, 105 xpath + "/@" + I_CmsXmlConfiguration.A_CLASS, 106 CmsUserWidget.class.getName()); 107 } else if (xpath.indexOf("GroupWidget") > 0) { 108 CmsSetupXmlHelper.setValue(document, xpath + "/@" + I_CmsXmlConfiguration.A_ALIAS, "GroupWidget"); 109 CmsSetupXmlHelper.setValue( 110 document, 111 xpath + "/@" + I_CmsXmlConfiguration.A_CLASS, 112 CmsGroupWidget.class.getName()); 113 } 114 return true; 115 } 116 } 117 return false; 118 } 119 120 123 protected String getCommonPath() { 124 125 StringBuffer xp = new StringBuffer (256); 127 xp.append("/").append(CmsConfigurationManager.N_ROOT); 128 xp.append("/").append(CmsVfsConfiguration.N_VFS); 129 xp.append("/").append(CmsVfsConfiguration.N_XMLCONTENT); 130 xp.append("/").append(CmsVfsConfiguration.N_WIDGETS); 131 return xp.toString(); 132 } 133 134 137 protected List getXPathsToUpdate() { 138 139 if (m_xpaths == null) { 140 StringBuffer xp = new StringBuffer (256); 142 xp.append("/").append(CmsConfigurationManager.N_ROOT); 143 xp.append("/").append(CmsVfsConfiguration.N_VFS); 144 xp.append("/").append(CmsVfsConfiguration.N_XMLCONTENT); 145 xp.append("/").append(CmsVfsConfiguration.N_WIDGETS); 146 xp.append("/").append(CmsVfsConfiguration.N_WIDGET); 147 xp.append("[@").append(I_CmsXmlConfiguration.A_ALIAS); 148 xp.append("='"); 149 m_xpaths = new ArrayList (); 150 m_xpaths.add(xp.toString() + "DisplayWidget']"); 151 m_xpaths.add(xp.toString() + "MultiSelectWidget']"); 152 m_xpaths.add(xp.toString() + "UserWidget']"); 153 m_xpaths.add(xp.toString() + "GroupWidget']"); 154 } 155 return m_xpaths; 156 } 157 158 } | Popular Tags |