⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uixmlfileutil.java

📁 国外的一套开源CRM
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * 
 * 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 + -