// Metamodel[CommonMetamodel]

// Generate Metanodes

dojo.declare("KodouguNode51", kodougu.domain.KodouguNode, {
    resizeStyle: 0, 
    nodetype: 'Node', 
	canBreakLine: true, 

    render: function(node, renderer, parentGroup) {
        try {
            var nodeGroup = renderer.begin_render(node, null, parentGroup);
            if (node.imageUrl == "") {
                var name = node.element.getText();
                node.width = renderer.calc_text_width(name);
                node.height = 18;
                renderer.set_color([255, 255, 255, 1]);
                renderer.set_pen_color([255, 255, 255, 1]);
                renderer.draw_round_rect(0, 0, node.width, node.height);
                renderer.draw_text(name, 2, 8, "left");
                
                renderer.initColors();

            }
            else {
                renderer.draw_image(node.imageUrl);
            }
            renderer.end_render();
            node.children.forEach(function(child){
                child.render(child, renderer, nodeGroup);
            });
        }
        catch(err) {
            logError(err, "KodouguNode51::render");
            renderer.begin_render(node);
            renderer.draw_error();
            renderer.end_render();
        }
    }
});

dojo.declare("KodouguNode52", kodougu.domain.KodouguNode, {
    resizeStyle: 8, 
    nodetype: 'Node', 
	canBreakLine: true, 

    render: function(node, renderer, parentGroup) {
        try {
            var nodeGroup = renderer.begin_render(node, null, parentGroup);
            if (node.imageUrl == "") {
                var w = node.width;
                var h = node.height;
                var kw = w - 8;
                var path1 = "M " + kw + " 0 L 0 0 0 " + h + " " + w + " " + h + " " + w + " 8 z";
                var path2 = "M " + kw + " 0 L " +  kw +  " 8 " + w + " 8";
                renderer.draw_path(path1, true);
                renderer.draw_path(path2);
                renderer.draw_text(node.element.getDescription(), 4, 6, "left");

            }
            else {
                renderer.draw_image(node.imageUrl);
            }
            renderer.end_render();
            node.children.forEach(function(child){
                child.render(child, renderer, nodeGroup);
            });
        }
        catch(err) {
            logError(err, "KodouguNode52::render");
            renderer.begin_render(node);
            renderer.draw_error();
            renderer.end_render();
        }
    }
});

dojo.declare("KodouguNode53", kodougu.domain.KodouguNode, {
    resizeStyle: 8, 
    nodetype: 'Relationship', 
	canBreakLine: true, 

    render: function(node, renderer, parentGroup) {
        try {
            var nodeGroup = renderer.begin_render(node, null, parentGroup);
            if (node.imageUrl == "") {
                renderer.draw_relationship("dashed");
            }
            else {
                renderer.draw_image(node.imageUrl);
            }
            renderer.end_render();
            node.children.forEach(function(child){
                child.render(child, renderer, nodeGroup);
            });
        }
        catch(err) {
            logError(err, "KodouguNode53::render");
            renderer.begin_render(node);
            renderer.draw_error();
            renderer.end_render();
        }
    }
});


// Generate Metaelements


dojo.declare("KodouguElement54", kodougu.domain.KodouguElement, {
    _typeName: "Text", 
	_generalClasses: [""], 
    _text: null, 
    getText: function() {
        return this._text;
    }, 
    setText: function(argv) {
		this._text = argv;
    },


    
    
    __kodougu_dummy: null
});


dojo.declare("KodouguElement55", kodougu.domain.KodouguElement, {
    _typeName: "Note", 
	_generalClasses: [""], 
    _description: null, 
    getDescription: function() {
        return this._description;
    }, 
    setDescription: function(argv) {
		this._description = argv;
    },


    
    
    __kodougu_dummy: null
});


dojo.declare("KodouguElement56", kodougu.domain.KodouguElement, {
    _typeName: "NoteConnector", 
	_generalClasses: [""], 


    
    
    __kodougu_dummy: null
});


