Merge branch 'master' of github.com:alcexhim/UniversalEditor

Conflicts:
	Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/SeekOrigin.java
This commit is contained in:
Michael Becker 2015-06-18 09:08:53 -04:00
commit 27ed0bdc89
29 changed files with 968 additions and 16 deletions

Binary file not shown.

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<UniversalEditor>
<Configuration>
<Group ID="Application">
<Property ID="ConfirmExit" Value="true" />
<Group ID="Startup">
<Property ID="ForceLoadStartupFileNames" Value="true" />
<Property ID="FileNames">
<Value>C:\Temp\UETEST\uetest.farc</Value>
</Property>
</Group>
</Group>
</Configuration>
</UniversalEditor>

View File

@ -0,0 +1,24 @@
<UniversalEditor>
<Application>
<CommandBars LargeButtons="false" ScreenTips="true" ScreenTipShortcutKeys="true">
<CommandBar ID="tbStandard" Title="Standard">
<Items>
<CommandReference CommandID="FileNew" />
<CommandReference CommandID="FileOpen" />
<CommandReference CommandID="FileSave" />
<CommandReference CommandID="FilePrint" />
<Separator />
<CommandReference CommandID="EditCut" />
<CommandReference CommandID="EditCopy" />
<CommandReference CommandID="EditPaste" />
<CommandReference CommandID="EditDelete" />
<Separator />
<CommandReference CommandID="EditUndo" />
<CommandReference CommandID="EditRedo" />
<Separator />
<CommandReference CommandID="Help" />
</Items>
</CommandBar>
</CommandBars>
</Application>
</UniversalEditor>

View File

