热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Capital与PDM集成时检出、修订、撤销检出、下载功能界面整合

界面如下代码如下:*@project:capital-pdm-sj-jszxpackagecom.acconsys.avidm4.ui;importjava.awt

界面如下

checkoutB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
checkoutB.setBackground(Color.WHITE);
checkoutB.setFont(new Font("宋体", Font.BOLD, 20));
checkoutB.addActionListener(this);
reviseB = new JButton("\u4fee\u8ba2");
reviseB.setIcon(new ImageIcon(
"D:\\eclipse_wks\\capital-pdm-sj-jszx\\images\\process.gif"));
reviseB.setFont(new Font("宋体", Font.BOLD, 20));
reviseB.addActionListener(this);
undoCheckoutB = new JButton("\u64a4\u9500\u68c0\u51fa");
undoCheckoutB
.setIcon(new ImageIcon(
"D:\\eclipse_wks\\capital-pdm-sj-jszx\\images\\process.gif"));
undoCheckoutB.setFont(new Font("宋体", Font.BOLD, 20));
undoCheckoutB.addActionListener(this);
downloadB = new JButton("\u4e0b\u8f7d");
downloadB
.setIcon(new ImageIcon(
"D:\\eclipse_wks\\capital-pdm-sj-jszx\\images\\process.gif"));
downloadB.setFont(new Font("宋体", Font.BOLD, 20));
downloadB.addActionListener(this);
buttonPanel.add(checkoutB);
buttonPanel.add(reviseB);
buttonPanel.add(undoCheckoutB);
buttonPanel.add(downloadB);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
}

// -----------------------------------------------
this.setResizable(true);
this.setSize(Main_WIDTH, Main_HEIGHT);
// 屏幕居中
int windowWidth = this.getWidth(); // 获得窗口宽
int windowHeight = this.getHeight(); // 获得窗口高
Toolkit kit = Toolkit.getDefaultToolkit(); // 定义工具包
Dimension screenSize = kit.getScreenSize(); // 获取屏幕的尺寸
int screenWidth = screenSize.width; // 获取屏幕的宽
int screenHeight = screenSize.height; // 获取屏幕的高
this.setLocation(screenWidth / 2 - windowWidth / 2, screenHeight / 2
- windowHeight / 2);

}

protected void getCurrentOptionAllDesign() {
// 如果BuildList没选择,则以设计类型的选择为准。
if ("---".equals(buildListCB.getSelectedItem())) {
if ("所有类型".equals(designTypeCB.getSelectedItem())) {
designModel.addDesigns(allDesignMap.keySet());
design.setModel(designModel);
}
if ("logic".equals(designTypeCB.getSelectedItem())) {
designModel.addDesigns(logicDesignMap.keySet());
design.setModel(designModel);
}
if ("topology".equals(designTypeCB.getSelectedItem())) {
designModel.addDesigns(topologyDesignMap.keySet());
design.setModel(designModel);
}
if ("integrator".equals(designTypeCB.getSelectedItem())) {
designModel.addDesigns(integratorDesignMap.keySet());
design.setModel(designModel);
}
if ("harness".equals(designTypeCB.getSelectedItem())) {
designModel.addDesigns(harnessDesignMap.keySet());
design.setModel(designModel);
}
design.updateUI();
} else {
IXBuildList buildlist = buildListMap.get(buildListCB
.getSelectedItem());
Set designs = buildlist.getDesigns();
Map currentBuildListCOntainsDesignMap= new HashMap();
for (IXDesign design : designs) {
currentBuildListContainsDesignMap
.put(design.getAttribute("Name") + "("
+ design.getAttribute("Revision") + ")", design);
}
designModel.addDesigns(currentBuildListContainsDesignMap.keySet());
design.setModel(designModel);
design.updateUI();
}
}

protected void updateDesignList() {
String queryString = queryTF.getText();
Set designSet = new HashSet();
for (int index = 0; index // 忽略大小写,都统一设置为大写来判断。
String designInfo = (String) designModel.get(index);
if (designInfo.toUpperCase().contains(queryString.toUpperCase())) {
designSet.add(designInfo);
}
}

designModel.addDesigns(designSet);
design.setModel(designModel);
design.updateUI();

}

private void initData() {

designPopupMenu = new JPopupMenu();
JMenuItem left2right = new JMenuItem("添加到右侧列表");
left2right.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
// 获取选择项的值
Object[] selected = design.getSelectedValues();

for (Object designInfo : selected) {
selectedDesignModel.addDesign((String) designInfo);
selecteddesign.setModel(selectedDesignModel);
designModel.removeElement(designInfo);
design.setModel(designModel);
// designTypeCB.setSelectedIndex(0);
// buildListCB.setSelectedIndex(0);
}
design.updateUI();
selecteddesign.updateUI();
}
});
designPopupMenu.add(left2right); // 添加菜单项

