📄 uixmlfileutil.java
字号:
/*
*
* Copyright (c) 2004 SourceTap - www.sourcetap.com
*
* The contents of this file are subject to the SourceTap Public License
* ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sourcetap.com/license.htm
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*/
package com.sourcetap.sfa.ui;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.model.ModelEntity;
import org.ofbiz.entity.util.EntityDataLoader;
/**
* DOCUMENT ME!
*
*/
public class UIXMLFileUtil {
public static final String module = UIXMLFileUtil.class.getName();
/* public static void main (String[] argument) {
if (argument.length != 3) {
Debug.logError("Usage:", module);
Debug.logError("UIGenerateSQL <party ID> <screen name like> <path>", module);
return;
}
String partyId = argument[0];
String screenName = argument[1];
String filePath = argument[2];
UIGenerateScreenSQL uIGenerateScreenSQL = new UIGenerateScreenSQL();
GenericDelegator delegator = new GenericDelegator("UIGenerateScreenSQLDelegator");
uIGenerateScreenSQL.writeUiScreenSql(delegator, partyId, screenName, filePath);
return;
}
*/
/**
* @param delegator
* @param filePath - a file or directory or files to load
* @return
*/
public static int loadAll( GenericDelegator delegator, String filePath )
throws GenericEntityException
{
List errorMessages = new ArrayList();
String helperName = delegator.getGroupHelperName("org.ofbiz");
List urlList = new ArrayList();
File loadDir = new File(filePath);
Debug.logVerbose("filepath = " + filePath, module);
if (loadDir.exists() && loadDir.isDirectory()) {
File[] files = loadDir.listFiles();
List tempFileList = new LinkedList();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().toLowerCase().endsWith(".xml")) {
Debug.logVerbose("adding file " + files[i].getAbsoluteFile(), module);
tempFileList.add(files[i]);
}
}
Collections.sort(tempFileList);
Iterator tempFileIter = tempFileList.iterator();
while (tempFileIter.hasNext()) {
File dataFile = (File) tempFileIter.next();
if (dataFile.exists()) {
URL url = null;
try {
url = dataFile.toURL();
urlList.add(url);
} catch (java.net.MalformedURLException e) {
String xmlError = "Error loading XML file \"" + dataFile.getAbsolutePath() + "\"; Error was: " + e.getMessage();
Debug.logError(xmlError, module);
}
} else {
String errorMsg = "Could not find file: \"" + dataFile.getAbsolutePath() + "\"";
Debug.logError(errorMsg, module);
}
}
}
else if ( loadDir.exists() && loadDir.isFile() )
{
Debug.logVerbose("loading single file" + loadDir.getAbsolutePath(), module);
URL url = null;
try {
url = loadDir.toURL();
urlList.add(url);
} catch (java.net.MalformedURLException e) {
String xmlError = "Error loading XML file \"" + loadDir.getAbsolutePath() + "\"; Error was: " + e.getMessage();
Debug.logError(xmlError, module);
}
}
int totalRowsChanged = 0;
if (urlList.size() > 0)
{
Iterator urlIter = urlList.iterator();
while (urlIter.hasNext())
{
URL dataUrl = (URL) urlIter.next();
int rowsChanged = EntityDataLoader.loadData(dataUrl, helperName, delegator, errorMessages);
totalRowsChanged += rowsChanged;
Debug.logError("Loaded " + rowsChanged + " rows from " + dataUrl.toExternalForm()+ " (" + totalRowsChanged + " total rows so far)", module);
}
} else
{
Debug.logVerbose("No XML Files found.", module);
}
return totalRowsChanged;
}
public String saveAll(GenericDelegator delegator, String filePath )
{
List entityList = null;
int numEntities = 0;
String msg = "";
String fileName = "";
try {
entityList = delegator.findAll("UiScreen");
Iterator listIterator = entityList.iterator();
while ( listIterator.hasNext())
{
GenericValue screen = (GenericValue) listIterator.next();
numEntities++;
String screenName = screen.getString("screenName");
fileName = filePath + "/ui-s-" + screenName.replace(' ', '_') + ".xml";
writeUiScreenFile( delegator, "-1", screen.getString("screenId"), fileName);
}
msg = numEntities + " screens saved<p>";
fileName = filePath + "/ui-applications.xml";
msg += writeAllRecords( delegator, "UiApplication", fileName);
fileName = filePath + "/ui-layoutTypes.xml";
msg += writeAllRecords( delegator, "UiLayoutType", fileName);
entityList = delegator.findAll("UiDisplayObject");
listIterator = entityList.iterator();
while ( listIterator.hasNext())
{
GenericValue displayObject = (GenericValue) listIterator.next();
numEntities++;
String entityName = displayObject.getString("displayObjectId");
fileName = filePath + "/ui-do-" + entityName.replace(' ', '_') + ".xml";
writeUiDisplayObjectFile ( delegator, entityName, fileName);
}
msg += numEntities + " display objects saved<p>";
entityList = delegator.findAll("UiDisplayType");
listIterator = entityList.iterator();
while ( listIterator.hasNext())
{
GenericValue displayType = (GenericValue) listIterator.next();
numEntities++;
String entityName = displayType.getString("displayTypeId");
fileName = filePath + "/ui-dt-" + entityName.replace(' ', '_') + ".xml";
writeUiDisplayTypeFile ( delegator, entityName, fileName);
}
msg += numEntities + " display types saved<p>";
entityList = delegator.findAll("UiEntity");
listIterator = entityList.iterator();
while ( listIterator.hasNext())
{
GenericValue entity = (GenericValue) listIterator.next();
numEntities++;
String entityName = entity.getString("entityName");
String entityId = entity.getString("entityId");
fileName = filePath + "/ui-e-" + entityName.replace(' ', '_') + ".xml";
writeUiEntityFile ( delegator, entityId, fileName);
}
msg += numEntities + " entities saved<p>";
entityList = delegator.findAll("CodeType");
listIterator = entityList.iterator();
while ( listIterator.hasNext())
{
GenericValue codeType = (GenericValue) listIterator.next();
numEntities++;
String entityName = codeType.getString("codeTypeId");
fileName = filePath + "/code-" + entityName.replace(' ', '_') + ".xml";
writeCodeTypeFile ( delegator, entityName, fileName);
}
msg += numEntities + " codes saved<p>";
entityList = delegator.findAll("UiReport");
listIterator = entityList.iterator();
while ( listIterator.hasNext())
{
GenericValue uiReport = (GenericValue) listIterator.next();
numEntities++;
String entityName = uiReport.getString("reportName");
fileName = filePath + "/ui-rpt-" + entityName.replace(' ', '_') + ".xml";
writeUiReportFile ( delegator, uiReport.getString("reportId"), fileName);
}
msg += numEntities + " codes saved<p>";
}
catch (Exception e)
{
Debug.logError(
"[UISQLFileWriter.saveAll]: Exception - Error was:", module);
Debug.logError(e.getMessage(), module);
return e.getMessage();
}
return msg;
}
public String writeUiScreenFile(GenericDelegator delegator, String partyId,
String screenId, String filePath) {
HashMap findHashMap = new HashMap();
ArrayList findOrder = null;
ModelEntity modelEntity = null;
GenericValue genericValue = null;
String entityName = "";
String resultString = "";
try {
// Open the file, and replace any existing contents.
FileWriter tempFile = new FileWriter(filePath, false);
PrintWriter outputFile = new PrintWriter( new BufferedWriter(tempFile));
writeHeader(outputFile);
////////////////////
// Write out the SQL for inserting the screen.
////////////////////
List screenGVL = null;
screenGVL = writeSqlInserts("UiScreen", UtilMisc.toMap("screenId", screenId), UtilMisc.toList("screenId"),
delegator, outputFile);
if (screenGVL.size() <= 0) {
return "No screen found with ID \"" + screenId + "\"";
} else {
resultString += (String.valueOf(screenGVL.size()) +
" screens<BR>\n");
}
////////////////////
// Write out the SQL for inserting the screen sections.
////////////////////
// Loop through the screens. (Should be only one.)
Iterator screenGVI = screenGVL.iterator();
List screenSectionGVL = new LinkedList();
while (screenGVI.hasNext()) {
GenericValue screenGV = (GenericValue) screenGVI.next();
screenSectionGVL.addAll(writeSqlInserts("UiScreenSection",
UtilMisc.toMap("screenId", screenGV.getString("screenId")), UtilMisc.toList("sectionId"), delegator, outputFile));
}
resultString += (String.valueOf(screenSectionGVL.size()) +
" sections<BR>\n");
screenGVI = null;
////////////////////
// Write out the SQL for inserting the screen section entities and screen section infos (fields).
////////////////////
Iterator screenSectionGVI = screenSectionGVL.iterator();
List screenSectionEntityGVL = new LinkedList();
List screenSectionInfoGVL = new LinkedList();
while (screenSectionGVI.hasNext()) {
GenericValue screenSectionGV = (GenericValue) screenSectionGVI.next();
String sectionId = screenSectionGV.getString("sectionId");
screenSectionEntityGVL.addAll(writeSqlInserts(
"UiScreenSectionEntity", UtilMisc.toMap("sectionId", sectionId), UtilMisc.toList("entityId"),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -