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

253 lines
6.5 KiB
Markdown

# Implementation Plan
- [x] 1. 创建DockPanePlugin基础架构
- 修改Main类继承DockPanePlugin而不是AddInPlugin
- 更新插件属性为[Plugin]和[DockPanePlugin]
- 实现CreateControlPane()和DestroyControlPane()方法
- 创建ElementHost托管机制
- _Requirements: 1.1, 1.2, 1.3, 1.4_
- [ ] 2. 创建WPF用户控件框架
- [x] 2.1 创建主WPF用户控件LogisticsControlPanel
- 创建LogisticsControlPanel.xaml和.xaml.cs文件
- 实现基本的TabControl布局结构
- 添加底部操作按钮面板
- 实现Cleanup()方法用于资源清理
- _Requirements: 2.1, 2.2, 2.3_
- [x] 2.2 创建MVVM基础架构
- 实现ViewModelBase基类支持INotifyPropertyChanged
- 创建LogisticsControlViewModel主视图模型
- 实现ThreadSafeHelper线程安全辅助类
- 创建数据模型类LogisticsModel和PathRoute
- _Requirements: 2.2, 2.4, 5.2_
- [x] 2.3 创建子视图用户控件
- 创建ModelSettingsView.xaml用户控件
- 创建PathEditingView.xaml用户控件
- 创建AnimationControlView.xaml用户控件
- 创建SystemManagementView.xaml用户控件
- _Requirements: 2.1, 2.3, 7.1, 7.2_
- [x] 3. 迁移模型设置功能到WPF
- [x] 3.1 实现类别属性设置界面
- 将类别下拉框转换为WPF ComboBox
- 实现数据绑定连接CategoryAttributeManager
- 添加选择提示和状态显示标签
- 测试类别选择功能
- _Requirements: 3.1, 3.2, 7.3, 8.2_
- [x] 3.2 实现物流模型列表界面
- 将ListView转换为WPF ListView
- 实现ObservableCollection数据绑定
- 添加模型属性编辑功能
- 实现选择同步机制
- _Requirements: 3.1, 3.2, 7.3, 8.1_
- [x] 3.3 实现可见性控制界面
- 转换可见性控制按钮为WPF Button
- 实现Command模式处理按钮点击
- 连接VisibilityManager业务逻辑
- 添加统计信息显示
- _Requirements: 3.1, 3.2, 7.4, 8.2_
- [ ] 4. 迁移路径编辑功能到WPF
- [x] 4.1 实现路径列表管理界面
- 转换路径列表ListView为WPF版本
- 实现路径创建、删除、重命名功能
- 连接PathPlanningManager业务逻辑
- 添加路径状态显示
- _Requirements: 3.3, 7.3, 8.1, 8.2_
- [x] 4.2 实现当前路径编辑界面
- 转换路径点列表为WPF ListView
- 实现路径点添加、删除、编辑功能
- 添加3D交互支持
- 实现路径可视化更新
- _Requirements: 3.3, 7.4, 8.1, 8.3_
- [x] 4.3 实现路径文件管理界面
- 添加路径导入导出按钮
- 实现文件对话框集成
- 连接PathDataManager文件操作
- 添加操作状态反馈
- _Requirements: 3.3, 8.1_
- [ ] 5. 迁移动画控制功能到WPF
- [x] 5.1 实现动画参数设置界面
- 转换动画参数控件为WPF版本
- 实现数据绑定和验证
- 连接LogisticsAnimationManager
- 添加参数预览功能
- _Requirements: 3.4, 7.3, 8.1_
- [x] 5.2 实现播放控制界面
- 转换播放控制按钮为WPF版本
- 实现进度条和状态显示
- 添加播放速度控制
- 连接动画播放逻辑
- _Requirements: 3.4, 7.4, 8.2_
- [x] 5.3 实现碰撞检测界面
- 转换碰撞检测控件为WPF版本
- 连接ClashDetectiveIntegration
- 实现碰撞结果显示
- 添加碰撞报告功能
- _Requirements: 3.4, 8.1, 8.2_
- [ ] 6. 迁移系统管理功能到WPF
- [x] 6.1 实现模型分层拆分界面
- 转换ModelSplitterDialog为WPF版本
- 实现楼层选择和属性筛选
- 连接ModelSplitterManager业务逻辑
- 添加拆分进度显示
- _Requirements: 3.5, 7.1, 8.1_
- [x] 6.2 实现日志管理界面
- 创建日志查看和管理控件
- 实现日志级别筛选
- 添加日志导出功能
- 连接LogManager
- _Requirements: 3.5, 7.3_
- [x] 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_