?? editentity.jsp
字號:
<%@page contentType="text/html"%>
<%--
* Copyright (c) 2001 The Open For Business Project and respected authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
* OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @author Andy Zeneski (jaz@ofbiz.org)
* @author David E. Jones (jonesde@ofbiz.org)
* @version 1.0
--%>
<%@ page import="java.util.*" %>
<%@ page import="org.ofbiz.base.util.*, org.ofbiz.base.config.*" %>
<%@ page import="org.ofbiz.entity.*" %>
<%@ page import="org.ofbiz.entity.model.*" %>
<%@ page import="org.ofbiz.entity.util.*" %>
<%@ taglib uri="ofbizTags" prefix="ofbiz" %>
<jsp:useBean id="security" type="org.ofbiz.security.Security" scope="request" />
<jsp:useBean id="delegator" type="org.ofbiz.entity.GenericDelegator" scope="request" />
<%
if (security.hasPermission("ENTITY_MAINT", session)) {
String entityName = request.getParameter("entityName");
ModelReader reader = delegator.getModelReader();
String event = request.getParameter("event");
ModelEntity entity = null;
if (UtilValidate.isNotEmpty(entityName) && !"addEntity".equals(event)) entity = reader.getModelEntity(entityName);
ModelViewEntity modelViewEntity = null;
if (entity instanceof ModelViewEntity) modelViewEntity = (ModelViewEntity)entity;
TreeSet entSet = new TreeSet(reader.getEntityNames());
String errorMsg = "";
ResourceHandler entityResourceHandler = delegator.getModelReader().getEntityResourceHandler(entityName);
if ("addEntity".equals(event)) {
if (entity == null) {
entity = new ModelEntity();
entity.setEntityName(request.getParameter("entityName"));
entity.setTableName(ModelUtil.javaNameToDbName(entity.getEntityName()));
reader.getEntityCache().put(entity.getEntityName(), entity);
entityName = entity.getEntityName();
String entityGroup = request.getParameter("entityGroup");
delegator.getModelGroupReader().getGroupCache().put(entityName, entityGroup);
}
} else if ("updateEntity".equals(event)) {
entity.setTableName(request.getParameter("tableName"));
entity.setPackageName(request.getParameter("packageName"));
entity.setDependentOn(request.getParameter("dependentOn"));
entity.setTitle(request.getParameter("title"));
entity.setDescription(request.getParameter("description"));
entity.setCopyright(request.getParameter("copyright"));
entity.setAuthor(request.getParameter("author"));
entity.setVersion(request.getParameter("version"));
String entityGroup = request.getParameter("entityGroup");
delegator.getModelGroupReader().getGroupCache().put(entityName, entityGroup);
delegator.getModelReader().addEntityToResourceHandler(entityName, request.getParameter("loaderName"), request.getParameter("location"));
delegator.getModelReader().rebuildResourceHandlerEntities();
} else if ("removeField".equals(event)) {
String fieldName = request.getParameter("fieldName");
entity.removeField(fieldName);
} else if ("updateField".equals(event)) {
String fieldName = request.getParameter("fieldName");
String fieldType = request.getParameter("fieldType");
String primaryKey = request.getParameter("primaryKey");
ModelField field = entity.getField(fieldName);
field.setType(fieldType);
if (primaryKey != null) field.setIsPk(true);
else field.setIsPk(false);
entity.updatePkLists();
} else if ("addField".equals(event)) {
ModelField field = new ModelField();
field.setName(request.getParameter("name"));
field.setColName(ModelUtil.javaNameToDbName(field.getName()));
field.setType(request.getParameter("fieldType"));
entity.addField(field);
} else if ("addRelation".equals(event)) {
String relEntityName = request.getParameter("relEntityName");
String type = request.getParameter("type");
String title = request.getParameter("title");
String fkName = request.getParameter("fkName");
ModelRelation relation = new ModelRelation();
ModelEntity relEntity = reader.getModelEntity(relEntityName);
if (relEntity == null) {
errorMsg = errorMsg + "<li> Related Entity \"" + relEntityName + "\" not found, not adding.";
} else {
relation.setRelEntityName(relEntityName);
relation.setType(type);
relation.setTitle(title);
relation.setFkName(fkName);
relation.setMainEntity(entity);
entity.addRelation(relation);
if ("one".equals(type) || "one-nofk".equals(type)) {
for (int pk = 0; pk < relEntity.getPksSize(); pk++) {
ModelField pkf = relEntity.getPk(pk);
ModelKeyMap keyMap = new ModelKeyMap();
keyMap.setFieldName(pkf.getName());
keyMap.setRelFieldName(pkf.getName());
relation.addKeyMap(keyMap);
}
}
}
} else if ("updateRelation".equals(event)) {
int relNum = Integer.parseInt(request.getParameter("relNum"));
String type = request.getParameter("type");
String title = request.getParameter("title");
String fkName = request.getParameter("fkName");
ModelRelation relation = entity.getRelation(relNum);
relation.setType(type);
relation.setTitle(title);
relation.setFkName(fkName);
} else if ("removeRelation".equals(event)) {
int relNum = Integer.parseInt(request.getParameter("relNum"));
if (relNum < entity.getRelationsSize() && relNum >= 0) entity.removeRelation(relNum);
else errorMsg = errorMsg + "<li> Relation number " + relNum + " is out of bounds.";
} else if ("updateKeyMap".equals(event)) {
int relNum = Integer.parseInt(request.getParameter("relNum"));
int kmNum = Integer.parseInt(request.getParameter("kmNum"));
String fieldName = request.getParameter("fieldName");
String relFieldName = request.getParameter("relFieldName");
ModelRelation relation = entity.getRelation(relNum);
ModelEntity relEntity = reader.getModelEntity(relation.getRelEntityName());
ModelKeyMap keyMap = relation.getKeyMap(kmNum);
ModelField field = entity.getField(fieldName);
ModelField relField = relEntity.getField(relFieldName);
keyMap.setFieldName(field.getName());
keyMap.setRelFieldName(relField.getName());
} else if ("removeKeyMap".equals(event)) {
int relNum = Integer.parseInt(request.getParameter("relNum"));
int kmNum = Integer.parseInt(request.getParameter("kmNum"));
ModelRelation relation = entity.getRelation(relNum);
relation.removeKeyMap(kmNum);
} else if ("addKeyMap".equals(event)) {
int relNum = Integer.parseInt(request.getParameter("relNum"));
ModelRelation relation = entity.getRelation(relNum);
ModelKeyMap keyMap = new ModelKeyMap();
relation.addKeyMap(keyMap);
} else if ("addReverse".equals(event)) {
int relNum = Integer.parseInt(request.getParameter("relNum"));
ModelRelation relation = entity.getRelation(relNum);
ModelEntity relatedEnt = reader.getModelEntity(relation.getRelEntityName());
if (relatedEnt != null) {
if (relatedEnt.getRelation(relation.getTitle() + entity.getEntityName()) == null) {
ModelRelation newRel = new ModelRelation();
relatedEnt.addRelation(newRel);
newRel.setRelEntityName(entity.getEntityName());
newRel.setTitle(relation.getTitle());
if ("one".equals(relation.getType()) || "one-nofk".equals(relation.getType())) newRel.setType("many");
else newRel.setType("one");
for (int kmn = 0; kmn < relation.getKeyMapsSize(); kmn++) {
ModelKeyMap curkm = relation.getKeyMap(kmn);
ModelKeyMap newkm = new ModelKeyMap();
newRel.addKeyMap(newkm);
newkm.setFieldName(curkm.getRelFieldName());
newkm.setRelFieldName(curkm.getFieldName());
}
newRel.setMainEntity(relatedEnt);
} else {
errorMsg = errorMsg + "<li> Related entity already has a relation with name " + relation.getTitle() + entity.getEntityName() + ", no reverse relation added.";
}
} else {
errorMsg = errorMsg + "<li> Could not find related entity " + relation.getRelEntityName() + ", no reverse relation added.";
}
} else if ("addMemberEntity".equals(event)) {
String alias = request.getParameter("alias");
String aliasedEntityName = request.getParameter("aliasedEntityName");
if (UtilValidate.isEmpty(alias) || UtilValidate.isEmpty(alias)) {
errorMsg = errorMsg + "<li> You must specify an Entity Alias and an Entity Name for addMemberEntity.";
}
if (modelViewEntity != null) {
ModelViewEntity.ModelMemberEntity modelMemberEntity = new ModelViewEntity.ModelMemberEntity(alias, aliasedEntityName);
modelViewEntity.addMemberModelMemberEntity(modelMemberEntity);
} else {
errorMsg = errorMsg + "<li> Cannot run addMemberEntity on a non view-entity.";
}
} else if ("removeMemberEntity".equals(event)) {
String alias = request.getParameter("alias");
if (modelViewEntity != null) {
modelViewEntity.removeMemberModelMemberEntity(alias);
} else {
errorMsg = errorMsg + "<li> Cannot run removeMemberEntity on a non view-entity.";
}
} else if (event != null) {
errorMsg = errorMsg + "<li> The operation specified is not valid: [" + event + "]";
}
Collection typesCol = delegator.getEntityFieldTypeNames(entity);
TreeSet types = null;
if (typesCol != null) types = new TreeSet(typesCol);
%>
<style>
A.listtext {font-family: Helvetica,sans-serif; font-size: 10pt; font-weight: bold; text-decoration: none; color: blue;}
A.listtext:hover {color:red;}
</style>
<H3>Entity Editor</H3>
<%if (errorMsg.length() > 0) {%>
<span style='color: red;'>The following errors occurred:
<ul><%=errorMsg%></ul>
</span>
<br>
<%}%>
<FORM method=POST action='<ofbiz:url>/view/EditEntity</ofbiz:url>' style='margin: 0;'>
<INPUT type=TEXT class='inputBox' size='30' name='entityName'>
<INPUT type=SUBMIT value='Edit Specified Entity'>
</FORM>
<FORM method=POST action='<ofbiz:url>/view/EditEntity</ofbiz:url>' style='margin: 0;'>
<SELECT name='entityName' class='selectBox'>
<OPTION selected> </OPTION>
<%Iterator entIter1 = entSet.iterator();%>
<%while (entIter1.hasNext()) {%>
<OPTION><%=(String)entIter1.next()%></OPTION>
<%}%>
</SELECT>
<INPUT type=SUBMIT value='Edit Specified Entity'>
</FORM>
<hr>
<FORM method=POST action='<ofbiz:url>/view/EditEntity?event=addEntity</ofbiz:url>' style='margin: 0;'>
Entity Name (Java style): <INPUT type=TEXT class='inputBox' size='60' name='entityName'><br>
Entity Group: <INPUT type=TEXT size='60' class='inputBox' name='entityGroup' value='org.ofbiz'>
<INPUT type=SUBMIT value='Create Entity'>
</FORM>
<hr>
<%if (entity == null) {%>
<H4>Entity not found with name "<%=UtilFormatOut.checkNull(entityName)%>"</H4>
<%}else{%>
<BR>
<A href='<ofbiz:url>/view/EditEntity?entityName=<%=entityName%></ofbiz:url>'>Reload Current Entity: <%=entityName%></A><BR>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -