diff --git a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java index f42d18d404..e55f9a4817 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java @@ -7,6 +7,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; +import com.fr.design.worker.save.CallbackSaveWorker; import com.fr.file.FILE; import com.fr.file.FileNodeFILE; import com.fr.log.FineLoggerFactory; @@ -29,6 +30,7 @@ import java.awt.event.WindowEvent; import java.util.Set; import java.util.concurrent.ExecutionException; +import static com.fr.design.dialog.FineJOptionPane.showConfirmDialog; import static javax.swing.JOptionPane.OK_CANCEL_OPTION; import static javax.swing.JOptionPane.OK_OPTION; import static javax.swing.JOptionPane.WARNING_MESSAGE; @@ -67,12 +69,14 @@ public class CheckButton extends UIButton { if (set == null) { return; } - if(set.isEmpty()) { + if (set.isEmpty()) { okButton.setEnabled(true); uiLabel.setIcon(BaseUtils.readIcon("com/fr/design/images/correct.png")); message.setText("" + Toolkit.i18nText("Fine_Designer_Check_Font_Success") + ""); } else { - dialog.dispose(); + if (dialog != null) { + dialog.dispose(); + } StringBuilder textBuilder = new StringBuilder(); textBuilder.append(Toolkit.i18nText("Fine_Designer_Check_Font_Missing_Font")).append("\n"); for (String font : set) { @@ -88,14 +92,46 @@ public class CheckButton extends UIButton { } }; - JTemplate jtemplate = DesignerContext.getDesignerFrame().getSelectedJTemplate(); + JTemplate jtemplate = DesignerContext.getDesignerFrame().getSelectedJTemplate(); if (jtemplate == null || jtemplate.getEditingFILE() == null) { return; } FILE currentTemplate = jtemplate.getEditingFILE(); - if(currentTemplate instanceof FileNodeFILE){ - checkThread.execute(); - }else { + if (currentTemplate instanceof FileNodeFILE) { + // 判断下模板是否存在 不存在先提示 + if (!currentTemplate.exists()) { + int selVal = showConfirmDialog( + DesignerContext.getDesignerFrame(), + Toolkit.i18nText("Fine-Design_Basic_Web_Preview_Message"), + Toolkit.i18nText("Fine_Designer_Check_Font"), + OK_CANCEL_OPTION, + WARNING_MESSAGE + ); + if (OK_OPTION == selVal) { + CallbackSaveWorker worker = jtemplate.saveAs(); + worker.addSuccessCallback(new Runnable() { + @Override + public void run() { + startCheck(checkThread); + } + }); + worker.start(jtemplate.getTarget().getTemplateID()); + } + } else { + if (!jtemplate.isSaved()) { + CallbackSaveWorker worker = jtemplate.save(); + worker.addSuccessCallback(new Runnable() { + @Override + public void run() { + startCheck(checkThread); + } + }); + worker.start(jtemplate.getTarget().getTemplateID()); + } else { + startCheck(checkThread); + } + } + } else { //模板不在报表环境下,提示保存 int selVal = FineJOptionPane.showConfirmDialog( DesignerContext.getDesignerFrame(), @@ -103,27 +139,27 @@ public class CheckButton extends UIButton { Toolkit.i18nText("Fine_Designer_Check_Font"), OK_CANCEL_OPTION, WARNING_MESSAGE); - if (OK_OPTION == selVal) { - //保存成功才执行检测 - if (jtemplate.saveAsTemplate2Env()) { - checkThread.execute(); - } + CallbackSaveWorker worker = jtemplate.saveAs2Env(); + worker.addSuccessCallback(new Runnable() { + @Override + public void run() { + startCheck(checkThread); + } + }); + worker.start(jtemplate.getTarget().getTemplateID()); } } - initDialogPane(); - okButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - dialog.dispose(); - } - }); + } + private void startCheck(SwingWorker, Void> checkThread) { + initDialogPane(); dialog.addWindowListener(new WindowAdapter() { public void windowClosed(WindowEvent e) { checkThread.cancel(true); } }); - + checkThread.execute(); dialog.setVisible(true); dialog.dispose(); } @@ -150,6 +186,11 @@ public class CheckButton extends UIButton { uiLabel = new UILabel(); okButton = new UIButton(Toolkit.i18nText("Fine-Design_Report_OK")); okButton.setEnabled(false); + okButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + dialog.dispose(); + } + }); dialog = new JDialog(); dialog.setTitle(Toolkit.i18nText("Fine_Designer_Check_Font")); dialog.setModal(true); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java index 837d48b288..0d5771a494 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java @@ -17,7 +17,6 @@ import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.UIManager; import java.awt.BorderLayout; -import java.awt.Cursor; import java.awt.Dimension; import java.awt.Frame; import java.awt.event.ActionEvent; @@ -100,26 +99,14 @@ public class CheckFontInfoDialog extends JDialog implements ActionListener { directUiLabel.setIcon(UIManager.getIcon("OptionPane.narrow.down")); } } - - @Override - public void mouseEntered(MouseEvent e) { - detailLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - } - - @Override - public void mouseExited(MouseEvent e) { - detailLabel.setCursor(Cursor.getDefaultCursor()); - } }); //底部的按钮面板 UIButton okButton = new UIButton(Toolkit.i18nText("Fine-Design_Report_OK")); - JPanel buttonPanel = FRGUIPaneFactory.createBorderLayout_L_Pane(); - buttonPanel.setBorder(BorderFactory.createEmptyBorder(0,10,10,10)); - buttonPanel.add(okButton, BorderLayout.EAST); okButton.addActionListener(this); bottomPanel = FRGUIPaneFactory.createBorderLayout_L_Pane(); - bottomPanel.add(buttonPanel); + bottomPanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); + bottomPanel.add(okButton, BorderLayout.EAST); this.setTitle(Toolkit.i18nText("Fine_Designer_Check_Font")); this.setResizable(false); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/format/VanChartFormatPaneWithCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/format/VanChartFormatPaneWithCheckBox.java index 6f5fc270ac..38ae4a08ce 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/format/VanChartFormatPaneWithCheckBox.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/format/VanChartFormatPaneWithCheckBox.java @@ -12,13 +12,12 @@ import com.fr.plugin.chart.base.format.AttrTooltipFormat; import com.fr.stable.Constants; import javax.swing.JPanel; +import java.text.Format; +import java.util.Map; import java.awt.BorderLayout; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.text.Format; -import java.util.Map; /** * Created by Mitisky on 16/2/23. @@ -54,32 +53,7 @@ public abstract class VanChartFormatPaneWithCheckBox extends JPanel{ this.add(formatButton, BorderLayout.EAST); initFormatListener(); - isSelectedBox.addMouseListener(new MouseListener() { - @Override - public void mouseClicked(MouseEvent e) { - isDirty = true; - } - - @Override - public void mousePressed(MouseEvent e) { - - } - - @Override - public void mouseReleased(MouseEvent e) { - - } - - @Override - public void mouseEntered(MouseEvent e) { - - } - - @Override - public void mouseExited(MouseEvent e) { - - } - }); + isSelectedBox.addChangeListener((e)-> isDirty = true); } protected abstract String getCheckBoxText();