Browse Source

REPORT-63192 【组件可更新提醒】组件复用-设计器端生成组件弹窗的类型改为必填

【问题原因】
1. 整理下目前组件生成面板中必填项的校验规则
2. 将组件类型设置渐入到必填项的校验规则中

【改动思路】
同上
bugfix/11.0
Starryi 3 years ago
parent
commit
88cfa15c84
  1. 68
      designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareGeneratePane.java
  2. 69
      designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java

68
designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareGeneratePane.java

@ -5,6 +5,8 @@ import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.event.ChangeEvent;
import com.fr.design.event.ChangeListener;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
@ -33,15 +35,12 @@ import com.fr.form.share.group.DefaultShareGroupManager;
import com.fr.form.share.record.ShareWidgetInfoManager; import com.fr.form.share.record.ShareWidgetInfoManager;
import com.fr.form.ui.Widget; import com.fr.form.ui.Widget;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingWorker; import javax.swing.SwingWorker;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.border.Border; import javax.swing.border.Border;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.CardLayout; import java.awt.CardLayout;
import java.awt.Dimension; import java.awt.Dimension;
@ -113,57 +112,17 @@ public class ShareGeneratePane extends BasicPane {
this.mainPane.add(simplePane, ShareUIUtils.convertStateChange(ItemEvent.DESELECTED)); this.mainPane.add(simplePane, ShareUIUtils.convertStateChange(ItemEvent.DESELECTED));
this.mainPane.add(uploadPane, ShareUIUtils.convertStateChange(ItemEvent.SELECTED)); this.mainPane.add(uploadPane, ShareUIUtils.convertStateChange(ItemEvent.SELECTED));
simplePane.getNameField().getDocument().addDocumentListener(new DocumentListener() { simplePane.addRequiredSettingChangeListener(new ChangeListener() {
@Override
public void changedUpdate(DocumentEvent e) {
validInput();
}
@Override
public void insertUpdate(DocumentEvent e) {
validInput();
}
@Override @Override
public void removeUpdate(DocumentEvent e) { public void fireChanged(ChangeEvent event) {
validInput(); checkRequiredSettings();
} }
}); });
simplePane.getDesignerVersionField().getDocument().addDocumentListener(new DocumentListener() { uploadPane.addRequiredSettingChangeListener(new ChangeListener() {
@Override
public void changedUpdate(DocumentEvent e) {
validInput();
}
@Override
public void insertUpdate(DocumentEvent e) {
validInput();
}
@Override @Override
public void removeUpdate(DocumentEvent e) { public void fireChanged(ChangeEvent event) {
validInput(); checkRequiredSettings();
}
});
uploadPane.getNameField().getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
validInput();
}
@Override
public void insertUpdate(DocumentEvent e) {
validInput();
}
@Override
public void removeUpdate(DocumentEvent e) {
validInput();
} }
}); });
@ -176,14 +135,9 @@ public class ShareGeneratePane extends BasicPane {
return pane; return pane;
} }
private void validInput() { private void checkRequiredSettings() {
String name = getSelectMainPane().getNameField().getText().trim(); boolean isSettingsRequired = getSelectMainPane().checkRequiredSettings();
boolean isValidName = StringUtils.isNotEmpty(name); dialog.setButtonEnabled(isSettingsRequired);
boolean isValidDesignerVersion = getSelectMainPane().getDesignerVersionField().isValidVersion();
boolean isValidInput = isValidName && isValidDesignerVersion;
dialog.setButtonEnabled(isValidInput);
} }

69
designer-realize/src/main/java/com/fr/design/share/ui/generate/ShareMainPane.java

