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