@ -0,0 +1,354 @@
<?xml version="1.0" encoding="UTF-8" ?>
<UniversalEditor>
<Application>
<Commands>
<!-- File -->
<Command ID="File">
<Items>
<CommandReference CommandID="FileNew" />
<CommandReference CommandID="FileOpen" />
<CommandReference CommandID="FileSave" />
<CommandReference CommandID="FileClose" />
<Separator />
<CommandReference CommandID="FilePrint" />
<Separator />
<CommandReference CommandID="FileRecentFiles" />
<CommandReference CommandID="FileRecentProjects" />
<Separator />
<CommandReference CommandID="FileRestart" />
<CommandReference CommandID="FileExit" />
</Items>
</Command>
<Command ID="FileNew" DefaultCommandID="FileNewDocument">
<Items>
<!--
<CommandReference CommandID="FileNewDocumentFileSystem" />
<Separator />
-->
<CommandReference CommandID="FileNewDocument" />
<CommandReference CommandID="FileNewProject" />
</Items>
</Command>
<Command ID="FileNewDocument">
<Shortcut Modifiers="Control" Key="N" />
<Parameters>
<!-- This command takes one parameter which is not set by default -->
<Parameter Name="ObjectModelTypeName" />
</Parameters>
</Command>
<Command ID="FileNewDocumentFileSystem" ParentCommandID="FileNewDocument">
<!-- Execute FileNewDocument with the specified parameters -->
<ParameterValues>
<ParameterValue Name="ObjectModelTypeName" Value="UniversalEditor.ObjectModels.FileSystem.FileSystemObjectModel" />
</ParameterValues>
</Command>
<Command ID="FileNewProject">
<Shortcut Modifiers="Control,Shift" Key="N" />
</Command>
<Command ID="FileOpen" DefaultCommandID="FileOpenDocument">
<Items>
<CommandReference CommandID="FileOpenDocument" />
<CommandReference CommandID="FileOpenProject" />
</Items>
</Command>
<Command ID="FileOpenDocument">
<Shortcut Modifiers="Control" Key="O" />
</Command>
<Command ID="FileOpenProject">
<Shortcut Modifiers="Control,Shift" Key="O" />
</Command>
<Command ID="FileSave" DefaultCommandID="FileSaveDocument">
<Items>
<CommandReference CommandID="FileSaveDocument" />
<CommandReference CommandID="FileSaveDocumentAs" />
<Separator />
<CommandReference CommandID="FileSaveProject" />
<CommandReference CommandID="FileSaveProjectAs" />
<Separator />
<CommandReference CommandID="FileSaveAll" />
</Items>
</Command>
<Command ID="FileSaveDocument">
<Shortcut Modifiers="Control" Key="S" />
</Command>
<Command ID="FileSaveDocumentAs" />
<Command ID="FileSaveProject" />
<Command ID="FileSaveProjectAs" />
<Command ID="FileSaveAll">
<Shortcut Modifiers="Control,Shift" Key="S" />
</Command>
<Command ID="FileClose">
<Items>
<CommandReference CommandID="FileCloseDocument" />
<CommandReference CommandID="FileCloseProject" />
<Separator />
<CommandReference CommandID="FileCloseWindow" />
</Items>
</Command>
<Command ID="FileCloseDocument">
<Shortcut Modifiers="Control" Key="W" />
</Command>
<Command ID="FileCloseProject">
<Shortcut Modifiers="Control,Shift" Key="W" />
</Command>
<Command ID="FileCloseWindow">
<Shortcut Modifiers="Alt" Key="F4" />
</Command>
<Command ID="FilePrint">
<Shortcut Modifiers="Control" Key="P" />
</Command>
<Command ID="FileRecentFiles">
<Items>
<CommandPlaceholder ID="RecentFiles" />
</Items>
</Command>
<Command ID="FileRecentProjects">
<Items>
<CommandPlaceholder ID="RecentProjects" />
</Items>
</Command>
<Command ID="FileRestart" />
<Command ID="FileExit">
<Shortcut Modifiers="Control" Key="Q" />
</Command>
<!-- Edit -->
<Command ID="Edit">
<Items>
<CommandReference CommandID="EditUndo" />
<CommandReference CommandID="EditRedo" />
<Separator />
<CommandReference CommandID="EditCut" />
<CommandReference CommandID="EditCopy" />
<CommandReference CommandID="EditPaste" />
<CommandReference CommandID="EditDelete" />
<Separator />
<CommandReference CommandID="EditSelectAll" />
<CommandReference CommandID="EditInvertSelection" />
<Separator />
<CommandReference CommandID="EditFindReplace" />
<CommandReference CommandID="EditGoTo" />
</Items>
</Command>
<Command ID="EditUndo">
<Shortcut Modifiers="Control" Key="Z" />
</Command>
<Command ID="EditRedo">
<Shortcut Modifiers="Control" Key="Y" />
</Command>
<Command ID="EditCut">
<Shortcut Modifiers="Control" Key="X" />
</Command>
<Command ID="EditCopy">
<Shortcut Modifiers="Control" Key="C" />
</Command>
<Command ID="EditPaste">
<Shortcut Modifiers="Control" Key="V" />
</Command>
<Command ID="EditDelete">
<Shortcut Key="Delete" />
</Command>
<Command ID="EditSelectAll">
<Shortcut Modifiers="Control" Key="A" />
</Command>
<Command ID="EditInvertSelection">
<Shortcut Modifiers="Control,Shift" Key="A" />
</Command>
<Command ID="EditFindReplace">
<Shortcut Modifiers="Control" Key="F" />
</Command>
<Command ID="EditGoTo">
<Shortcut Modifiers="Control" Key="G" />
</Command>
<!-- View -->
<Command ID="View">
<Items>
<CommandReference CommandID="ViewToolbars" />
<CommandReference CommandID="ViewStatusBar" />
<Separator />
<CommandReference CommandID="ViewPanels" />
<Separator />
<CommandReference CommandID="ViewPerspective" />
<Separator />
<CommandReference CommandID="ViewStartPage" />
<CommandReference CommandID="ViewFullScreen" />
<Separator />
<CommandReference CommandID="ViewRefresh" />
</Items>
</Command>
<Command ID="ViewToolbars">
<Items>
<CommandReference CommandID="ViewToolbarsCustomize" />
</Items>
</Command>
<Command ID="ViewToolbarsCustomize" />
<Command ID="ViewStatusBar" />
<Command ID="ViewPanels" />
<Command ID="ViewPerspective">
<Items>
<CommandReference CommandID="ViewPerspective1" />
<CommandReference CommandID="ViewPerspective2" />
<CommandReference CommandID="ViewPerspective3" />
<CommandReference CommandID="ViewPerspective4" />
<CommandReference CommandID="ViewPerspective5" />
<CommandReference CommandID="ViewPerspective6" />
<CommandReference CommandID="ViewPerspective7" />
<CommandReference CommandID="ViewPerspective8" />
<CommandReference CommandID="ViewPerspective9" />
<Separator />
<CommandReference CommandID="ViewPerspectiveCustomize" />
</Items>
</Command>
<Command ID="ViewPerspective1">
<Shortcut Key="TopRow1" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective2">
<Shortcut Key="TopRow2" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective3">
<Shortcut Key="TopRow3" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective4">
<Shortcut Key="TopRow4" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective5">
<Shortcut Key="TopRow5" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective6">
<Shortcut Key="TopRow6" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective7">
<Shortcut Key="TopRow7" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective8">
<Shortcut Key="TopRow8" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspective9">
<Shortcut Key="TopRow9" Modifiers="Control,Alt" />
</Command>
<Command ID="ViewPerspectiveCustomize" />
<Command ID="ViewStartPage" />
<Command ID="ViewFullScreen">
<Shortcut Key="F11" />
</Command>
<!-- Project -->
<Command ID="Project">
<Items>
<CommandReference CommandID="ProjectAddNew" />
<CommandReference CommandID="ProjectAddExisting" />
<Separator />
<CommandReference CommandID="ProjectExclude" />
<CommandReference CommandID="ProjectShowAllFiles" />
<Separator />
<CommandReference CommandID="ProjectProperties" />
</Items>
</Command>
<Command ID="ProjectAddNew">
<Shortcut Modifiers="Control" Key="A" />
</Command>
<Command ID="ProjectAddExisting">
<Shortcut Modifiers="Control,Shift" Key="A" />
</Command>
<Command ID="ProjectExclude" />
<Command ID="ProjectShowAllFiles" />
<Command ID="ProjectProperties" />
<Command ID="Bookmarks">
<Items>
<CommandReference CommandID="BookmarksAdd" />
<CommandReference CommandID="BookmarksAddAll" />
<Separator />
<CommandReference CommandID="BookmarksManage" />
</Items>
</Command>
<Command ID="BookmarksAdd">
<Shortcut Modifiers="Control" Key="D" />
</Command>
<Command ID="BookmarksAddAll">
<Shortcut Modifiers="Control,Shift" Key="D" />
</Command>
<Command ID="BookmarksManage" />
<Command ID="Tools">
<Items>
<CommandReference CommandID="ToolsSessionManager" />
<Separator />
<CommandReference CommandID="ToolsExternalTools" />
<Separator />
<CommandReference CommandID="ToolsCustomize" />
<CommandReference CommandID="ToolsOptions" />
</Items>
</Command>
<Command ID="ToolsSessionManager" />
<Command ID="ToolsExternalTools">
<Items>
<CommandPlaceholder ID="ExternalTools" />
<Separator />
<CommandReference CommandID="ToolsExternalToolsCustomize" />
</Items>
</Command>
<Command ID="ToolsExternalToolsCustomize" />
<Command ID="ToolsCustomize" />
<Command ID="ToolsOptions" />
<Command ID="Window">
<Items>
<CommandReference CommandID="WindowNewWindow" />
<CommandReference CommandID="WindowSplit" />
<Separator />
<CommandReference CommandID="WindowFloat" />
<CommandReference CommandID="WindowFloatAll" />
<CommandReference CommandID="WindowDock" />
<CommandReference CommandID="WindowAutoHide" />
<CommandReference CommandID="WindowAutoHideAll" />
<CommandReference CommandID="WindowHide" />
<Separator />
<CommandReference CommandID="WindowPinTab" />
<Separator />
<CommandReference CommandID="WindowNewTabGroupHorizontal" />
<CommandReference CommandID="WindowNewTabGroupVertical" />
<CommandReference CommandID="WindowCloseAllDocuments" />
<CommandReference CommandID="WindowResetWindowLayout" />
<Separator />
<CommandReference CommandID="WindowWindows" />
</Items>
</Command>
<Command ID="WindowNewWindow" />
<Command ID="WindowSplit" />
<Command ID="WindowFloat" />
<Command ID="WindowFloatAll" />
<Command ID="WindowDock" />
<Command ID="WindowAutoHide" />
<Command ID="WindowAutoHideAll" />
<Command ID="WindowHide" />
<Command ID="WindowPinTab" />
<Command ID="WindowNewTabGroupHorizontal" />
<Command ID="WindowNewTabGroupVertical" />
<Command ID="WindowCloseAllDocuments" />
<Command ID="WindowResetWindowLayout" />
<Command ID="WindowWindows" />
<Command ID="Help" DefaultCommandID="HelpViewHelp">
<Items>
<CommandReference CommandID="HelpViewHelp" />
<Separator />
<CommandReference CommandID="HelpCustomerFeedbackOptions" />
<CommandReference CommandID="HelpLicensingAndActivation" />
<Separator />
<CommandReference CommandID="HelpSoftwareManager" />
<Separator />
<CommandReference CommandID="HelpAboutPlatform" />
</Items>
</Command>
<Command ID="HelpViewHelp" />
<Command ID="HelpCustomerFeedbackOptions" />
<Command ID="HelpLicensingAndActivation" />
<Command ID="HelpSoftwareManager" />
<Command ID="HelpAboutPlatform" />
</Commands>
</Application>
</UniversalEditor>

