dear sir,
i have this situation:
function convertVisibility(v) {
switch (v) {
case “public”: return “+”;
case “private”: return “-”;
case “protected”: return “#”;
case “package”: return “~”;
default: return v;
}
}
// the item template for methods
var methodTemplate =
$(go.Panel, "Horizontal",
// method visibility/access
$(go.TextBlock,
{ isMultiline: false, editable: true, width: 12 },
new go.Binding("text", "visibility", convertVisibility)),
// method name, underlined if scope=="class" to indicate static method
$(go.TextBlock,
{ isMultiline: false, editable: true },
new go.Binding("text", "name").makeTwoWay(),
new go.Binding("isUnderline", "scope", function(s) { return s[0] === 'c' })),
// method parameters
$(go.TextBlock, "()",
// this does not permit adding/editing/removing of parameters via inplace edits
new go.Binding("text", "parameters", function(parr) {
var s = "(";
for (var i = 0; i < parr.length; i++) {
var param = parr[i];
if (i > 0) s += ", ";
s += param.name + ": " + param.type;
}
return s + ")";
})),
// method return type, if any
$(go.TextBlock, "",
new go.Binding("text", "type", function(t) { return (t ? ": " : ""); })),
$(go.TextBlock,
{ isMultiline: false, editable: true },
new go.Binding("text", "type").makeTwoWay())
);
// this simple template does not have any buttons to permit adding or
// removing properties or methods, but it could!
myDiagram.nodeTemplateMap.add("Classe",
$(go.Node, "Auto",
$(go.Shape, "Rectangle",{ fill: "lightyellow" }),
$(go.Panel, "Table",
//linea che separa nome dai metodi
$(go.RowColumnDefinition,{ row: 2, separatorStrokeWidth: 1.5, separatorStroke: "black" }),
//PreHeader
$(go.TextBlock,
{
row: 0, alignment: go.Spot.Center,
font: "10pt sans-serif",
isMultiline: false,
editable: true
},
new go.Binding("text", "tipo").makeTwoWay()),
//Nome della Classe
$(go.TextBlock,
{
row: 1, alignment: go.Spot.Center,
font: "bold 12pt sans-serif",
isMultiline: false,
editable: true
},
new go.Binding("text", "name").makeTwoWay()),
//Scritta che viene mostrata quando il pannello è ridotto
$(go.TextBlock, "Methods",
{ row: 2, font: "italic 10pt sans-serif" },
new go.Binding("visible", "visible", function(v) { return !v; }).ofObject("METHODS")),
// methods
$(go.Panel, "Vertical", { name: "METHODS" },
new go.Binding("itemArray", "methods"),
{
row: 2, margin: 3, stretch: go.GraphObject.Fill,
defaultAlignment: go.Spot.Left, background: "lightyellow",
itemTemplate: methodTemplate
},
new go.Binding("itemArray", "methods").makeTwoWay(),
new go.Binding("itemArray", "methodsList").makeTwoWay()
),
$("PanelExpanderButton", "METHODS",
{ row: 2, visible: false, column: 1, alignment: go.Spot.TopRight },
new go.Binding("visible", "methods", function(arr) { return arr.length > 0; })
),
$("Button",
{ row:3, click: addMetodo},
$(go.TextBlock, "Aggiungi metodo"))
)
)
);
function addMetodo(??) {
}
i am not able to write the function addMetodo, because i have not idea to give the function the correct obj for add an items… can you help me?