界面如下
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
Map
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
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
.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
int size = selectedDesignModel.getSize();
for (int i = 0; i
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}
// 把集合中的设计封装成检出xml格式的字符串。
IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("checkOut");
ifm.setUsername("");
List
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
int size = selectedDesignModel.getSize();
for (int i = 0; i
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}
// 把集合中的设计封装成检出xml格式的字符串。
IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("revise");
ifm.setUsername("");
List
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
int size = selectedDesignModel.getSize();
for (int i = 0; i
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}
// 把集合中的设计封装成检出xml格式的字符串。
IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("undocheckOut");
ifm.setUsername("");
List
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
int size = selectedDesignModel.getSize();
for (int i = 0; i
.getElementAt(i);
IXDesign design = allDesignMap.get(designInfo);
designList.add(design);
}
// 把集合中的设计封装成检出xml格式的字符串。
IntegrateForMentor ifm = new IntegrateForMentor();
ifm.setEventType("downloadFile");
ifm.setUsername("");
List
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.
******************************************************************************/