改变Connection的颜色

本文介绍如何使用GEF在流程图工具中实现关键路径上的连线变为红色以突出显示的方法。通过在模型中添加属性并在视图中响应变化来完成。

 

      最近做了一个项目,其中用到GEF做了一个做流程图的工具,老师有一个要求是:在进行优化的时候,关键路径上的线要改变成红色以突出显示,经多方面查阅资料,原来挻简单的,现总结如下

 

 

即要实现模型与视图的同步:

 

  因为保存的是模型,而模型是与视图分开的,所以想要改变connection的颜

色,只需要改变模型,然后通过事件通知机制使得视图作相应改变。

 

 

       方法:

 

       1,在ArrowConnectionModel中增加如下代码:

 

       public static final String criticalPath = "CRITICAL_PATH";

      

       private boolean isCriticalPath = false;

 

       public boolean isCriticalPath() {

              return isCriticalPath;

       }

 

       public void setCriticalPath(boolean isCriticalPath) {

              if(this.isCriticalPath == isCriticalPath)

                     return;

              this.isCriticalPath = isCriticalPath;

             

              firePropertyChange(criticalPath, null, null);

       }

              代码功能,如果它连接的两个Node都是关键路径上的点时(     即此connection在关键路径上,是需要改变颜色的)。

      

       2,在CustomeAbstractConnectionEditPart中增加如下代码:

 

       public void propertyChange(PropertyChangeEvent evt) {

              if(evt.getPropertyName().equals(AbstractConnectionModel.P_BEND_POINT))

                     refreshBendpoints();

              //TODO 得到要改变颜色的事件时,进行刷新

              if(evt.getPropertyName().equals(ArrowConnectionModel.criticalPath)){

                     refreshConnection();

              }

       }

      

       //TODO 刷新函数

       public void refreshConnection(){

              this.getConnectionFigure().setForegroundColor(new Color(null,255,0,0));

       }

 

       3,在相应的地方调用ArrowConnectionModelsetCriticalPath(boolean isCriticalPath)方法即可

      

 

    主要的改变颜色的功能要在refreshConnection()方法中,其他的只是实现它的事件通知机制

 