View File

@ -0,0 +1,16 @@
<UniversalEditor>
<Application>
<MainMenu>
<Items>
<CommandReference CommandID="File" />
<CommandReference CommandID="Edit" />
<CommandReference CommandID="View" />
<CommandReference CommandID="Project" />
<CommandReference CommandID="Bookmarks" />
<CommandReference CommandID="Tools" />
<CommandReference CommandID="Window" />
<CommandReference CommandID="Help" />
</Items>
</MainMenu>
</Application>
</UniversalEditor>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<UniversalEditor Version="4.0">
<ObjectModels>
<!--
Default settings for all object models unless overridden with a specific ObjectModel tag.
Enabled
Determines whether the ObjectModel is visible in user interface elements (for example, creating
a new document). If false, the ObjectModel won't show up in the user interface but will still
be accessible to any code that references it directly.
-->
<Default Visible="true" />
</ObjectModels>
</UniversalEditor>

Binary file not shown.

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<UniversalEditor>
<Configuration>
<Group ID="Application">
<Group ID="StartPage">
<!--
Set to false if you don't want the StartPage to be available. Note
that you will also need to remove the ViewStartPage menu item if it's
defined in MainMenu.xml to completely remove all entry points to the
Start Page.
-->
<Property ID="Enabled" Value="true" />
<!--
The URL from which to download Start Page content.
-->
<Property ID="ContentURL" />
<!--
Configuration settings for content refresh.
-->
<Group ID="ContentRefreshTimeout">
<Property ID="Enabled" Value="false" />
<Property ID="Interval" Value="0" />
</Group>
</Group>
</Group>
</Configuration>
</UniversalEditor>

