/** * UI渲染模块 * @type {module} */ import { escapeHtml } from './utils.js'; import { renderEnvironmentSection } from './environment-section.js'; import { renderModelGroupsSection } from './model-groups.js'; import { renderServicesSection } from './services.js'; import { renderConsoleAndLogSection } from './console-log.js'; /** * 渲染基本UI * @param {HTMLElement} component - 组件实例 */ export function renderBasicUI(component) { component.shadowRoot.innerHTML = `
${escapeHtml(component.xmlContent)}`; return; } // 创建可视化编辑器 contentElement.innerHTML = ''; renderVisualEditor(component, contentElement, component.xmlDoc); } catch (error) { contentElement.innerHTML = `
${escapeHtml(component.xmlContent)}`; } } /** * 渲染可视化编辑界面 * @param {HTMLElement} component - 组件实例 * @param {HTMLElement} container - 容器元素 * @param {Document} xmlDoc - XML文档 */ export function renderVisualEditor(component, container, xmlDoc) { // 清空容器 container.innerHTML = ''; // 创建编辑器容器 const visualEditor = document.createElement('div'); visualEditor.className = 'visual-editor'; // 获取根元素 const rootElement = xmlDoc.documentElement; // 只处理Scenario根元素 if (rootElement.nodeName === 'Scenario') { // 创建模态对话框容器 const modalContainer = document.createElement('div'); modalContainer.className = 'modal'; modalContainer.id = 'propertyModal'; container.appendChild(modalContainer); // 渲染Environment部分 renderEnvironmentSection(component, visualEditor, rootElement); // 渲染Console输出和日志部分 renderConsoleAndLogSection(component, visualEditor, rootElement); // 渲染ModelGroup部分 renderModelGroupsSection(component, visualEditor, rootElement); // 渲染Services部分 renderServicesSection(component, visualEditor, rootElement); } else { // 不是Scenario根元素,显示错误信息 visualEditor.innerHTML = `