NavisworksTransport/.kiro/specs/dockpane-migration/tasks.md

6.5 KiB

Implementation Plan

  • 1. 创建DockPanePlugin基础架构

    • 修改Main类继承DockPanePlugin而不是AddInPlugin
    • 更新插件属性为[Plugin]和[DockPanePlugin]
    • 实现CreateControlPane()和DestroyControlPane()方法
    • 创建ElementHost托管机制
    • Requirements: 1.1, 1.2, 1.3, 1.4
  • 2. 创建WPF用户控件框架

  • 2.1 创建主WPF用户控件LogisticsControlPanel

    • 创建LogisticsControlPanel.xaml和.xaml.cs文件

    • 实现基本的TabControl布局结构

    • 添加底部操作按钮面板

    • 实现Cleanup()方法用于资源清理

    • Requirements: 2.1, 2.2, 2.3

  • 2.2 创建MVVM基础架构

    • 实现ViewModelBase基类支持INotifyPropertyChanged

    • 创建LogisticsControlViewModel主视图模型

    • 实现ThreadSafeHelper线程安全辅助类

    • 创建数据模型类LogisticsModel和PathRoute

    • Requirements: 2.2, 2.4, 5.2

  • 2.3 创建子视图用户控件

    • 创建ModelSettingsView.xaml用户控件
    • 创建PathEditingView.xaml用户控件
    • 创建AnimationControlView.xaml用户控件
    • 创建SystemManagementView.xaml用户控件
    • Requirements: 2.1, 2.3, 7.1, 7.2
  • 3. 迁移模型设置功能到WPF

  • 3.1 实现类别属性设置界面

    • 将类别下拉框转换为WPF ComboBox
    • 实现数据绑定连接CategoryAttributeManager
    • 添加选择提示和状态显示标签
    • 测试类别选择功能
    • Requirements: 3.1, 3.2, 7.3, 8.2
  • 3.2 实现物流模型列表界面

    • 将ListView转换为WPF ListView
    • 实现ObservableCollection数据绑定
    • 添加模型属性编辑功能
    • 实现选择同步机制
    • Requirements: 3.1, 3.2, 7.3, 8.1
  • 3.3 实现可见性控制界面

    • 转换可见性控制按钮为WPF Button
    • 实现Command模式处理按钮点击
    • 连接VisibilityManager业务逻辑
    • 添加统计信息显示
    • Requirements: 3.1, 3.2, 7.4, 8.2
  • 4. 迁移路径编辑功能到WPF

  • 4.1 实现路径列表管理界面

    • 转换路径列表ListView为WPF版本
    • 实现路径创建、删除、重命名功能
    • 连接PathPlanningManager业务逻辑
    • 添加路径状态显示
    • Requirements: 3.3, 7.3, 8.1, 8.2
  • 4.2 实现当前路径编辑界面

    • 转换路径点列表为WPF ListView
    • 实现路径点添加、删除、编辑功能
    • 添加3D交互支持
    • 实现路径可视化更新
    • Requirements: 3.3, 7.4, 8.1, 8.3
  • 4.3 实现路径文件管理界面

    • 添加路径导入导出按钮
    • 实现文件对话框集成
    • 连接PathDataManager文件操作
    • 添加操作状态反馈
    • Requirements: 3.3, 8.1
  • 5. 迁移动画控制功能到WPF

  • 5.1 实现动画参数设置界面

    • 转换动画参数控件为WPF版本
    • 实现数据绑定和验证
    • 连接LogisticsAnimationManager
    • 添加参数预览功能
    • Requirements: 3.4, 7.3, 8.1
  • 5.2 实现播放控制界面

    • 转换播放控制按钮为WPF版本
    • 实现进度条和状态显示
    • 添加播放速度控制
    • 连接动画播放逻辑
    • Requirements: 3.4, 7.4, 8.2
  • 5.3 实现碰撞检测界面

    • 转换碰撞检测控件为WPF版本
    • 连接ClashDetectiveIntegration
    • 实现碰撞结果显示
    • 添加碰撞报告功能
    • Requirements: 3.4, 8.1, 8.2
  • 6. 迁移系统管理功能到WPF

  • 6.1 实现模型分层拆分界面

    • 转换ModelSplitterDialog为WPF版本
    • 实现楼层选择和属性筛选
    • 连接ModelSplitterManager业务逻辑
    • 添加拆分进度显示
    • Requirements: 3.5, 7.1, 8.1
  • 6.2 实现日志管理界面

    • 创建日志查看和管理控件
    • 实现日志级别筛选
    • 添加日志导出功能
    • 连接LogManager
    • Requirements: 3.5, 7.3
  • 6.3 实现插件设置界面

    • 创建设置选项控件
    • 实现设置保存和加载
    • 添加设置验证
    • 实现设置重置功能
    • Requirements: 3.5, 7.3
  • 7. 实现生命周期管理和资源清理

  • 7.1 实现插件生命周期管理

    • 完善CreateControlPane()方法
    • 实现DestroyControlPane()资源清理
    • 添加重复创建保护机制
    • 测试面板创建和销毁
    • Requirements: 4.1, 4.2, 4.3, 4.4
  • 7.2 实现事件订阅管理

    • 创建事件订阅管理器
    • 实现自动取消订阅机制
    • 添加事件处理异常保护
    • 测试事件生命周期
    • Requirements: 4.3, 4.4, 8.2
  • 7.3 实现ElementHost集成

    • 完善ElementHost配置
    • 实现WPF与WinForms的交互
    • 添加大小调整处理
    • 测试跨技术栈事件传递
    • Requirements: 5.1, 5.2, 5.3, 5.4
  • 8. 实现错误处理和线程安全

  • 8.1 实现WPF异常处理

    • 添加Dispatcher.UnhandledException处理
    • 实现用户友好的错误提示
    • 连接GlobalExceptionHandler
    • 测试异常恢复机制
    • Requirements: 4.4, 8.1, 8.2
  • 8.2 实现线程安全机制

    • 完善ThreadSafeHelper实现
    • 确保Navisworks API调用线程安全
    • 实现UI更新线程调度
    • 测试跨线程操作
    • Requirements: 5.2, 8.1, 8.3, 8.4
  • 8.3 实现内存管理

    • 添加IDisposable实现
    • 实现WeakReference长期引用
    • 添加内存泄漏检测
    • 优化大对象处理
    • Requirements: 4.4, 7.3
  • 9. 更新插件注册和部署配置

  • 9.1 更新插件属性和注册

    • 修改Plugin属性配置
    • 更新DisplayName和ToolTip
    • 创建本地化字符串文件
    • 测试插件识别和加载
    • Requirements: 6.1, 6.2, 6.3, 6.4
  • 9.2 更新项目配置

    • 添加WPF相关引用
    • 更新编译配置
    • 修改输出路径设置
    • 测试编译和部署
    • Requirements: 6.1, 6.4
  • 9.3 创建本地化支持

    • 创建字符串资源文件
    • 实现多语言支持
    • 添加本地化测试
    • 验证字符串显示
    • Requirements: 6.4
  • 10. 进行全面测试和优化

  • 10.1 创建单元测试

    • 编写插件生命周期测试
    • 创建WPF控件测试
    • 实现ViewModel测试
    • 添加业务逻辑测试
    • Requirements: 3.1, 3.2, 3.3, 3.4, 3.5
  • 10.2 进行集成测试

    • 测试Navisworks API集成
    • 验证事件处理机制
    • 测试数据绑定功能
    • 验证线程安全性
    • Requirements: 8.1, 8.2, 8.3, 8.4
  • 10.3 进行性能优化

    • 优化WPF渲染性能
    • 实现虚拟化列表
    • 添加延迟加载机制
    • 优化内存使用
    • Requirements: 2.3, 7.3
  • 10.4 进行用户验收测试

    • 验证所有现有功能正常工作
    • 测试新的可停靠面板体验
    • 收集用户反馈
    • 修复发现的问题
    • Requirements: 3.1, 3.2, 3.3, 3.4, 3.5