View File

Before

Width:  |  Height:  |  Size: 600 B

After

Width:  |  Height:  |  Size: 600 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -0,0 +1,7 @@
<net.alcetech.UserInterface.Theming>
<Themes>
<Theme ID="889B0D01-5BAC-4C54-9A86-0B978B7A5510">
</Theme>
</Themes>
</net.alcetech.UserInterface.Theming>

View File

@ -1,6 +1,56 @@
package net.alcetech.UniversalEditor.Core;
import java.io.IOException;
import net.alcetech.UniversalEditor.Core.IO.*;
public abstract class Accessor
{
public void seek(long position, SeekOrigin origin) throws IOException
{
/*
switch (origin)
{
case Begin:
{
if (position > getLength())
break;
}
}
*/
seekInternal(position, origin);
}
protected abstract void seekInternal(long position, SeekOrigin origin) throws IOException;
public void open() throws IOException
{
openInternal();
}
public void close() throws IOException
{
closeInternal();
}
protected abstract void openInternal() throws IOException;
protected abstract void closeInternal() throws IOException;
protected abstract int readInternal(byte[] buffer, int start, int length) throws IOException;
protected abstract int writeInternal(byte[] buffer, int start, int length) throws IOException;
public int read(byte[] buffer, int start, int length) throws IOException
{
return readInternal(buffer, start, length);
}
public int write(byte[] buffer, int start, int length) throws IOException
{
return writeInternal(buffer, start, length);
}
public int read(byte[] buffer) throws IOException
{
return readInternal(buffer, 0, buffer.length);
}
public int write(byte[] buffer) throws IOException
{
return write(buffer, 0, buffer.length);
}
}

