Add TextContent
This commit is contained in:
parent
ad3035140e
commit
ad637bae92
|
@ -4,5 +4,16 @@ namespace Ooui
|
||||||
{
|
{
|
||||||
public class Button : FormControl
|
public class Button : FormControl
|
||||||
{
|
{
|
||||||
|
string typ = "submit";
|
||||||
|
public string Type {
|
||||||
|
get => typ;
|
||||||
|
set => SetProperty (ref typ, value, "type");
|
||||||
|
}
|
||||||
|
|
||||||
|
string val = "";
|
||||||
|
public string Value {
|
||||||
|
get => val;
|
||||||
|
set => SetProperty (ref val, value, "value");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,25 +24,25 @@ function msgCreate (m) {
|
||||||
if (tagName !== "text")
|
if (tagName !== "text")
|
||||||
node.id = id;
|
node.id = id;
|
||||||
nodes[id] = node;
|
nodes[id] = node;
|
||||||
console.log ("Created Node", node);
|
console.log ("Created node", node);
|
||||||
}
|
}
|
||||||
|
|
||||||
function msgSet (m) {
|
function msgSet (m) {
|
||||||
const id = m.id;
|
const id = m.id;
|
||||||
const node = getNode (id);
|
const node = getNode (id);
|
||||||
if (!node) {
|
if (!node) {
|
||||||
console.error ("Unknown Node Id", m);
|
console.error ("Unknown node id", m);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
node[m.k] = m.v;
|
node[m.k] = m.v;
|
||||||
console.log ("Set Property", node, m.k, m.v);
|
console.log ("Set property", node, m.k, m.v);
|
||||||
}
|
}
|
||||||
|
|
||||||
function msgCall (m) {
|
function msgCall (m) {
|
||||||
const id = m.id;
|
const id = m.id;
|
||||||
const node = getNode (id);
|
const node = getNode (id);
|
||||||
if (!node) {
|
if (!node) {
|
||||||
console.error ("Unknown Node Id", m);
|
console.error ("Unknown node id", m);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const f = node[m.k];
|
const f = node[m.k];
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ooui
|
||||||
|
{
|
||||||
|
public class Div : Element
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,7 +7,19 @@ namespace Ooui
|
||||||
string className = "";
|
string className = "";
|
||||||
public string ClassName {
|
public string ClassName {
|
||||||
get => className;
|
get => className;
|
||||||
set => SetProperty (ref className, "className", value);
|
set => SetProperty (ref className, value, "className");
|
||||||
|
}
|
||||||
|
|
||||||
|
string title = "";
|
||||||
|
public string Title {
|
||||||
|
get => title;
|
||||||
|
set => SetProperty (ref title, value, "title");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hidden = false;
|
||||||
|
public bool IsHidden {
|
||||||
|
get => hidden;
|
||||||
|
set => SetProperty (ref hidden, value, "hidden");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,28 @@ namespace Ooui
|
||||||
[JsonProperty("k")]
|
[JsonProperty("k")]
|
||||||
public string Key = "";
|
public string Key = "";
|
||||||
|
|
||||||
|
object v = null;
|
||||||
[JsonProperty("v")]
|
[JsonProperty("v")]
|
||||||
public object Value = "";
|
public object Value {
|
||||||
|
get => v;
|
||||||
|
set => v = FixupValue (value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static object FixupValue (object v)
|
||||||
|
{
|
||||||
|
if (v is Array a) {
|
||||||
|
var na = new object[a.Length];
|
||||||
|
for (var i = 0; i < a.Length; i++) {
|
||||||
|
na[i] = FixupValue (a.GetValue (i));
|
||||||
|
}
|
||||||
|
return na;
|
||||||
|
}
|
||||||
|
else if (v is Node n) {
|
||||||
|
return "\u2999" + n.Id;
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static long idCounter = 0;
|
static long idCounter = 0;
|
||||||
static long GenerateId ()
|
static long GenerateId ()
|
||||||
|
|
16
Ooui/Node.cs
16
Ooui/Node.cs
|
@ -21,6 +21,13 @@ namespace Ooui
|
||||||
.Concat (from c in children from m in c.AllMessages select m)
|
.Concat (from c in children from m in c.AllMessages select m)
|
||||||
.OrderBy (x => x.Id);
|
.OrderBy (x => x.Id);
|
||||||
|
|
||||||
|
public string TextContent {
|
||||||
|
get { return String.Join ("", from c in children select c.TextContent); }
|
||||||
|
set {
|
||||||
|
ReplaceAll (new Text (value ?? ""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Node ()
|
public Node ()
|
||||||
{
|
{
|
||||||
Mapping = Mapping.Get (GetType ());
|
Mapping = Mapping.Get (GetType ());
|
||||||
|
@ -61,6 +68,14 @@ namespace Ooui
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void ReplaceAll (Node newNode)
|
||||||
|
{
|
||||||
|
var toRemove = new List<Node> (children);
|
||||||
|
foreach (var c in toRemove)
|
||||||
|
RemoveChild (c);
|
||||||
|
InsertBefore (newNode, null);
|
||||||
|
}
|
||||||
|
|
||||||
protected void Log (Message message)
|
protected void Log (Message message)
|
||||||
{
|
{
|
||||||
messages.Add (message);
|
messages.Add (message);
|
||||||
|
@ -100,6 +115,7 @@ namespace Ooui
|
||||||
MessageType = MessageType.Call,
|
MessageType = MessageType.Call,
|
||||||
TargetId = Id,
|
TargetId = Id,
|
||||||
Key = methodName,
|
Key = methodName,
|
||||||
|
Value = args,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@ namespace Ooui
|
||||||
TargetId = "document.body",
|
TargetId = "document.body",
|
||||||
MessageType = MessageType.Call,
|
MessageType = MessageType.Call,
|
||||||
Key = "appendChild",
|
Key = "appendChild",
|
||||||
Value = new[] { "\u2999" + element.Id },
|
Value = new[] { element },
|
||||||
}, token);
|
}, token);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ooui
|
||||||
|
{
|
||||||
|
public class Text : Node
|
||||||
|
{
|
||||||
|
string data = "";
|
||||||
|
public string Data {
|
||||||
|
get => data;
|
||||||
|
set => SetProperty (ref data, value ?? "", "data");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Text ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public Text (string text)
|
||||||
|
{
|
||||||
|
Data = text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,8 +8,12 @@ namespace Samples
|
||||||
static int Main (string[] args)
|
static int Main (string[] args)
|
||||||
{
|
{
|
||||||
var server = new Server ();
|
var server = new Server ();
|
||||||
var button = new Button();
|
var button = new Button() {
|
||||||
button.Name = "TestButton";
|
Title = "The best button",
|
||||||
|
Name = "TestButton",
|
||||||
|
Value = "Click Me",
|
||||||
|
TextContent = "I am a button, click me!"
|
||||||
|
};
|
||||||
server.Publish ("/button", button);
|
server.Publish ("/button", button);
|
||||||
server.RunAsync ("http://*:8080/").Wait ();
|
server.RunAsync ("http://*:8080/").Wait ();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue