diff --git a/Java/Configuration/Application.upl b/Java/Configuration/Application.upl
new file mode 100644
index 00000000..1e09ee88
Binary files /dev/null and b/Java/Configuration/Application.upl differ
diff --git a/Java/Configuration/Application.xml b/Java/Configuration/Application.xml
new file mode 100644
index 00000000..fce61a2a
--- /dev/null
+++ b/Java/Configuration/Application.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+ C:\Temp\UETEST\uetest.farc
+
+
+
+
+
\ No newline at end of file
diff --git a/Java/Configuration/CommandBars.xml b/Java/Configuration/CommandBars.xml
new file mode 100644
index 00000000..8e2e7703
--- /dev/null
+++ b/Java/Configuration/CommandBars.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java/Configuration/Commands.xml b/Java/Configuration/Commands.xml
new file mode 100644
index 00000000..16ea1f17
--- /dev/null
+++ b/Java/Configuration/Commands.xml
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java/Configuration/MainMenu.xml b/Java/Configuration/MainMenu.xml
new file mode 100644
index 00000000..5275d841
--- /dev/null
+++ b/Java/Configuration/MainMenu.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java/Configuration/ObjectModels.xml b/Java/Configuration/ObjectModels.xml
new file mode 100644
index 00000000..2f96c0e7
--- /dev/null
+++ b/Java/Configuration/ObjectModels.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java/Configuration/SplashScreen.upl b/Java/Configuration/SplashScreen.upl
new file mode 100644
index 00000000..9d7f7552
Binary files /dev/null and b/Java/Configuration/SplashScreen.upl differ
diff --git a/Java/Configuration/StartPage.xml b/Java/Configuration/StartPage.xml
new file mode 100644
index 00000000..6aeb42df
--- /dev/null
+++ b/Java/Configuration/StartPage.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Java/net.alcetech.UniversalEditor/Themes/Default/Icons/16x16/MainIcon.png b/Java/Themes/Default/Icons/16x16/MainIcon.png
similarity index 100%
rename from Java/net.alcetech.UniversalEditor/Themes/Default/Icons/16x16/MainIcon.png
rename to Java/Themes/Default/Icons/16x16/MainIcon.png
diff --git a/Java/net.alcetech.UniversalEditor/Themes/Default/Icons/32x32/MainIcon.png b/Java/Themes/Default/Icons/32x32/MainIcon.png
similarity index 100%
rename from Java/net.alcetech.UniversalEditor/Themes/Default/Icons/32x32/MainIcon.png
rename to Java/Themes/Default/Icons/32x32/MainIcon.png
diff --git a/Java/net.alcetech.UniversalEditor/Themes/Default/Icons/scalable/MainIcon.ico b/Java/Themes/Default/Icons/scalable/MainIcon.ico
similarity index 100%
rename from Java/net.alcetech.UniversalEditor/Themes/Default/Icons/scalable/MainIcon.ico
rename to Java/Themes/Default/Icons/scalable/MainIcon.ico
diff --git a/Java/Themes/Default/Theme.xml b/Java/Themes/Default/Theme.xml
new file mode 100644
index 00000000..d10bce4f
--- /dev/null
+++ b/Java/Themes/Default/Theme.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessor.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessor.java
index 8164f613..f60752c4 100644
--- a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessor.java
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessor.java
@@ -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);
+ }
}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessors/FileAccessor.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessors/FileAccessor.java
new file mode 100644
index 00000000..ea0a77df
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/Accessors/FileAccessor.java
@@ -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);
+ }
+}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/DataFormat.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/DataFormat.java
new file mode 100644
index 00000000..c046fc50
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/DataFormat.java
@@ -0,0 +1,9 @@
+package net.alcetech.UniversalEditor.Core;
+
+public abstract class DataFormat
+{
+ public DataFormatReference getDataFormatReference()
+ {
+ return new DataFormatReference(this.getClass().getName());
+ }
+}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/DataFormatReference.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/DataFormatReference.java
new file mode 100644
index 00000000..688f2783
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/DataFormatReference.java
@@ -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 _supportedObjectModelCollection = new Collection();
+ public Collection getSupportedObjectModelCollection() { return _supportedObjectModelCollection; }
+}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/BitConverter.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/BitConverter.java
new file mode 100644
index 00000000..10c45a0e
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/BitConverter.java
@@ -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)
+ };
+ */
+ }
+}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Reader.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Reader.java
index 83913000..e9334412 100644
--- a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Reader.java
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Reader.java
@@ -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;
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/SeekOrigin.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/SeekOrigin.java
new file mode 100644
index 00000000..ad8c6aab
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/SeekOrigin.java
@@ -0,0 +1,8 @@
+package net.alcetech.UniversalEditor.Core.IO;
+
+public enum SeekOrigin
+{
+ Begin,
+ Current,
+ End
+}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Writer.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Writer.java
index 2ce2dc86..9c5f7cf5 100644
--- a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Writer.java
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/IO/Writer.java
@@ -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);
+ }
+
}
diff --git a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/ObjectModelReference.java b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/ObjectModelReference.java
index 334a53cd..259346b6 100644
--- a/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/ObjectModelReference.java
+++ b/Java/net.alcetech.UniversalEditor.Core/src/net/alcetech/UniversalEditor/Core/ObjectModelReference.java
@@ -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, ObjectModelReference> _omrsByClass = new Dictionary, 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)
{
diff --git a/Java/net.alcetech.UniversalEditor.Plugins.Core/.classpath b/Java/net.alcetech.UniversalEditor.Plugins.Core/.classpath
new file mode 100644
index 00000000..af8d7fa2
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Plugins.Core/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/DataFormats/Markup/XML/XMLDataFormat.java b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/DataFormats/Markup/XML/XMLDataFormat.java
new file mode 100644
index 00000000..e5b1bfbc
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/DataFormats/Markup/XML/XMLDataFormat.java
@@ -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;
+ }
+}
diff --git a/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/Elements/MarkupTagElement.java b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/Elements/MarkupTagElement.java
new file mode 100644
index 00000000..6feea9be
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/Elements/MarkupTagElement.java
@@ -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 = "";
+ }
+}
diff --git a/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupElement.java b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupElement.java
new file mode 100644
index 00000000..642ea4c8
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupElement.java
@@ -0,0 +1,5 @@
+package net.alcetech.UniversalEditor.ObjectModels.Markup;
+
+public abstract class MarkupElement
+{
+}
diff --git a/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupElementCollection.java b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupElementCollection.java
new file mode 100644
index 00000000..4476b5d6
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupElementCollection.java
@@ -0,0 +1,8 @@
+package net.alcetech.UniversalEditor.ObjectModels.Markup;
+
+import net.alcetech.Core.Collections.ObjectModel.Collection;
+
+public class MarkupElementCollection extends Collection
+{
+
+}
diff --git a/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupObjectModel.java b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupObjectModel.java
new file mode 100644
index 00000000..b784c580
--- /dev/null
+++ b/Java/net.alcetech.UniversalEditor.Plugins.Core/src/net/alcetech/UniversalEditor/ObjectModels/Markup/MarkupObjectModel.java
@@ -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 getElements()
+ {
+ Collection list = new Collection();
+ 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 getElementsByTagName(String tagName)
+ {
+ Collection list = new Collection();
+ ReadOnlyCollection 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();
+ }
+}
diff --git a/Java/net.alcetech.UniversalEditor/.classpath b/Java/net.alcetech.UniversalEditor/.classpath
index 8c3d4b01..f144c22b 100644
--- a/Java/net.alcetech.UniversalEditor/.classpath
+++ b/Java/net.alcetech.UniversalEditor/.classpath
@@ -5,5 +5,6 @@
+
diff --git a/Java/net.alcetech.UniversalEditor/src/net/alcetech/UniversalEditor/Program.java b/Java/net.alcetech.UniversalEditor/src/net/alcetech/UniversalEditor/Program.java
index aa4ebc93..0b2e9c2a 100644
--- a/Java/net.alcetech.UniversalEditor/src/net/alcetech/UniversalEditor/Program.java
+++ b/Java/net.alcetech.UniversalEditor/src/net/alcetech/UniversalEditor/Program.java
@@ -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);
}