@ -5,6 +5,8 @@ import com.fr.design.constants.LayoutConstants;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.event.ChangeEvent;
import com.fr.design.event.ChangeListener;
import com.fr.design.extra.LoginWebBridge; import com.fr.design.extra.LoginWebBridge;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
@ -62,6 +64,8 @@ import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.border.MatteBorder; import javax.swing.border.MatteBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet; import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException; import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument; import javax.swing.text.PlainDocument;
@ -142,6 +146,9 @@ public class ShareMainPane extends JPanel {
private List<EffectItemGroup> effectItemGroups; private List<EffectItemGroup> effectItemGroups;
private final boolean needContentTip; private final boolean needContentTip;
// 监听必填项
private ChangeListener requiredSettingChangeListener;
public ShareMainPane(Image shareCover, Rectangle rec, boolean upload, List<EffectItemGroup> effectItemGroups, boolean needContentTip) { public ShareMainPane(Image shareCover, Rectangle rec, boolean upload, List<EffectItemGroup> effectItemGroups, boolean needContentTip) {
this.shareCover = shareCover; this.shareCover = shareCover;
@ -410,11 +417,31 @@ public class ShareMainPane extends JPanel {
pane.add(parentClassify); pane.add(parentClassify);
pane.add(childClassify); pane.add(childClassify);
UILabel validSymbol = new UILabel(" *");
pane.add(validSymbol);
return pane; return pane;
} }
private JPanel createDesignerVersionFiledPane() { private JPanel createDesignerVersionFiledPane() {
designerVersionField.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT)); designerVersionField.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT));
designerVersionField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
notifyRequiredSettingChanged(new ChangeEvent(designerVersionField));
}
@Override
public void insertUpdate(DocumentEvent e) {
notifyRequiredSettingChanged(new ChangeEvent(designerVersionField));
}
@Override
public void removeUpdate(DocumentEvent e) {
notifyRequiredSettingChanged(new ChangeEvent(designerVersionField));
}
});
JPanel symbolTextFiled = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel symbolTextFiled = FRGUIPaneFactory.createBorderLayout_S_Pane();
UILabel validSymbol = new UILabel(" *"); UILabel validSymbol = new UILabel(" *");
symbolTextFiled.add(designerVersionField, BorderLayout.CENTER); symbolTextFiled.add(designerVersionField, BorderLayout.CENTER);
@ -546,6 +573,23 @@ public class ShareMainPane extends JPanel {
nameField.setPlaceholder(Toolkit.i18nText("Fine-Design_Share_Name_Placeholder")); nameField.setPlaceholder(Toolkit.i18nText("Fine-Design_Share_Name_Placeholder"));
nameField.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT)); nameField.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT));
nameField.setDocument(nameLimited); nameField.setDocument(nameLimited);
nameField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
notifyRequiredSettingChanged(new ChangeEvent(nameField));
}
@Override
public void insertUpdate(DocumentEvent e) {
notifyRequiredSettingChanged(new ChangeEvent(nameField));
}
@Override
public void removeUpdate(DocumentEvent e) {
notifyRequiredSettingChanged(new ChangeEvent(nameField));
}
});
JPanel symbolTextFiled = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel symbolTextFiled = FRGUIPaneFactory.createBorderLayout_S_Pane();
UILabel validSymbol = new UILabel(" *"); UILabel validSymbol = new UILabel(" *");
symbolTextFiled.add(nameField, BorderLayout.CENTER); symbolTextFiled.add(nameField, BorderLayout.CENTER);
@ -672,16 +716,29 @@ public class ShareMainPane extends JPanel {
return provider; return provider;
} }
public Group getSelectGroup() { public boolean checkRequiredSettings() {
return (Group) localGroup.getSelectedItem(); String name = nameField.getText().trim();
boolean isNameRequired = StringUtils.isNotEmpty(name);
boolean isDesignerVersionRequired = designerVersionField.isValidVersion();
boolean isClassifyRequired = parentClassify.getSelectedItem() != null && childClassify.getSelectedItem() != null;
return isNameRequired && isDesignerVersionRequired && isClassifyRequired;
}
public void addRequiredSettingChangeListener(ChangeListener changeListener) {
this.requiredSettingChangeListener = changeListener;
} }
public UITextField getNameField() { private void notifyRequiredSettingChanged(ChangeEvent event) {
return nameField; if (this.requiredSettingChangeListener != null) {
this.requiredSettingChangeListener.fireChanged(event);
}
} }
public VersionIntervalField getDesignerVersionField() { public Group getSelectGroup() {
return designerVersionField; return (Group) localGroup.getSelectedItem();
} }
private String classify(Object classify) { private String classify(Object classify) {

Loading…
Cancel
Save