Quantcast
Channel: GoJS - Northwoods Software
Viewing all articles
Browse latest Browse all 6977

Problem with resize and minSize width

$
0
0

@jpreston wrote:

I think I may have discovered a bug with the minSize and textBlocks. We are making a "notes" node type in which people can type in a note and move it and resize it anywhere on their map.
When I set the minSize on the Node element, I am not able to set the textBlock to a smaller width than the Node's set width. The height setting doesn't seem to have an issue, only width. Is this a bug in the framework?

Here's a gif of the issue:

Here's the code for the Node type. Changing the Node's minSize width to "NaN" fixes the issue.


noteNodeTemplate = _self._go(go.Node, "Spot",{
		isLayoutPositioned: false,
		layerName: "Notes",
		movable: false,
		selectionAdorned: false,
		location: new go.Point( -50, -50 ),
		minSize: new go.Size( 270, 200 ),

        resizable: true,
        resizeAdornmentTemplate:
            _self._go(go.Adornment, "Spot",
                _self._go( go.Placeholder ),
                _self._go( go.Panel, {
    				alignment: new go.Spot( 1, 1, -15, -15 ),
    				cursor: "pointer",
    				name: "resizeHandle"
    			},
    			_self._go(go.Shape, {
    				alignment: new go.Spot( 0.5, 0.5 ),
    				height: 30, width: 30,
    				fill: "transparent",
    				strokeWidth: 0
    				}
                ),
    			_self._go( go.Shape, {
    				strokeWidth: 0, fill: "#8a8a8a",
    				alignment: new go.Spot( 0.5, 0.5 ),
    				geometryString: go.Geometry.fillPath( "M14.47 13.06 10.94 9.53 9.53 8.12 11.64 6 6.01 6.01 6 11.64 8.12 9.53 9.53 10.94 13.06 14.47 14.47 15.88 12.36 17.99 17.99 17.99 18 12.36 15.88 14.47 14.47 13.06" )
                })
			)
        )
	},

	_self._go(go.Shape, {
		alignment: new go.Spot( 0.5, 0.5 ),
		name: "BODY",
		height: 100, width: 160,
		fill: "#ffffff",
		strokeWidth: 2,
		strokeDashArray: [6, 4],
		stroke: "#8a8a8a"
		},
		new go.Binding( "height", "height", function( val, obj ) {
			return ( +val - 3 );
		}),
		new go.Binding( "width", "width", function( val, obj ) {
			return ( +val - 3 );
		})
    ),


    _self._go(go.TextBlock, {
	    alignment: new go.Spot(0, 0, 20, 10),
		name: "textBlock",
		stroke: '#8a8a8a',
		cursor: 'text',
		background: 'blue',
		text: "test this text",
		font: '16px sans-serif',
		editable: true,
		textEdited: function( obj, prevText, newText ) {

			if ( newText == "" ) {
				obj.text = $l( 'Body of the note goes here' );
			}
		}},
		new go.Binding( "height", "height", function( val, obj ) {
			var currAlignment = obj.alignment;

			obj.alignment = new go.Spot( currAlignment.x, currAlignment.y, currAlignment.offsetX, ( val / 2 ) );

			return ( +val - 60 ); // subtract to provide padding
		}),
		new go.Binding( "width", "width", function( val, obj ) {
			var currAlignment = obj.alignment;

			obj.alignment = new go.Spot( currAlignment.x, currAlignment.y, ( val / 2 ), currAlignment.offsetY );

			return ( +val - 20 ); // subtract to provide padding
		})

    ),

	new go.Binding( "height", "height").makeTwoWay(),
	new go.Binding( "width", "width").makeTwoWay(),
	new go.Binding("location", "_location", go.Point.parse ).makeTwoWay( go.Point.stringify )
);

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 6977

Latest Images

Trending Articles



Latest Images