?? entityref_main.jsp
字號:
<!--
* 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.entity.*, org.ofbiz.entity.model.*, org.ofbiz.base.util.*" %>
<jsp:useBean id="security" type="org.ofbiz.security.Security" scope="request" />
<jsp:useBean id="delegator" type="org.ofbiz.entity.GenericDelegator" scope="request" />
<%String controlPath=(String)request.getAttribute("_CONTROL_PATH_");%>
<%
if(security.hasPermission("ENTITY_MAINT", session)) {
initReservedWords();
//boolean checkWarnings = "true".equals(request.getParameter("CHECK_WARNINGS"));
boolean checkWarnings = true;
boolean forstatic = "true".equals(request.getParameter("forstatic"));
if (forstatic) checkWarnings = false;
String search = null;
//GenericDelegator delegator = GenericHelperFactory.getDefaultHelper();
ModelReader reader = delegator.getModelReader();
Map packages = new HashMap();
TreeSet packageNames = new TreeSet();
TreeSet tableNames = new TreeSet();
//put the entityNames TreeSets in a HashMap by packageName
Collection ec = reader.getEntityNames();
TreeSet entityNames = new TreeSet(ec);
Iterator ecIter = ec.iterator();
while(ecIter.hasNext()) {
String eName = (String)ecIter.next();
ModelEntity ent = reader.getModelEntity(eName);
//make sure the table name is in the list of all table names, if not null
if (UtilValidate.isNotEmpty(ent.getPlainTableName())) tableNames.add(ent.getPlainTableName());
TreeSet entities = (TreeSet)packages.get(ent.getPackageName());
if(entities == null) {
entities = new TreeSet();
packages.put(ent.getPackageName(), entities);
packageNames.add(ent.getPackageName());
}
entities.add(eName);
}
int numberOfEntities = ec.size();
int numberShowed = 0;
search = (String) request.getParameter("search");
//as we are iterating through, check a few things and put any warnings here inside <li></li> tags
List warningList = new LinkedList();
TreeSet fkNames = new TreeSet();
TreeSet indexNames = new TreeSet();
%>
<html>
<head>
<title>Entity Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
.packagetext {font-family: Helvetica,sans-serif; font-size: 18pt; font-weight: bold; text-decoration: none; color: black;}
.toptext {font-family: Helvetica,sans-serif; font-size: 16pt; font-weight: bold; text-decoration: none; color: black;}
.titletext {font-family: Helvetica,sans-serif; font-size: 12pt; font-weight: bold; text-decoration: none; color: blue;}
.headertext {font-family: Helvetica,sans-serif; font-size: 8pt; font-weight: bold; text-decoration: none; background-color: blue; color: white;}
.enametext {font-family: Helvetica,sans-serif; font-size: 8pt; font-weight: bold; text-decoration: none; color: black;}
.entitytext {font-family: Helvetica,sans-serif; font-size: 8pt; text-decoration: none; color: black;}
.relationtext {font-family: Helvetica,sans-serif; font-size: 8pt; text-decoration: none; color: black;}
A.rlinktext {font-family: Helvetica,sans-serif; font-size: 8pt; font-weight: bold; text-decoration: none; color: blue;}
A.rlinktext:hover {color:red;}
</style>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<DIV class='toptext'>Entity Reference Chart<br>
<%= numberOfEntities %> Total Entities
</DIV>
<%if (!forstatic) {%>
<%if (checkWarnings) {%>
<A href='#WARNINGS'>View Warnings</A>
<%} else {%>
<A href='<%=response.encodeURL(controlPath + "/view/entityref_main?CHECK_WARNINGS=true")%>'>View With Warnings Check</A>
<%}%>
<%}%>
<%
Iterator piter = packageNames.iterator();
while (piter.hasNext()) {
String pName = (String) piter.next();
TreeSet entities = (TreeSet) packages.get(pName);
%><A name='<%=pName%>'></A><HR><DIV class='packagetext'><%=pName%></DIV><HR><%
Iterator i = entities.iterator();
while (i.hasNext()) {
String entityName = (String)i.next();
String helperName = delegator.getEntityHelperName(entityName);
String groupName = delegator.getEntityGroupName(entityName);
if (search == null || entityName.toLowerCase().indexOf(search.toLowerCase()) != -1) {
ModelEntity entity = reader.getModelEntity(entityName);
if (checkWarnings) {
if (helperName == null) {
warningList.add("<span style=\"color: red;\">[HelperNotFound]</span> No Helper (DataSource) definition found for entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
//only show group name warning if helper name not found
if (groupName == null)
warningList.add("<span style=\"color: red;\">[GroupNotFound]</span> No Group Name found for entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A>.");
}
if (entity.getPlainTableName() != null && entity.getPlainTableName().length() > 30)
warningList.add("<span style=\"color: red;\">[TableNameGT30]</span> Table name <b>" + entity.getPlainTableName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is longer than 30 characters.");
if (entity.getPlainTableName() != null && reservedWords.contains(entity.getPlainTableName().toUpperCase()))
warningList.add("<span style=\"color: red;\">[TableNameRW]</span> Table name <b>" + entity.getPlainTableName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is a reserved word.");
}
%>
<a name="<%= entityName %>"></a>
<table width="95%" border="1" cellpadding='2' cellspacing='0'>
<tr bgcolor="#CCCCCC">
<td colspan="5">
<div align="center" class="titletext">ENTITY: <%=entityName%> | TABLE: <%=entity.getPlainTableName()%></div>
<div align="center" class="entitytext"><b><%=entity.getTitle()%></b>
<%if (!forstatic) {%><a target='main' href="<%=response.encodeURL(controlPath + "/FindGeneric?entityName=" + entityName + "&find=true&VIEW_SIZE=50&VIEW_INDEX=0")%>">[view data]</a><%}%></div>
<%if (entity.getDescription() != null && !entity.getDescription().equalsIgnoreCase("NONE") && !entity.getDescription().equalsIgnoreCase("")) {%>
<div align="center" class="entitytext"><%=entity.getDescription()%></div>
<%}%>
</td>
</tr>
<tr class='headertext'>
<td width="30%" align=center>Java Name</td>
<td width="30%" align=center>DB Name</td>
<td width="10%" align=center>Field-Type</td>
<td width="15%" align=center>Java-Type</td>
<td width="15%" align=center nowrap>SQL-Type</td>
</tr>
<%
TreeSet ufields = new TreeSet();
for (int y = 0; y < entity.getFieldsSize(); y++) {
ModelField field = entity.getField(y);
ModelFieldType type = delegator.getEntityFieldType(entity, field.getType());
String javaName = null;
javaName = field.getIsPk() ? "<span style=\"color: red;\">" + field.getName() + "</span>" : field.getName();
if(checkWarnings) {
if(ufields.contains(field.getName())) {
warningList.add("<span style=\"color: red;\">[FieldNotUnique]</span> Field <b>" + field.getName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is not unique for that entity.");
} else {
ufields.add(field.getName());
}
if(field.getColName().length() > 30 && !(entity instanceof ModelViewEntity)) {
warningList.add("<span style=\"color: red;\">[FieldNameGT30]</span> Column name <b>" + field.getColName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is longer than 30 characters.");
}
if(field.getColName().length() == 0) {
warningList.add("<span style=\"color: red;\">[FieldNameEQ0]</span> Column name for field name <b>\"" + field.getName() + "\"</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is empty (zero length).");
}
if(reservedWords.contains(field.getColName().toUpperCase()))
warningList.add("<span style=\"color: red;\">[FieldNameRW]</span> Column name <b>" + field.getColName() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> is a reserved word.");
}
%>
<tr bgcolor="#EFFFFF">
<td><div align="left" class='enametext'><%=javaName%></div></td>
<td><div align="left" class='entitytext'><%=field.getColName()%></div></td>
<td><div align="left" class='entitytext'><%=field.getType()%></div></td>
<%if(type != null){%>
<td><div align="left" class='entitytext'><%=type.getJavaType()%></div></td>
<td><div align="left" class='entitytext'><%=type.getSqlType()%></div></td>
<%}else{%>
<td><div align="left" class='entitytext'>NOT FOUND</div></td>
<td><div align="left" class='entitytext'>NOT FOUND</div></td>
<%
if(checkWarnings) {
StringBuffer warningMsg = new StringBuffer();
warningMsg.append("<span style=\"color: red;\">[FieldTypeNotFound]</span> Field type <b>" + field.getType() + "</b> of entity <A href=\"#" + entity.getEntityName() + "\">" + entity.getEntityName() + "</A> not found in field type definitions");
if (helperName == null) {
warningMsg.append(" (no helper definition found)");
}
warningMsg.append(".");
warningList.add(warningMsg.toString());
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -