package com.xoetrope.carousel.testpilot;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import net.xoetrope.builder.helper.XTableModelHelper;
import net.xoetrope.xml.XmlElement;
import net.xoetrope.xml.XmlSource;
import net.xoetrope.xui.data.XBaseModel;
import net.xoetrope.xui.data.XModel;
import net.xoetrope.optional.data.XOptionalDataSource;
import java.io.*;
import net.xoetrope.data.XDataSource;
import net.xoetrope.xui.XProject;
/**
* Support for ???
* <p> Copyright (c) Xoetrope Ltd., 2001-2006, This software is licensed under
* the GNU Public License (GPL), please see license.txt for more details. If
* you make commercial use of this software you must purchase a commercial
* license from Xoetrope.</p>
* <p> $Revision: 1.2 $</p>
*/
public class ApplicationScriptConverter
{
public static final int EVENT_NODE = 0;
public static final int CONTROL_NODE = 1;
public static final int VALUE_NODE = 2;
public static final int COMMAND_NODE = 3;
protected XProject currentProject;
public void ScriptConverter( XProject project )
{
currentProject = project;
}
public static void convertTableForSave( XProject currentProject, String fileName )
{
XModel root = currentProject.getModel();
XModel settings = ( XModel )root.get( "application" );
try {
BufferedWriter writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( fileName ), "UTF8" ));
XOptionalDataSource.outputModel( writer, settings );
writer.flush();
writer.close();
}
catch ( IOException ex ) {
}
}
public static void convertTableForOpen( XProject currentProject, File fis )
{
XModel root = currentProject.getModel();
XModel settings = ( XModel )root.get( "application" );
try {
BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( fis ), "UTF8" ));
XmlElement ele = XmlSource.read( reader );
XDataSource ds = new XDataSource( currentProject );
XBaseModel newModel = new XBaseModel();
ds.loadTable( ele, newModel );
reader.close();
root.append( newModel );
}
catch ( IOException ex ) {
}
}
private static void populateEvents( XmlElement ele, XBaseModel tableModel )
{
for ( int i = 0; i < ele.getChildren().size(); i++ ) {
XmlElement eleEvent = ( XmlElement )ele.getChildren().elementAt( i );
XBaseModel currentModel = ( XBaseModel )XTableModelHelper.addRow( tableModel );
String control = eleEvent.getAttribute( "control" );
String value = eleEvent.getAttribute( "value" );
String cmd = eleEvent.getAttribute( "cmd" );
XTableModelHelper.addData( currentModel, "event", eleEvent.getAttribute( "event" ) );
XTableModelHelper.addData( currentModel, "Control", control == null ? "" : control );
XTableModelHelper.addData( currentModel, "Value", value == null ? "" : value );
XTableModelHelper.addData( currentModel, "cmd", cmd == null ? "" : cmd );
}
}
private static void populateSettings( XmlElement ele, XBaseModel settings )
{
for ( int i = 0; i < ele.getChildren().size(); i++ ) {
XmlElement eleSetting = ( XmlElement )ele.getChildren().elementAt( i );
String value = eleSetting.getAttribute( "event" );
XBaseModel dataModel = new XBaseModel();
dataModel.setAttribValue( settings.ID_ATTRIBUTE, "data" );
dataModel.setAttribValue( settings.VALUE_ATTRIBUTE, eleSetting.getAttribute( "name" ) );
dataModel.set( eleSetting.getAttribute( "value" ) );
settings.append( dataModel );
}
}
}
|