001: package com.xoetrope.carousel.testpilot;
002:
003: import java.io.BufferedReader;
004: import java.io.FileInputStream;
005: import java.io.FileOutputStream;
006: import java.io.InputStreamReader;
007: import net.xoetrope.builder.helper.XTableModelHelper;
008: import net.xoetrope.xml.XmlElement;
009: import net.xoetrope.xml.XmlSource;
010: import net.xoetrope.xui.data.XBaseModel;
011: import net.xoetrope.xui.data.XModel;
012: import net.xoetrope.optional.data.XOptionalDataSource;
013: import java.io.*;
014: import net.xoetrope.data.XDataSource;
015: import net.xoetrope.xui.XProject;
016:
017: /**
018: * Support for ???
019: * <p> Copyright (c) Xoetrope Ltd., 2001-2006, This software is licensed under
020: * the GNU Public License (GPL), please see license.txt for more details. If
021: * you make commercial use of this software you must purchase a commercial
022: * license from Xoetrope.</p>
023: * <p> $Revision: 1.2 $</p>
024: */
025: public class ApplicationScriptConverter {
026: public static final int EVENT_NODE = 0;
027: public static final int CONTROL_NODE = 1;
028: public static final int VALUE_NODE = 2;
029: public static final int COMMAND_NODE = 3;
030:
031: protected XProject currentProject;
032:
033: public void ScriptConverter(XProject project) {
034: currentProject = project;
035: }
036:
037: public static void convertTableForSave(XProject currentProject,
038: String fileName) {
039: XModel root = currentProject.getModel();
040: XModel settings = (XModel) root.get("application");
041:
042: try {
043: BufferedWriter writer = new BufferedWriter(
044: new OutputStreamWriter(new FileOutputStream(
045: fileName), "UTF8"));
046: XOptionalDataSource.outputModel(writer, settings);
047: writer.flush();
048: writer.close();
049: } catch (IOException ex) {
050: }
051: }
052:
053: public static void convertTableForOpen(XProject currentProject,
054: File fis) {
055: XModel root = currentProject.getModel();
056: XModel settings = (XModel) root.get("application");
057:
058: try {
059: BufferedReader reader = new BufferedReader(
060: new InputStreamReader(new FileInputStream(fis),
061: "UTF8"));
062: XmlElement ele = XmlSource.read(reader);
063: XDataSource ds = new XDataSource(currentProject);
064: XBaseModel newModel = new XBaseModel();
065: ds.loadTable(ele, newModel);
066: reader.close();
067:
068: root.append(newModel);
069: } catch (IOException ex) {
070: }
071: }
072:
073: private static void populateEvents(XmlElement ele,
074: XBaseModel tableModel) {
075: for (int i = 0; i < ele.getChildren().size(); i++) {
076: XmlElement eleEvent = (XmlElement) ele.getChildren()
077: .elementAt(i);
078: XBaseModel currentModel = (XBaseModel) XTableModelHelper
079: .addRow(tableModel);
080: String control = eleEvent.getAttribute("control");
081: String value = eleEvent.getAttribute("value");
082: String cmd = eleEvent.getAttribute("cmd");
083: XTableModelHelper.addData(currentModel, "event", eleEvent
084: .getAttribute("event"));
085: XTableModelHelper.addData(currentModel, "Control",
086: control == null ? "" : control);
087: XTableModelHelper.addData(currentModel, "Value",
088: value == null ? "" : value);
089: XTableModelHelper.addData(currentModel, "cmd",
090: cmd == null ? "" : cmd);
091: }
092: }
093:
094: private static void populateSettings(XmlElement ele,
095: XBaseModel settings) {
096: for (int i = 0; i < ele.getChildren().size(); i++) {
097: XmlElement eleSetting = (XmlElement) ele.getChildren()
098: .elementAt(i);
099: String value = eleSetting.getAttribute("event");
100:
101: XBaseModel dataModel = new XBaseModel();
102: dataModel.setAttribValue(settings.ID_ATTRIBUTE, "data");
103: dataModel.setAttribValue(settings.VALUE_ATTRIBUTE,
104: eleSetting.getAttribute("name"));
105: dataModel.set(eleSetting.getAttribute("value"));
106: settings.append(dataModel);
107: }
108: }
109: }
|