diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/QTXJCDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/QTXJCDialog.java index 1d14c00..5c337ed 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/QTXJCDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/QTXJCDialog.java @@ -1,145 +1,189 @@ package com.connor.jd.plm.dialogs; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.swing.Box; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JFileChooser; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.filechooser.FileNameExtensionFilter; - import com.connor.jd.operations.ExcelOperation; import com.connor.jd.plm.utils.JDMethodUtil; -import com.teamcenter.rac.aif.AbstractAIFApplication; -import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentDataset; import com.teamcenter.rac.kernel.TCComponentProjectSmartFolder; import com.teamcenter.rac.kernel.TCComponentTcFile; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; -import com.teamcenter.rac.util.ButtonLayout; import com.teamcenter.rac.util.MessageBox; -public class QTXJCDialog extends AbstractAIFDialog { +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.Pane; +import javafx.stage.FileChooser; +import javafx.stage.FileChooser.ExtensionFilter; +import javafx.stage.Stage; + +public class QTXJCDialog extends Application { - private AbstractAIFApplication app; private TCSession session; - private JLabel road = new JLabel(); - private JComboBox pjsName = new JComboBox(); + private TextField road = null; + private ComboBox pjsName = null; private List sfList = new ArrayList(); private TCComponent[] com; private String type; - public QTXJCDialog(AbstractAIFApplication app, List sfList, TCComponent[] com, TCSession session, - String type) throws TCException { - this.app = app; + public QTXJCDialog(List sfList, TCComponent[] com, TCSession session, String type) throws TCException { + this.sfList = sfList; this.com = com; this.session = session; this.type = type; - initUI(); + // initUI(); } - private void initUI() { - this.setAutoRequestFocus(true); - this.setPreferredSize(new Dimension(360, 150)); - this.setResizable(false); - - JLabel pjStage = new JLabel("项目阶段"); - pjsName.addItem(""); + @Override + public void start(Stage arg0) throws Exception { + Stage primaryStage = new Stage(); + Pane root = new Pane(); + Label pjStage = new Label("项目阶段"); + pjStage.setLayoutX(37.0); + pjStage.setLayoutY(51.0); + pjsName = new ComboBox(); + pjsName.setLayoutX(89.0); + pjsName.setLayoutY(47.0); + pjsName.setPrefSize(161.0, 23.0); + pjsName.setValue(""); + pjsName.getItems().add(""); for (int i = 0; i < sfList.size(); i++) { - pjsName.addItem(sfList.get(i)); + pjsName.getItems().add(sfList.get(i)); } - JLabel roadLabel = new JLabel("路径"); - - JButton open = new JButton("..."); - open.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - openBtn(); - } + Label roadLabel = new Label("路径"); + roadLabel.setLayoutX(37.0); + roadLabel.setLayoutY(107.0); + road = new TextField(); + road.setLayoutX(89.0); + road.setLayoutY(103.0); + road.setDisable(true); + Button open = new Button("选择"); + open.setLayoutX(263.0); + open.setLayoutY(103.0); + open.setOnAction((arg) -> { + openBtn(primaryStage); }); - JButton export = new JButton("导出"); - export.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - exportBtn(); - } + Button export = new Button("导出"); + export.setLayoutX(89.0); + export.setLayoutY(158.0); + export.setPrefSize(48.0, 23.0); + export.setOnAction((arg) -> { + exportBtn(); }); - JButton out = new JButton("取消"); - out.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispose(); - } + Button out = new Button("取消"); + out.setLayoutX(208.0); + out.setLayoutY(158.0); + out.setPrefSize(48.0, 23.0); + out.setOnAction((arg) -> { + primaryStage.close(); }); - JPanel flow1 = new JPanel(); - Box b1 = Box.createHorizontalBox(); - flow1.add(b1); - // b1.add(Box.createHorizontalStrut(20)); - b1.add(pjStage); - b1.add(Box.createHorizontalStrut(50)); - b1.add(pjsName); - JPanel flow2 = new JPanel(); - Box b2 = Box.createHorizontalBox(); - flow2.add(b2); - b2.add(Box.createHorizontalStrut(20)); - b2.add(roadLabel); - b2.add(Box.createHorizontalStrut(20)); - b2.add(road); - b2.add(Box.createHorizontalStrut(80)); - b2.add(open); - JPanel btn = new JPanel(new ButtonLayout()); - btn.add(export); - btn.add(out); - JPanel center = new JPanel(new BorderLayout()); - center.add(flow1, BorderLayout.NORTH); - center.add(flow2, BorderLayout.CENTER); - center.add(btn, BorderLayout.SOUTH); - this.add(center, "Center"); + root.getChildren().add(pjStage); + root.getChildren().add(pjsName); + root.getChildren().add(roadLabel); + root.getChildren().add(road); + root.getChildren().add(open); + root.getChildren().add(export); + root.getChildren().add(out); - this.pack(); - this.centerToScreen(); - this.showDialog(); + Scene scene = new Scene(root, 338.0, 207); + primaryStage.setScene(scene); + primaryStage.setResizable(false); + primaryStage.show(); } +// private void initUI() { +// this.setAutoRequestFocus(true); +// this.setPreferredSize(new Dimension(360, 150)); +// this.setResizable(false); +// +// JLabel pjStage = new JLabel("项目阶段"); +// pjsName.addItem(""); +// for (int i = 0; i < sfList.size(); i++) { +// pjsName.addItem(sfList.get(i)); +// } +// JLabel roadLabel = new JLabel("路径"); +// +// JButton open = new JButton("..."); +// open.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// openBtn(); +// } +// }); +// JButton export = new JButton("导出"); +// export.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// exportBtn(); +// } +// }); +// JButton out = new JButton("取消"); +// out.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// dispose(); +// } +// }); +// JPanel flow1 = new JPanel(); +// Box b1 = Box.createHorizontalBox(); +// flow1.add(b1); +// // b1.add(Box.createHorizontalStrut(20)); +// b1.add(pjStage); +// b1.add(Box.createHorizontalStrut(50)); +// b1.add(pjsName); +// JPanel flow2 = new JPanel(); +// Box b2 = Box.createHorizontalBox(); +// flow2.add(b2); +// b2.add(Box.createHorizontalStrut(20)); +// b2.add(roadLabel); +// b2.add(Box.createHorizontalStrut(20)); +// b2.add(road); +// b2.add(Box.createHorizontalStrut(80)); +// b2.add(open); +// JPanel btn = new JPanel(new ButtonLayout()); +// btn.add(export); +// btn.add(out); +// JPanel center = new JPanel(new BorderLayout()); +// center.add(flow1, BorderLayout.NORTH); +// center.add(flow2, BorderLayout.CENTER); +// center.add(btn, BorderLayout.SOUTH); +// this.add(center, "Center"); +// +// this.pack(); +// this.centerToScreen(); +// this.showDialog(); +// } +// String roadName = null; - private void openBtn() { - JFileChooser chooser = new JFileChooser(); - // chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - chooser.setDialogTitle("请选择要保存的文件夹"); - // chooser.showDialog(new JLabel(), "确定"); - - FileNameExtensionFilter filter = new FileNameExtensionFilter("Excel工作簿(*.xlsx)", "xlsx"); - chooser.setFileFilter(filter); - chooser.showSaveDialog(null); - // File file = chooser.getSelectedFile(); + private void openBtn(Stage primaryStage) { + FileChooser chooser = new FileChooser(); + chooser.setTitle("请选择要保存的文件夹"); + chooser.getExtensionFilters().addAll(new ExtensionFilter("Excel工作簿(*.xlsx)", "xlsx")); + File getfile = chooser.showSaveDialog(primaryStage); try { - if (chooser.getSelectedFile().getAbsolutePath() != null) { - String filePath = chooser.getSelectedFile().getAbsolutePath() + ".xlsx"; + if (getfile.getAbsolutePath() != null) { + String filePath = getfile.getAbsolutePath() + ".xlsx"; roadName = filePath; - if (filePath.length() > 10) { - road.setText(filePath.substring(0, 10) + "..."); + if (filePath.length() > 25) { + road.setText(filePath.substring(0, 25) + "..."); } else { road.setText(filePath); } } - } catch (Exception e) { } - } private void exportBtn() { @@ -153,7 +197,7 @@ public class QTXJCDialog extends AbstractAIFDialog { System.out.println(outpath); File file = getExcle(jdname, type); - String sel = (String) pjsName.getSelectedItem(); + String sel = pjsName.getSelectionModel().getSelectedItem(); Map> jfw = new HashMap>(); if (sel.equals("")) { for (int i = 0; i < sfList.size(); i++) { @@ -192,7 +236,7 @@ public class QTXJCDialog extends AbstractAIFDialog { ExcelOperation.writeExcel(file, outpath, jfw); System.out.println("导出成功"); MessageBox.post("导出成功", "信息", MessageBox.INFORMATION); - dispose(); + } } @@ -200,6 +244,10 @@ public class QTXJCDialog extends AbstractAIFDialog { File fmsFile = null; String allpuid = JDMethodUtil.getPrefStr(ssx, session); String[] relpuid = allpuid.split(";"); + if (relpuid.length != 3) { + MessageBox.post("请联系管理员检查首选项", "错误", MessageBox.ERROR); + return null; + } String puid = null; switch (type) { case "GT": @@ -241,45 +289,5 @@ public class QTXJCDialog extends AbstractAIFDialog { } return fmsFile; } -// @Override -// public void start(Stage arg0) throws Exception { -// Stage primaryStage = new Stage(); -// Pane root = new Pane(); -// Label pjStage = new Label("项目阶段"); -// pjStage.setLayoutX(37.0); -// pjStage.setLayoutY(51.0); -// ComboBox pjsName = new ComboBox(); -// pjsName.setLayoutX(94.0); -// pjsName.setLayoutY(47.0); -// pjsName.setValue(""); -// Label roadLabel = new Label("路径"); -// roadLabel.setLayoutX(37.0); -// roadLabel.setLayoutY(107.0); -// Label road = new Label(); -// road.setLayoutX(94.0); -// road.setLayoutY(107.0); -// Button open = new Button("..."); -// open.setLayoutX(190.0); -// open.setLayoutY(103.0); -// Button export = new Button("导出"); -// export.setLayoutX(67.0); -// export.setLayoutY(158.0); -// Button out = new Button("取消"); -// out.setLayoutX(169.0); -// out.setLayoutY(158.0); -// -// root.getChildren().add(pjStage); -// root.getChildren().add(pjsName); -// root.getChildren().add(roadLabel); -// root.getChildren().add(road); -// root.getChildren().add(open); -// root.getChildren().add(export); -// root.getChildren().add(out); -// -// Scene scene = new Scene(root, 290, 207); -// primaryStage.setScene(scene); -// primaryStage.setResizable(false); -// primaryStage.show(); -// } } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/handlers/QTXJCHandler.java b/com.connor.jd.plm/src/com/connor/jd/plm/handlers/QTXJCHandler.java index 4789dce..cd8435b 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/handlers/QTXJCHandler.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/handlers/QTXJCHandler.java @@ -17,28 +17,20 @@ import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; +import javafx.application.Platform; +import javafx.embed.swing.JFXPanel; +import javafx.stage.Stage; + public class QTXJCHandler extends AbstractHandler { private TCComponent[] com; + private String type = null; @Override public Object execute(ExecutionEvent arg0) throws ExecutionException { List sfList = new ArrayList(); String name = arg0.getCommand().getId(); - String type = null; - switch (name) { - case "JDProject.menus.JD2_GTQTXJC": - type = "GT"; - break; - case "JDProject.menus.JD2_BLQTXJC": - type = "BL"; - break; - case "JDProject.menus.JD2_BXQTXJC": - type = "BX"; - break; - default: - break; - } + try { AbstractAIFUIApplication app = AIFUtility.getCurrentApplication(); if (app.getTargetComponent() != null && app.getTargetComponent() instanceof TCComponentProject) { @@ -49,11 +41,34 @@ public class QTXJCHandler extends AbstractHandler { sfList.add(sf.getProperty("object_string")); } TCSession session = (TCSession) app.getSession(); - try { - new Thread(new QTXJCDialog(app, sfList, com, session, type)).start(); - } catch (TCException e) { - e.printStackTrace(); + switch (name) { + case "JDProject.menus.JD2_GTQTXJC": + type = "GT"; + break; + case "JDProject.menus.JD2_BLQTXJC": + type = "BL"; + break; + case "JDProject.menus.JD2_BXQTXJC": + type = "BX"; + break; + default: + break; } + new Thread(() -> { + new JFXPanel(); + Platform.setImplicitExit(false); + Platform.runLater(new Runnable() { + @Override + public void run() { + try { + QTXJCDialog qtxjc = new QTXJCDialog(sfList, com, session, type); + qtxjc.start(new Stage()); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + }).start(); } else { MessageBox.post("请选择项目", "提示", MessageBox.INFORMATION); }