Advertisement

WindChill基础(3)部件在创建时名称可下拉选择,名称为所在文件夹名+“名称1“、文件夹名+“名称2、文件夹名+“名称3

阅读量:

1、将ComboBoxDataUtility.class放在对应的文件夹下

ComboBoxDataUtility.java编写

复制代码
 package com.catl.part.filter;

    
  
    
 import com.ptc.core.components.descriptor.ModelContext;
    
 import com.ptc.core.components.factory.dataUtilities.AttributeDataUtilityHelper;
    
 import com.ptc.core.components.factory.dataUtilities.DefaultDataUtility;
    
 import com.ptc.core.components.rendering.guicomponents.ComboBox;
    
 import com.ptc.core.components.rendering.guicomponents.GUIComponentArray;
    
 import com.ptc.netmarkets.model.NmOid;
    
 import com.ptc.netmarkets.util.beans.NmCommandBean;
    
 import wt.fc.WTObject;
    
  
    
  
    
 import wt.folder.Folder;
    
 import wt.util.WTException;
    
  
    
 import java.util.ArrayList;
    
  
    
 public class ComboBoxDataUtility extends DefaultDataUtility {
    
     @Override
    
     public Object getDataValue(String componentId, Object datum, ModelContext modelContext) throws WTException {
    
     GUIComponentArray array = new GUIComponentArray();
    
     ComboBox comboBox = new ComboBox();
    
     NmCommandBean nmCommandBean = modelContext.getNmCommandBean();
    
     NmOid nmOid = nmCommandBean.getActionOid();
    
     WTObject object = (WTObject) nmOid.getRefObject();
    
     String folderName = "";
    
     if (object instanceof Folder) {
    
         Folder folder = (Folder) object;
    
         if (!"/Default".equals(folder.getFolderPath())) {
    
             folderName = folder.getName();
    
         }
    
     }
    
  
    
     ArrayList<String> list = new ArrayList<>();
    
     list.add(folderName + "名称1");
    
     list.add(folderName + "名称2");
    
     list.add(folderName + "名称3");
    
     String columnName = AttributeDataUtilityHelper.getColumnName(componentId,datum,modelContext);
    
     comboBox.setId(componentId);
    
     comboBox.setColumnName(columnName);
    
     comboBox.setInternalValues(list);
    
     comboBox.setValues(list);
    
     comboBox.setRequired(true);
    
     comboBox.setEnabled(true);
    
     array.addGUIComponent(comboBox);
    
     return array;
    
     }
    
 }

2、打开Administrator-站点-实用程序-类型和属性管理-管理可重用属性,在根下方”新建属性组织器“(测试01),然后右键测试01选择”新建可重用属性“

3、新建可重用属性中,数据类型选择“字符串”,显示名称(test01)

4、选择“管理类型”,部件-(test01)(随便选择一个)-编辑-新建属性

5、新建属性中,”内部名称“(TEST01)(这个自己命名),“类型”选择全局,

“选择可重用属性”绑定之前所创建的(test01),最后“设置特性”中,”默认值显示模式“选择“无”,“输入字段类型”选择多行,“选项列表样式”选择下拉,完成




6、布局,选择Create New Layout,找到刚才新建的属性(TEST01),

"编辑组属性特性“,翻到最下面有个”数据实用程序ID“,将第一步的文件名放入,不用加后缀,ComboBoxDataUtility即可


7 打开E:\ptc\Windchill_11.0\Windchill\codebase\custom-service.properties.xconf,

复制...进去,Option serviceClass后面加入ComboBoxDataUtility的地址,selector填ComboBoxDataUtility

custom-service.properties.xconf配置

复制代码
 <?xml version="1.0" encoding="utf-8"?>

    
 <!DOCTYPE Configuration SYSTEM "xconf.dtd">
    
 <Configuration targetFile="codebase/service.properties">
    
  
    
 <!-- -*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-
    
 WARNING: Do not modify this file after it has been installed.  Use xconfmanager
    
      to set, reset, or undefine properties for your installation
    
 -*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*- -->
    
  
    
    
    
 <Service context="default" name="com.ptc.core.components.descriptor.DataUtility">
    
     <Option serviceClass="com.catl.part.fillter.ComboBoxDataUtility" selector="PartNameComboBoxDataUtility" requestor="java.lang.Object" cardinality="duplicate" />
    
 </Service>
    
  
    
  
    
  
    
 <!-- -*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-
    
 WARNING: Do not modify this file after it has been installed.  Use xconfmanager
    
      to set, reset, or undefine properties for your installation
    
 -*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*- -->
    
  
    
 </Configuration>

8、编写完所有的代码记得保存,在Windchill Shell中输入xconfmanager-p,完成后重启即可

9、效果图

全部评论 (0)

还没有任何评论哟~