View File

@ -0,0 +1,51 @@
package net.alcetech.UniversalEditor.Core.Accessors;
import java.io.*;
import net.alcetech.UniversalEditor.Core.*;
import net.alcetech.UniversalEditor.Core.IO.*;
public class FileAccessor extends Accessor
{
private RandomAccessFile _file = null;
public FileAccessor()
{
}
public FileAccessor(String fileName)
{
mvarFileName = fileName;
}
private String mvarFileName = "";
public void setFileName(String value) { mvarFileName = value; }
public String getFileName() { return mvarFileName; }
protected void openInternal() throws IOException
{
String mode = "rw";
_file = new RandomAccessFile(new File(getFileName()), mode);
}
protected void closeInternal() throws IOException
{
if (_file != null)
{
_file.close();
}
}
protected int readInternal(byte[] buffer, int offset, int length) throws IOException
{
return _file.read(buffer, offset, length);
}
protected int writeInternal(byte[] buffer, int offset, int length) throws IOException
{
_file.write(buffer, offset, length);
return length;
}
protected void seekInternal(long position, SeekOrigin origin) throws IOException
{
_file.seek(position);
}
}

View File

@ -0,0 +1,9 @@
package net.alcetech.UniversalEditor.Core;
public abstract class DataFormat
{
public DataFormatReference getDataFormatReference()
{
return new DataFormatReference(this.getClass().getName());
}
}

View File

@ -0,0 +1,21 @@
package net.alcetech.UniversalEditor.Core;
import net.alcetech.Core.NotImplementedException;
import net.alcetech.Core.Collections.ObjectModel.Collection;
public class DataFormatReference
{
private String mvarTypeName = null;
public DataFormatReference(String typeName)
{
mvarTypeName = typeName;
}
public DataFormat Create()
{
throw new NotImplementedException();
}
private Collection<ObjectModelReference> _supportedObjectModelCollection = new Collection<ObjectModelReference>();
public Collection<ObjectModelReference> getSupportedObjectModelCollection() { return _supportedObjectModelCollection; }
}

View File

