1 10 package org.mmbase.module.gui.html; 11 12 import java.util.*; 13 14 import org.mmbase.util.*; 15 import org.mmbase.module.ParseException; 16 import org.mmbase.module.core.*; 17 import org.mmbase.module.corebuilders.*; 18 19 28 public class FieldSelector implements CommandHandlerInterface { 29 30 StateManager stateMngr; 31 32 35 public FieldSelector(StateManager stateMngr) { 36 this.stateMngr=stateMngr; 37 } 38 39 42 public Vector getList(scanpage sp, StringTagger args, StringTokenizer commands) throws ParseException { 43 String token; 44 String userName=HttpAuth.getRemoteUser(sp); 45 EditState state = stateMngr.getEditState(userName); 46 47 token=commands.nextToken(); 48 if (token.equals("GETEDITFIELDS")) { 49 return getEditFields(state,args); 50 } else if (token.equals("GETPOSRELATIONS")) { 51 return getPosRelations(state,args); 52 } else if (token.equals("GETTYPES")) { 53 return getTypes(state,args); 54 } else if (token.equals("GETRELTYPES")) { 55 return getRelTypes(state,args); 56 } else if (token.equals("GETDATATYPES")) { 57 return getDataTypes(state,args); 58 } else if (token.equals("GETRELDEFS")) { 59 return getRelDefs(state,args); 60 } 61 return null; 62 } 63 64 Vector getRelTypes(EditState ed,StringTagger args) { 65 Vector results=new Vector(); 66 for (Enumeration h=stateMngr.mmBase.getMMObjects();h.hasMoreElements();) { 67 MMObjectBuilder bul=(MMObjectBuilder)h.nextElement(); 68 if (bul instanceof InsRel) { 69 results.addElement(""+bul.getNumber()); 70 results.addElement(bul.getTableName()); 71 results.addElement(bul.description); 72 } 73 } 74 args.setValue("ITEMS","3"); 75 return results; 76 } 77 78 Vector getDataTypes(EditState ed,StringTagger args) { 79 Vector results=new Vector(); 80 for (Enumeration h=stateMngr.mmBase.getMMObjects();h.hasMoreElements();) { 81 MMObjectBuilder bul=(MMObjectBuilder)h.nextElement(); 82 if (!(bul instanceof InsRel)) { 83 results.addElement(""+bul.getNumber()); 84 results.addElement(bul.getTableName()); 85 results.addElement(bul.description); 86 } 87 } 88 args.setValue("ITEMS","3"); 89 return results; 90 } 91 92 Vector getTypes(EditState ed,StringTagger args) { 93 Vector results=new Vector(); 94 Enumeration h=stateMngr.mmBase.getTypeDef().search(""); 95 results=new Vector(); 96 for (;h.hasMoreElements();) { 97 MMObjectNode node=(MMObjectNode)h.nextElement(); 98 results.addElement(""+node.getIntValue("number")); 99 results.addElement(node.getStringValue("name")); 100 } 101 args.setValue("ITEMS","2"); 102 return results; 103 } 104 105 106 Vector getRelDefs(EditState ed,StringTagger args) { 107 Vector results=new Vector(); 108 Enumeration h=stateMngr.mmBase.getRelDef().search(""); 109 results=new Vector(); 110 for (;h.hasMoreElements();) { 111 MMObjectNode node=(MMObjectNode)h.nextElement(); 112 results.addElement(""+node.getIntValue("number")); 113 if (node.getIntValue("dir")==2) { 115 results.addElement(node.getStringValue("sguiname")+"/"+node.getStringValue("dguiname")); 116 } else { 117 results.addElement(node.getStringValue("dguiname")); 118 } 119 } 120 args.setValue("ITEMS","2"); 121 return results; 122 } 123 124 Vector getPosRelations(EditState ed,StringTagger args) { 125 MMObjectBuilder bul=ed.getBuilder(); 126 MMObjectNode node=ed.getEditNode(); 127 int n1=node.getIntValue("snumber"); 128 int n2=node.getIntValue("dnumber"); 129 Vector results=new Vector(); 130 Enumeration h=stateMngr.mmBase.getTypeRel().getAllowedRelations(bul.getNode(n1),bul.getNode(n2)); 131 for (;h.hasMoreElements();) { 132 MMObjectNode n=(MMObjectNode)h.nextElement(); 133 int r=n.getIntValue("rnumber"); 134 results.addElement(""+r); 135 MMObjectNode node2=stateMngr.mmBase.getRelDef().getNode(r); 136 results.addElement(node2.getGUIIndicator()); 137 } 138 args.setValue("ITEMS","2"); 139 return results; 140 } 141 142 149 Vector getEditFields(EditState ed,StringTagger args) { 150 Vector results=new Vector(); 151 String language=ed.getLanguage(); 152 MMObjectBuilder obj=ed.getBuilder(); 153 String key,val; 154 Vector tempresults=obj.getEditFields(); 155 FieldDefs def; 156 for (Enumeration h=tempresults.elements();h.hasMoreElements();) { 157 def=(FieldDefs)h.nextElement(); 158 results.addElement(def.getGUIName(language)); 159 results.addElement(def.getGUIType()); 160 key=def.getDBName(); 161 val=ed.getSearchValue(key); 162 if (val==null) val=""; 163 results.addElement(key); 164 results.addElement(val); 165 } 166 args.setValue("ITEMS","4"); 167 return results; 168 } 169 170 173 public String replace(scanpage sp, StringTokenizer cmds) { 174 return "Command not defined (FieldSelector)"; 175 } 176 177 180 public boolean process(scanpage sp, StringTokenizer command, Hashtable cmds, Hashtable vars) { 181 return false; 182 } 183 184 } 185 | Popular Tags |