selectedDesignPopupMenu = new JPopupMenu();
JMenuItem right2left = new JMenuItem("添加到左侧列表");
right2left.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
// 获取选择项的值
Object[] selected = selecteddesign.getSelectedValues();

for (Object designInfo : selected) {
designModel.addDesign((String) designInfo);
design.setModel(designModel);
selectedDesignModel.removeElement(designInfo);
selecteddesign.setModel(selectedDesignModel);
// designTypeCB.setSelectedIndex(0);
// buildListCB.setSelectedIndex(0);
}
design.updateUI();
selecteddesign.updateUI();
}
});
selectedDesignPopupMenu.add(right2left); // 添加菜单项

// 处理设计
allDesigns = context.getCurrentProject().getDesigns();
allDesignMap = new HashMap();
logicDesignSet = new HashSet();
logicDesignMap = new HashMap();
topologyDesignSet = new HashSet();
topologyDesignMap = new HashMap();
integratorDesignSet = new HashSet();
integratorDesignMap = new HashMap();
harnessDesignSet = new HashSet();
harnessDesignMap = new HashMap();
for (IXDesign design : allDesigns) {
if (design instanceof IXLogicDesign) {
logicDesignSet.add((IXLogicDesign) design);
logicDesignMap
.put(design.getAttribute("Name") + "("
+ design.getAttribute("Revision") + ")", design);
}
if (design instanceof IXTopologyDesign) {
topologyDesignSet.add((IXTopologyDesign) design);
topologyDesignMap.put(design.getAttribute("Name") + "("
+ design.getAttribute("Revision") + ")", design);
}
if (design instanceof IXIntegratorDesign) {
integratorDesignSet.add((IXIntegratorDesign) design);
integratorDesignMap.put(design.getAttribute("Name") + "("
+ design.getAttribute("Revision") + ")", design);
}
if (design instanceof IXHarnessDesign) {
harnessDesignSet.add((IXHarnessDesign) design);
harnessDesignMap
.put(design.getAttribute("Name") + "("
+ design.getAttribute("Revision") + ")", design);
}
allDesignMap.put(
design.getAttribute("Name") + "("
+ design.getAttribute("Revision") + ")", design);
}

// 处理BuildList
Set buildListSet = context.getCurrentProject()
.getBuildLists();
buildLists = new ArrayList();
for (IXBuildList buildList : buildListSet) {
buildLists.add(buildList);
}

allBuildlistName = new Vector();
allBuildlistName.add("---");

logicBuildlistName = new Vector();
logicBuildlistName.add("---");
topologyBuildlistName = new Vector();
topologyBuildlistName.add("---");
harnessBuildlistName = new Vector();
harnessBuildlistName.add("---");
buildListMap = new HashMap();
for (IXBuildList buildlist : buildLists) {
// JOptionPane.showMessageDialog(null,
// buildlist.getAttribute("Type"));
if ("logic".equals(buildlist.getAttribute("Type"))
|| "analysis ".equals(buildlist.getAttribute("Type"))) {
logicBuildlistName.add(buildlist.getAttribute("Name"));
}
if ("topology".equals(buildlist.getAttribute("Type"))) {
topologyBuildlistName.add(buildlist.getAttribute("Name"));
}
if ("harness".equals(buildlist.getAttribute("Type"))) {
harnessBuildlistName.add(buildlist.getAttribute("Name"));
}
allBuildlistName.add(buildlist.getAttribute("Name"));
buildListMap.put(buildlist.getAttribute("Name"), buildlist);
}

}