@ -0,0 +1,60 @@
package net.alcetech.UniversalEditor.Core.IO;
import net.alcetech.Core.NotImplementedException;
public class BitConverter
{
public static byte[] getBytes(boolean value)
{
return new byte[] { value ? (byte)1 : (byte)0 };
}
public static byte[] getBytes(char value)
{
return getBytes((short)value);
}
public static byte[] getBytes(short value)
{
return new byte[]
{
(byte)((value & (0xFF << 0)) >> 0),
(byte)((value & (0xFF << 8)) >> 8)
};
}
public static byte[] getBytes(int value)
{
return new byte[]
{
(byte)((value & (0xFF << 0)) >> 0),
(byte)((value & (0xFF << 8)) >> 8),
(byte)((value & (0xFF << 16)) >> 16),
(byte)((value & (0xFF << 24)) >> 24)
};
}
public static byte[] getBytes(long value)
{
return new byte[]
{
(byte)((value & (0xFF << 0)) >> 0),
(byte)((value & (0xFF << 8)) >> 8),
(byte)((value & (0xFF << 16)) >> 16),
(byte)((value & (0xFF << 24)) >> 24),
(byte)((value & (0xFF << 32)) >> 32),
(byte)((value & (0xFF << 40)) >> 40),
(byte)((value & (0xFF << 48)) >> 48),
(byte)((value & (0xFF << 56)) >> 56)
};
}
public static byte[] getBytes(float value)
{
throw new NotImplementedException();
/*
return new byte[]
{
(byte)(((int)value & (0xFF << 0)) >> 0),
(byte)(((int)value & (0xFF << 8)) >> 8),
(byte)(((int)value & (0xFF << 16)) >> 16),
(byte)(((int)value & (0xFF << 24)) >> 24)
};
*/
}
}

View File

