You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.0 KiB
62 lines
2.0 KiB
/*
|
|
* Copyright (C) 1998-2019 by Northwoods Software Corporation
|
|
* All Rights Reserved.
|
|
*
|
|
* FloorplanPalette Class
|
|
* A FloorplanPalette is a Palette with special rules
|
|
*/
|
|
|
|
import * as go from '../../../release/go';
|
|
import { Floorplan } from './Floorplan';
|
|
|
|
export class FloorplanPalette extends go.Palette {
|
|
|
|
constructor(div: HTMLDivElement | string, floorplan: Floorplan/*, nodeDataArray: Array<any>*/) {
|
|
super(div);
|
|
|
|
const $ = go.GraphObject.make;
|
|
this.contentAlignment = go.Spot.Center;
|
|
this.nodeTemplateMap = floorplan.nodeTemplateMap;
|
|
|
|
// palette also contains "floor" nodes -- nodes of particular floor types that can be dragged and dropped into wall-enclosed areas to create Room Nodes
|
|
this.nodeTemplateMap.add('FloorNode',
|
|
$(go.Node, 'Auto',
|
|
$(go.Shape, { fill: makeFloorBrush(null), desiredSize: new go.Size(100, 100) },
|
|
new go.Binding('fill', 'floorImage', function(src) {
|
|
return makeFloorBrush(src);
|
|
})
|
|
),
|
|
$(go.TextBlock, 'Drag me out to a wall-enclosed space to create a room', { desiredSize: new go.Size(90, NaN) },
|
|
new go.Binding('visible', '', function(node: go.Node) {
|
|
if (node.diagram instanceof go.Palette) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}).ofObject()
|
|
)
|
|
)
|
|
);
|
|
|
|
this.toolManager.contextMenuTool.isEnabled = false;
|
|
|
|
// add this new FloorplanPalette to the "palettes" field of its associated Floorplan
|
|
floorplan.palettes.push(this);
|
|
|
|
} // end FloorplanPalette constructor
|
|
|
|
}
|
|
|
|
/**
|
|
* Make a Pattern brush for floor nodes
|
|
* @param src The relative path of the image to use for the pattern brush. If this is not specified, a default path is tried
|
|
*/
|
|
function makeFloorBrush(src: string | null) {
|
|
const $ = go.GraphObject.make;
|
|
if (src === null || src === undefined) { src = 'images/textures/floor1.jpg'; }
|
|
const floorImage = new Image();
|
|
floorImage.src = src;
|
|
return $(go.Brush, 'Pattern', { pattern: floorImage });
|
|
}
|
|
|
|
// export = FloorplanPalette;
|