AutodeskNamespace('Viewing.ClassroomTrainning')
Viewing.ClassroomTrainning.AdnPropertyPanel = function (viewer) {
var _panel = this
var _viewer = viewer
var _selectedNodeId = ''
Autodesk.Viewing.Extensions.ViewerPropertyPanel.call(
_panel,
_viewer)
_panel.setNodeProperties = function (nodeId) {
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setNodeProperties.call(
_panel,
nodeId)
_selectedNodeId = nodeId
}
_panel.setProperties = function (properties) {
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setProperties.call(
_panel, properties);
var insTree = _viewer.model.getInstanceTree();
var nodeName = insTree.getNodeName(_selectedNodeId);
$.ajax({
url: '/db/price/'+nodeName,
type: 'GET',
success: function (data) {
console.log('successfull get price: ' + data)
_panel.addProperty(
'Node Price', // property name
data, // property value
'Database Information') // group name
}
})
}
}
Viewing.ClassroomTrainning.AdnPropertyPanel.prototype =
Object.create(
Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype)
Viewing.ClassroomTrainning.AdnPropertyPanel.prototype.constructor =
Viewing.ClassroomTrainning.AdnPropertyPanel
然后,将重载后的属性面板设置为当前的属性面板,修改模型结构的点击事件来使用自定义的属性面板:
Viewing.ClassroomTrainning.Extension.prototype.onGeometryLoaded = function () {
var panel = new Viewing.ClassroomTrainning.AdnPropertyPanel(_viewer)
_viewer.setPropertyPanel(panel)
// Add onClick event for Model Structure Panel
var structruePanel = _viewer.modelstructure
structruePanel.onClick = _self.onModelStructureClick
}
Viewing.ClassroomTrainning.Extension.prototype.onModelStructureClick = function (node, e) {
var propertyPanel = _viewer.getPropertyPanel(true)
if (propertyPanel && propertyPanel.isVisible()) {
propertyPanel.setNodeProperties(node)
}
}
修改属性面板有几种方法,
然后,将重载后的属性面板设置为当前的属性面板,修改模型结构的点击事件来使用自定义的属性面板:
详细可参考代码 https://github.com/JohnOnSoft...