@ -1,8 +1,19 @@
package net.alcetech.UniversalEditor.Core.IO;
import net.alcetech.UniversalEditor.Core.Accessor;
public class Reader
{
private Endianness mvarEndianness = Endianness.BigEndian;
private Accessor _accessor = null;
public Accessor getAccessor() { return _accessor; }
public void setAccessor(Accessor value) { _accessor = value; }
public Reader(Accessor accessor)
{
_accessor = accessor;
}
private Endianness mvarEndianness = Endianness.LittleEndian;
public void setEndianness(Endianness value)
{
mvarEndianness = value;

View File

@ -0,0 +1,8 @@
package net.alcetech.UniversalEditor.Core.IO;
public enum SeekOrigin
{
Begin,
Current,
End
}

View File

@ -1,8 +1,21 @@
package net.alcetech.UniversalEditor.Core.IO;
import java.io.IOException;
import net.alcetech.UniversalEditor.Core.*;
public class Writer
{
private Endianness mvarEndianness = Endianness.BigEndian;
private Accessor _accessor = null;
public Accessor getAccessor() { return _accessor; }
public void setAccessor(Accessor value) { _accessor = value; }
public Writer(Accessor accessor)
{
_accessor = accessor;
}
private Endianness mvarEndianness = Endianness.LittleEndian;
public void setEndianness(Endianness value)
{
mvarEndianness = value;
@ -12,4 +25,99 @@ public class Writer
return mvarEndianness;
}
public void writeByte(byte value) throws IOException
{
byte[] buffer = new byte[] { value };
writeByteArray(buffer);
}
public void writeInt16(short value) throws IOException
{
byte[] _buffer = BitConverter.getBytes(value);
byte[] buffer = new byte[2];
if (getEndianness() == Endianness.BigEndian)
{
buffer[1] = _buffer[0];
buffer[0] = _buffer[1];
}
else
{
buffer[0] = _buffer[0];
buffer[1] = _buffer[1];
}
writeByteArray(buffer);
}
public void writeInt32(int value) throws IOException
{
byte[] _buffer = BitConverter.getBytes(value);
byte[] buffer = new byte[4];
if (getEndianness() == Endianness.BigEndian)
{
buffer[3] = _buffer[0];
buffer[2] = _buffer[1];
buffer[1] = _buffer[2];
buffer[0] = _buffer[3];
}
else
{
buffer[0] = _buffer[0];
buffer[1] = _buffer[1];
buffer[2] = _buffer[2];
buffer[3] = _buffer[3];
}
writeByteArray(buffer);
}
public void writeInt64(long value) throws IOException
{
byte[] _buffer = BitConverter.getBytes(value);
byte[] buffer = new byte[8];
if (getEndianness() == Endianness.BigEndian)
{
buffer[7] = _buffer[0];
buffer[6] = _buffer[1];
buffer[5] = _buffer[2];
buffer[4] = _buffer[3];
buffer[3] = _buffer[4];
buffer[2] = _buffer[5];
buffer[1] = _buffer[6];
buffer[0] = _buffer[7];
}
else
{
buffer[0] = _buffer[0];
buffer[1] = _buffer[1];
buffer[2] = _buffer[2];
buffer[3] = _buffer[3];
buffer[4] = _buffer[4];
buffer[5] = _buffer[5];
buffer[6] = _buffer[6];
buffer[7] = _buffer[7];
}
writeByteArray(buffer);
}
public void writeSingle(float value) throws IOException
{
byte[] _buffer = BitConverter.getBytes(value);
byte[] buffer = new byte[4];
if (getEndianness() == Endianness.BigEndian)
{
buffer[3] = _buffer[0];
buffer[2] = _buffer[1];
buffer[1] = _buffer[2];
buffer[0] = _buffer[3];
}
else
{
buffer[0] = _buffer[0];
buffer[1] = _buffer[1];
buffer[2] = _buffer[2];
buffer[3] = _buffer[3];
}
writeByteArray(buffer);
}
public void writeByteArray(byte[] value) throws IOException
{
_accessor.write(value);
}
}

View File

@ -1,9 +1,17 @@
package net.alcetech.UniversalEditor.Core;
import net.alcetech.Core.NotImplementedException;
import net.alcetech.Core.Collections.Generic.Dictionary;
public class ObjectModelReference
{
private static Dictionary<Class<?>, ObjectModelReference> _omrsByClass = new Dictionary<Class<?>, ObjectModelReference>();
public static ObjectModelReference fromClass(Class<?> clazz)
{
if (_omrsByClass.containsKey(clazz)) return _omrsByClass.getValueByKey(clazz);
return null;
}
private String mvarTypeName = null;
public ObjectModelReference(String typeName)
{

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry combineaccessrules="false" kind="src" path="/net.alcetech.UniversalEditor.Core"/>
<classpathentry combineaccessrules="false" kind="src" path="/net.alcetech.Core"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -0,0 +1,18 @@
package net.alcetech.UniversalEditor.DataFormats.Markup.XML;
import net.alcetech.UniversalEditor.Core.*;
import net.alcetech.UniversalEditor.ObjectModels.Markup.*;
public class XMLDataFormat extends DataFormat
{
private static DataFormatReference _dfr = null;
public DataFormatReference getDataFormatReference()
{
if (_dfr == null)
{
_dfr = super.getDataFormatReference();
_dfr.getSupportedObjectModelCollection().add(ObjectModelReference.fromClass(MarkupObjectModel.class));
}
return _dfr;
}
}

View File

@ -0,0 +1,63 @@
package net.alcetech.UniversalEditor.ObjectModels.Markup.Elements;
import net.alcetech.UniversalEditor.ObjectModels.Markup.*;
public class MarkupTagElement extends MarkupElement
{
private String mvarName = "";
public void setName(String value) { mvarName = value; }
public String getName() { return mvarName; }
private String mvarNamespace = "";
public void setNamespace(String value) { mvarNamespace = value; }
public String getNamespace() { return mvarNamespace; }
public MarkupTagElement(String fullName)
{
this.setFullName(fullName);
}
public MarkupTagElement(String fullName, String value)
{
this.setFullName(fullName);
this.setValue(value);
}
public String getFullName()
{
StringBuilder sb = new StringBuilder();
if (mvarNamespace != "")
{
sb.append(mvarNamespace);
sb.append(':');
}
sb.append(mvarName);
return sb.toString();
}
public void setFullName(String value)
{
String[] parts = value.split(":");
if (parts.length > 1)
{
mvarNamespace = parts[0];
mvarName = parts[1];
}
else if (parts.length > 0)
{
mvarNamespace = "";
mvarName = parts[0];
}
}
private String mvarValue = "";
public void setValue(String value) { mvarValue = value; mvarHasValue = true; }
public String getValue() { return mvarValue; }
private boolean mvarHasValue = false;
public boolean hasValue() { return mvarHasValue; }
public void clearValue()
{
mvarHasValue = false;
mvarValue = "";
}
}

View File

@ -0,0 +1,5 @@
package net.alcetech.UniversalEditor.ObjectModels.Markup;
public abstract class MarkupElement
{
}

View File

@ -0,0 +1,8 @@
package net.alcetech.UniversalEditor.ObjectModels.Markup;
import net.alcetech.Core.Collections.ObjectModel.Collection;
public class MarkupElementCollection extends Collection<MarkupElement>
{
}

View File

@ -0,0 +1,48 @@
package net.alcetech.UniversalEditor.ObjectModels.Markup;
import net.alcetech.Core.Collections.ObjectModel.*;
import net.alcetech.UniversalEditor.Core.*;
import net.alcetech.UniversalEditor.ObjectModels.Markup.Elements.*;
public class MarkupObjectModel extends ObjectModel
{
private static ObjectModelReference _omr = null;
public ObjectModelReference getObjectModelReference()
{
if (_omr == null)
{
_omr = super.getObjectModelReference();
}
return _omr;
}
private MarkupElementCollection mvarElementCollection = new MarkupElementCollection();
public MarkupElementCollection getElementCollection()
{
return mvarElementCollection;
}
public ReadOnlyCollection<MarkupTagElement> getElements()
{
Collection<MarkupTagElement> list = new Collection<MarkupTagElement>();
int count = mvarElementCollection.count();
for (int i = 0; i < count; i++)
{
MarkupElement el = mvarElementCollection.getByIndex(i);
if (MarkupTagElement.class.isInstance(el)) list.add((MarkupTagElement)el);
}
return list.toReadOnlyCollection();
}
public ReadOnlyCollection<MarkupTagElement> getElementsByTagName(String tagName)
{
Collection<MarkupTagElement> list = new Collection<MarkupTagElement>();
ReadOnlyCollection<MarkupTagElement> elems = getElements();
for (int i = 0; i < elems.count(); i++)
{
if (elems.getByIndex(i).getFullName().equals(tagName)) list.add(elems.getByIndex(i));
}
return list.toReadOnlyCollection();
}
}

View File

@ -5,5 +5,6 @@
<classpathentry combineaccessrules="false" kind="src" path="/net.alcetech.Core"/>
<classpathentry combineaccessrules="false" kind="src" path="/net.alcetech.UniversalEditor.Core"/>
<classpathentry combineaccessrules="false" kind="src" path="/net.alcetech.UserInterface"/>
<classpathentry combineaccessrules="false" kind="src" path="/net.alcetech.UniversalEditor.Plugins.Core"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -1,26 +1,43 @@
package net.alcetech.UniversalEditor;
import javax.swing.UIManager;
import java.io.IOException;
import net.alcetech.Core.*;
import net.alcetech.UniversalEditor.Windows.*;
import net.alcetech.UserInterface.Theming.*;
import net.alcetech.UniversalEditor.Core.Accessors.*;
import net.alcetech.UniversalEditor.Core.IO.*;
import net.alcetech.UniversalEditor.ObjectModels.Markup.*;
import net.alcetech.UniversalEditor.ObjectModels.Markup.Elements.*;
public class Program
{
private static void setTheme(String className)
{
try
{
UIManager.setLookAndFeel(className);
}
catch (Exception ex)
{
System.out.println("unable to initialize look and feel '" + className + "'");
}
}
public static void main(String[] args)
{
setTheme(UIManager.getSystemLookAndFeelClassName());
ThemeManager.Initialize();
FileAccessor fa = new FileAccessor("/var/tmp/test.xml");
/*
Writer writer = new Writer(fa);
try
{
fa.open();
writer.setEndianness(Endianness.BigEndian);
writer.writeSingle(3.141578f);
fa.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
*/
MarkupObjectModel mom = new MarkupObjectModel();
mom.getElementCollection().add(new MarkupTagElement("test", "honduras"));
MainWindow mw = new MainWindow();
mw.setVisible(true);
}