@Override
public void actionPerformed(ActionEvent e) {
// 检出操作
if (e.getSource() == checkoutB) {
// 获取右侧要处理的设计集合
List designList = new ArrayList();
int size = selectedDesignModel.getSize();
for (int i = 0; i String designInfo = (String) selectedDesignModel
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}

// 把集合中的设计封装成检出xml格式的字符串。

IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("checkOut");
ifm.setUsername("");
List documents = new ArrayList();
boolean flag = true;
for (IXDesign design : designList) {
IntegrateForMentor.Document document = new IntegrateForMentor.Document();
String number = design.getProperty("number");
if (number == null || "".equals(number.trim())) {
JOptionPane.showMessageDialog(CheckOutDialog.this,
"设计名称:" + design.getAttribute("Name") + "设计版本:"
+ design.getAttribute("Revision")
+ "的property:number不存在或值为空");
flag = false;
break;
} else {
document.setNumber(number);
documents.add(document);
}
}
// 当设计都有property:number时才执行检出操作。
if (flag) {
ifm.setDocument(documents);
String checkoutxml = JaxbUtil.convertToXml(ifm);
System.out.println(checkoutxml);
JOptionPane.showMessageDialog(CheckOutDialog.this, checkoutxml);

LoginDialog loginDialog = new LoginDialog(null, context,
"checkOut", ifm);
loginDialog.setVisible(true);
}

// ifm.setDocument(document);
}

// 修订操作
if (e.getSource() == reviseB) {
// 获取右侧要处理的设计集合
List designList = new ArrayList();
int size = selectedDesignModel.getSize();
for (int i = 0; i String designInfo = (String) selectedDesignModel
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}

// 把集合中的设计封装成检出xml格式的字符串。

IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("revise");
ifm.setUsername("");
List documents = new ArrayList();
boolean flag = true;
for (IXDesign design : designList) {
IntegrateForMentor.Document document = new IntegrateForMentor.Document();
String number = design.getProperty("number");
if (number == null || "".equals(number.trim())) {
JOptionPane.showMessageDialog(CheckOutDialog.this,
"设计名称:" + design.getAttribute("Name") + "设计版本:"
+ design.getAttribute("Revision")
+ "的property:number不存在或值为空");
flag = false;
break;
} else {
document.setNumber(number);
documents.add(document);
}
}
// 当设计都有property:number时才执行检出操作。
if (flag) {
ifm.setDocument(documents);
String checkoutxml = JaxbUtil.convertToXml(ifm);
System.out.println(checkoutxml);
JOptionPane.showMessageDialog(CheckOutDialog.this, checkoutxml);

LoginDialog loginDialog = new LoginDialog(null, context,
"revise", ifm);
loginDialog.setVisible(true);
}

// ifm.setDocument(document);
}

// 撤销检出操作
if (e.getSource() == undoCheckoutB) {
// 获取右侧要处理的设计集合
List designList = new ArrayList();
int size = selectedDesignModel.getSize();
for (int i = 0; i String designInfo = (String) selectedDesignModel
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}

// 把集合中的设计封装成检出xml格式的字符串。

IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("undocheckOut");
ifm.setUsername("");
List documents = new ArrayList();
boolean flag = true;
for (IXDesign design : designList) {
IntegrateForMentor.Document document = new IntegrateForMentor.Document();
String number = design.getProperty("number");
if (number == null || "".equals(number.trim())) {
JOptionPane.showMessageDialog(CheckOutDialog.this,
"设计名称:" + design.getAttribute("Name") + "设计版本:"
+ design.getAttribute("Revision")
+ "的property:number不存在或值为空");
flag = false;
break;
} else {
document.setNumber(number);
documents.add(document);
}
}
// 当设计都有property:number时才执行检出操作。
if (flag) {
ifm.setDocument(documents);
String checkoutxml = JaxbUtil.convertToXml(ifm);
System.out.println(checkoutxml);
JOptionPane.showMessageDialog(CheckOutDialog.this, checkoutxml);

LoginDialog loginDialog = new LoginDialog(null, context,
"undocheckOut", ifm);
loginDialog.setVisible(true);
}

// ifm.setDocument(document);
}

// 下载操作
if (e.getSource() == downloadB) {
// 获取右侧要处理的设计集合
List designList = new ArrayList();
int size = selectedDesignModel.getSize();
for (int i = 0; i String designInfo = (String) selectedDesignModel
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}

// 把集合中的设计封装成检出xml格式的字符串。

IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("downloadFile");
ifm.setUsername("");
List documents = new ArrayList();
boolean flag = true;
for (IXDesign design : designList) {
IntegrateForMentor.Document document = new IntegrateForMentor.Document();
String number = design.getProperty("number");
if (number == null || "".equals(number.trim())) {
JOptionPane.showMessageDialog(CheckOutDialog.this,
"设计名称:" + design.getAttribute("Name") + "设计版本:"
+ design.getAttribute("Revision")
+ "的property:number不存在或值为空");
flag = false;
break;
} else {
document.setNumber(number);
documents.add(document);
}
}
// 当设计都有property:number时才执行检出操作。
if (flag) {
ifm.setDocument(documents);
String checkoutxml = JaxbUtil.convertToXml(ifm);
System.out.println(checkoutxml);
JOptionPane.showMessageDialog(CheckOutDialog.this, checkoutxml);

LoginDialog loginDialog = new LoginDialog(null, context,
"downloadFile", ifm);
loginDialog.setVisible(true);
}

// ifm.setDocument(document);
}

}
}

/*******************************************************************************
* Revision History

* [type 'revision' and press Alt + / to insert revision block]

*
*
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/



推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了为什么在main.js中写import不会全局生效的问题,并提供了解决方案。在每一个vue文件中都需要写import语句才能使其生效,而在main.js中写import语句则不会全局生效。本文还介绍了使用Swal和sweetalert2库的示例。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
author-avatar
LA_Lam霸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有