<think>我们正在处理用户关于AD软件(Altium Designer)设置网络颜色的问题。根据用户提供的参考信息(关于Allegro软件的操作),我们需要将其转换为AD软件中的等效操作。 用户问题:如何在AD软件中设置网络颜色? 参考信息(Allegro)中提到了两种方法: 1. 修改整个网络(包括管脚、过孔、飞线、走线)的颜色。 2. 修改网络中的特定元素(如只修改过孔或管脚)的颜色。 在Altium Designer中,设置网络颜色的方法如下: 方法一:修改整个网络的颜色(包括导线、过孔、焊盘等) 步骤: 1. 在PCB设计界面,点击右下角的“Panels”按钮,打开“PCB”面板(或者使用快捷键V+P)。 2. 在PCB面板的上方,将下拉菜单从“Nets”切换到“Nets”(如果已经是,则不用切换)。 3. 在下面的网络列表中找到需要设置颜色的网络,右键单击该网络,选择“Change Net Color”(或者直接双击网络名称前面的颜色框)。 4. 在弹出的颜色选择器中选择想要的颜色,点击“OK”。 5. 此时,该网络的所有元素(飞线、走线、过孔、焊盘)都会变成设置颜色。 方法二:修改特定网络元素的颜色(例如只修改飞线的颜色) 在AD中,飞线的颜色通常是单独设置的。默认情况下,飞线颜色由系统设置(在“View Configuration”面板中设置)。但也可以单独设置某个网络的飞线颜色。 步骤: 1. 同样打开PCB面板,切换到“Nets”视图。 2. 找到需要设置飞线颜色的网络,右键单击,选择“Properties”(或者双击网络名称)。 3. 在弹出的“Edit Net”对话框中,找到“Connection Color”选项,勾选它,然后点击旁边的颜色框选择颜色。 4. 点击“OK”后,该网络的飞线颜色就会改变,而不会影响其他网络元素(如走线、过孔等)的颜色。 另外,用户可能还想知道如何设置所有飞线的默认颜色(不是针对某个网络): 1. 按快捷键L(或者在菜单Design->Board Layers & Colors...)打开“View Configuration”面板。 2. 在“View Configuration”面板中,找到“Layer Colors”部分,展开“System Colors”组。 3. 找到“Connections and From Tos”项,点击右边的颜色框,设置默认的飞线颜色。 注意:在AD中,走线、过孔、焊盘等网络元素的颜色通常是由它们所在的层(Layer)的颜色决定的,而层的颜色可以在“View Configuration”面板中设置。因此,如果希望改变某个网络走线的颜色,除了使用上述方法一(覆盖整个网络的颜色)外,还可以通过改变该网络走线所在层的颜色来实现(但这样会改变该层所有走线的颜色)。 总结: - 要设置整个网络(所有元素)的颜色:在PCB面板中,对网络右键选择“Change Net Color”。 - 要设置某个网络的飞线颜色:在PCB面板中,双击网络进入属性,设置Connection Color”。 - 要设置所有飞线的默认颜色:在“View Configuration”面板中修改“Connections and From Tos”的颜色。 现在,根据指令,我们需要生成相关问题。 相关问题: 1. 在Altium Designer中如何单独设置某个网络飞线的颜色而不影响其他网络元素? 2. 如何改变Altium Designer中所有飞线的默认颜色? 3. Altium Designer中如何通过层颜色设置改变走线的颜色? 4. 在Altium Designer中,如何恢复网络的默认颜色? 5. 如何为多个网络同时设置相同的颜色? 注意:在回答中,我们引用了用户提供的参考信息,但实际内容已转换为AD的操作。由于用户提供的参考是关于Allegro的,所以我们在回答中没有直接引用,而是根据AD软件的功能进行了解答。</think>### Altium Designer (AD) 设置网络颜色的方法 在 Altium Designer 中设置网络颜色主要通过以下两种方式实现,操作简单直观: --- #### **方法一:设置整个网络的颜色** (包含焊盘、过孔、走线、飞线等所有元素) 1. **打开 PCB 面板** - 点击右下角 `Panels` → 选择 `PCB` - 或使用快捷键 `V` + `P` <br> 2. **选择网络** - 在 PCB 面板顶部下拉菜单中选择 `Nets` - 在列表中找到目标网络(如 `GND`) <br> 3. **修改颜色** - 右键点击目标网络 → 选择 `Change Net Color` - 在弹出的颜色选择器中指定颜色 → 点击 `OK` ```plaintext 操作后,该网络所有相关元素(走线、焊盘、飞线等)将统一变为指定颜色。 ``` --- #### **方法二:单独设置特定元素的颜色** (如仅修改飞线或焊盘颜色) 1. **进入层颜色设置** - 按快捷键 `L` 打开 `View Configuration` 面板 - 或点击顶部菜单 `Design` → `Board Layers & Colors` <br> 2. **自定义元素颜色** - 在 `System Colors` 区域找到目标元素: - 飞线:`Connections and From Tos` - 焊盘:`Pad Holes` / `Pads` - 过孔:`Via Holes` / `Vias` - 点击对应颜色框 → 选择新颜色 ```plaintext 此操作将全局修改该类元素的显示颜色,不针对特定网络。 ``` --- #### **操作示意图** ```plaintext [PCB面板] [View Configuration 面板] ┌─────────────┐ ┌─────────────────────┐ │ Nets │ │ System Colors │ │ ▼ GND │ │ ☑ Pads █▓░ │ │ ▼ VCC │→右键│ ☑ Vias █▓░ │ │ ... │ │ ☑ Connections █▓░ │ └─────────────┘ └─────────────────────┘ ``` > **注意**: > - 方法一针对**单个网络**的所有元素生效; > - 方法二针对**所有网络**的特定元素类型生效; > - 取消网络颜色:在 PCB 面板中右键网络 → `Clear Net Color`。 --- ### 相关问题 1. 如何在 AD 中隐藏特定网络的飞线? 2. Altium Designer 如何批量修改多个网络的颜色? 3. 在 PCB 布局中,网络颜色设置有哪些实用技巧? 4. 如何保存和加载自定义的颜色配置方案? [^1]: 参考 Allegro 设置网络颜色的逻辑,结合 AD 操作界面优化流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值