# adapter **Repository Path**: luobiao320/adapter ## Basic Information - **Project Name**: adapter - **Description**: intelij idea的一个小插件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-09-09 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # adapter 将idea uml 适配成其他uml格式,目前已完成idea uml 对 ProcessOn uml 的基本适配 #### 背景 用过IntelliJ IDEA 商业版的朋友都知道idea内置了一个功能强大的插件UML Support(商业版才有),能快速的查询类的uml图,比如想查看spring中ClassPathXmlApplicationContext类的uml图,只需ctrl+shift+alt+u就能出来了 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0923/165511_1028e088_421331.png "微信截图_20190923160357.png") 有点遗憾的是生成的.uml格式文件只有在idea中才能查看,.uml文件无法直接导入到在线uml工具中(如[ProcessOn](https://www.processon.com))。 假如我们在阅读框架源码时画了个思维导图,想在图中插入对应模块的类uml链接,直接快捷的在线查看模块的类关系。如图所示: ![输入图片说明](https://images.gitee.com/uploads/images/2019/0924/081131_caea4884_421331.png "微信截图_20190924080629.png") 该如何操作呢? 照着idea uml图在线手绘是不可能的,既然没有现成的idea插件,就只能手动撸一个咯 :joy: ! #### 软件架构 软件架构说明 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0923/180849_2a1c5de0_421331.png "微信截图_20190923180832.png") 如图,标注了几个比较重要的文件,至于怎样新建idea插件项目,就请各位自行百度了 - plugin.xml 这个是idea插件的配置文件,主要描述了插件的id,名称等。其中有个比较重要的配置 ``` ``` 该配置中指定了插件的快捷键及触发的动作 - UmlAdapterAction 事件处理类,该类继承自AnAction类,在plugin.xml中配置的事件触发时会执行actionPerformed方法 - UmlSupportAdapter 该类实现了SourceAdapter接口,主要是将原始文件(idea中的uml)适配成相对标准的UmlDocument对象,不直接适配成目标文件是,而适配成中间对象UmlDocument是为添加其他适配类型,这样可以减少适配工作 - ProcessOnAdapter 该类实现了TargetAdapter接口,主要是将中间对象UmlDocument适配成目标文件类型(ProcessOn文件格式) - ConversionService 该类提供了转换服务的方法,有多种重载可供选择 #### 安装教程 1. 从本机安装 从https://gitee.com/luobiao320/adapter/releases 下载adapter.jar,然后再插件安装界面选择install plugin from disk 2. 插件仓库安装 在插件安装界面选择Browse repositiories,然后搜索uml adapter #### 使用说明 打开需要查看的类,按ctrl+shift+alt+u打开uml图,然后按ctrl+alt+d或者Tools > UML Adapter 会弹窗口进行选择导出的路径。 > 如果提示 “请在uml文件中执行此操作,且焦点处于uml文件!” 请将焦点停留在uml文件 > 由于idea的uml中的线条支持两个以上的拐点,而ProcessOn中不支持,所以这部分连线需手动调整 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0923/202055_1c849bbf_421331.png "微信截图_20190923201958.png")