mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-02-16 02:30:51 +00:00
108 lines
2.6 KiB
JavaScript
108 lines
2.6 KiB
JavaScript
/**
|
|
* Graph drawer.
|
|
*/
|
|
|
|
// Common text position
|
|
const CommonTextCenter = 0,
|
|
CommonTextUp = 1;
|
|
|
|
// Fonts
|
|
const DefaultFont = "px sans-serif",
|
|
DefaultMainTextFontSize = 13,
|
|
TopTextFontSizeDelta = -2; // 2 less then main.
|
|
|
|
|
|
function BaseVertexStyle()
|
|
{
|
|
this.baseStyles = [];
|
|
}
|
|
|
|
BaseVertexStyle.prototype.GetStyle = function (baseStyle, object)
|
|
{
|
|
this.baseStyles.forEach(function(element) {
|
|
var styleObject = globalApplication.GetStyle("vertex", element, object);
|
|
baseStyle = styleObject.GetStyle(baseStyle, object);
|
|
});
|
|
|
|
if (this.hasOwnProperty('lineWidth'))
|
|
baseStyle.lineWidth = this.lineWidth;
|
|
if (this.hasOwnProperty('strokeStyle'))
|
|
baseStyle.strokeStyle = this.strokeStyle;
|
|
if (this.hasOwnProperty('fillStyle'))
|
|
baseStyle.fillStyle = this.fillStyle;
|
|
if (this.hasOwnProperty('mainTextColor'))
|
|
baseStyle.mainTextColor = this.mainTextColor;
|
|
if (this.hasOwnProperty('shape'))
|
|
baseStyle.shape = this.shape;
|
|
if (this.hasOwnProperty('upTextColor'))
|
|
baseStyle.upTextColor = this.upTextColor;
|
|
if (this.hasOwnProperty('commonTextPosition'))
|
|
baseStyle.commonTextPosition = this.commonTextPosition;
|
|
if (this.hasOwnProperty('mainTextFontSize'))
|
|
baseStyle.mainTextFontSize = this.mainTextFontSize;
|
|
|
|
baseStyle.lineWidth = parseInt(baseStyle.lineWidth);
|
|
|
|
return this.FixNewFields(baseStyle);
|
|
}
|
|
|
|
BaseVertexStyle.prototype.FixNewFields = function (style)
|
|
{
|
|
if (!style.hasOwnProperty('shape'))
|
|
style.shape = VertexCircleShape;
|
|
|
|
if (!style.hasOwnProperty('commonTextPosition'))
|
|
style.commonTextPosition = CommonTextCenter;
|
|
|
|
if (!style.hasOwnProperty('mainTextFontSize'))
|
|
style.mainTextFontSize = DefaultMainTextFontSize;
|
|
|
|
return style;
|
|
}
|
|
|
|
BaseVertexStyle.prototype.Clear = function ()
|
|
{
|
|
delete this.lineWidth;
|
|
delete this.strokeStyle;
|
|
delete this.fillStyle;
|
|
delete this.mainTextColor;
|
|
delete this.shape;
|
|
delete this.upTextColor;
|
|
delete this.commonTextPosition;
|
|
delete this.lineWidth;
|
|
delete this.mainTextFontSize;
|
|
}
|
|
|
|
BaseVertexStyle.prototype.ShouldLoad = function (field)
|
|
{
|
|
return field != "baseStyles";
|
|
}
|
|
|
|
function CommonPrintVertexStyle()
|
|
{
|
|
BaseVertexStyle.apply(this, arguments);
|
|
|
|
this.strokeStyle = '#000000';
|
|
this.fillStyle = '#FFFFFF';
|
|
this.mainTextColor = '#000000';
|
|
|
|
this.baseStyles.push("common");
|
|
}
|
|
|
|
CommonPrintVertexStyle.prototype = Object.create(BaseVertexStyle.prototype);
|
|
|
|
|
|
function SelectedPrintVertexStyle()
|
|
{
|
|
BaseVertexStyle.apply(this, arguments);
|
|
|
|
this.strokeStyle = '#000000';
|
|
this.mainTextColor = '#000000';
|
|
this.fillStyle = '#AAAAAA';
|
|
|
|
this.baseStyles.push("printed");
|
|
}
|
|
|
|
SelectedPrintVertexStyle.prototype = Object.create(BaseVertexStyle.prototype);
|
|
|