aboutsummaryrefslogtreecommitdiff
path: root/src/Main.tsx
blob: 2770ccff24180850f4c7a76a7cfaa1cf2bda0ab8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import "./Main.scss";
import "normalize.css"
import { NodeCollectionStore } from './stores/NodeCollectionStore';
import { StaticTextNodeStore } from './stores/StaticTextNodeStore';
import { VideoNodeStore } from './stores/VideoNodeStore';
import { Key, KeyStore as KS, KeyStore } from './fields/Key';
import { NumberField } from './fields/NumberField';
import { Document } from './fields/Document';
import { configure, runInAction, action } from 'mobx';
import { NodeStore } from './stores/NodeStore';
import { Documents } from './documents/Documents';
import { DocumentDecorations } from './DocumentDecorations';
import { CollectionFreeFormView } from './views/collections/CollectionFreeFormView';
import { ListField } from './fields/ListField';
import { DocumentView } from './views/nodes/DocumentView';
import { ContextMenu } from './views/ContextMenu';

configure({
    enforceActions: "observed"
});

const mainNodeCollection = new Array<Document>();
let mainContainer = Documents.DockDocument(mainNodeCollection, {
    x: 0, y: 0, width: window.screen.width, height: window.screen.height, title: "main container"
})

window.addEventListener("drop", function (e) {
    e.preventDefault();
}, false)
window.addEventListener("dragover", function (e) {
    e.preventDefault();
}, false)
document.addEventListener("pointerdown", action(function (e: PointerEvent) {
    if (!ContextMenu.Instance.intersects(e.pageX, e.pageY)) {
        ContextMenu.Instance.clearItems()
    }
}), true)


//runInAction(() => 
{
    let doc1 = Documents.TextDocument("Hello world", { title: "hello" });
    let doc2 = doc1.MakeDelegate();
    doc2.SetField(KS.X, new NumberField(150));
    doc2.SetField(KS.Y, new NumberField(20));
    let doc3 = Documents.ImageDocument("https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg", {
        x: 450, y: 500, title: "cat 1"
    });
    let docset = new Array<Document>(doc1, doc2, doc3);
    let doc4 = Documents.CollectionDocument(docset, {
        x: 0, y: 400, title: "mini collection"
    });
    let doc5 = Documents.ImageDocument("https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg", {
        x: 650, y: 500, width: 600, height: 600, title: "cat 2"
    });
    let docset2 = new Array<Document>(doc4, doc1, doc3);
    let doc6 = Documents.CollectionDocument(docset2, {
        x: 350, y: 100, width: 600, height: 600, title: "docking collection"
    });
    let mainNodes = null;// mainContainer.GetFieldT(KeyStore.Data, ListField);
    if (!mainNodes) {
        mainNodes = new ListField<Document>();
    }
    // mainNodes.Data.push(doc1);
    // mainNodes.Data.push(doc2);
    mainNodes.Data.push(doc4);
    // mainNodes.Data.push(doc3);
    mainNodes.Data.push(doc5);
    // mainNodes.Data.push(doc1);
    //mainNodes.Data.push(doc2);
    mainNodes.Data.push(doc6);
    mainContainer.SetField(KeyStore.Data, mainNodes);
}
//);

ReactDOM.render((
    <div style={{ display: "grid" }}>
        <DocumentView Document={mainContainer} ContainingCollectionView={undefined} ContainingDocumentView={undefined} />
        <DocumentDecorations />
        <ContextMenu />
    </div>),
    document.getElementById('root'));