Browse Source

REPORT-68949 控件-预定义控件-预定义控件新建后控件列表中没有刷新出来

bugfix/11.0
lucian 2 years ago
parent
commit
cf19dcee7a
  1. 20
      designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java

20
designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java

@ -20,6 +20,7 @@ import com.fr.form.ui.*;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.AssistUtils;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuEvent;
@ -274,10 +275,13 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener
@Override @Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) { public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
// 下拉刷新下列表 // 下拉刷新下列表
Vector<Item> widgetsName = getWidgetsName(userDefined);
if (modelChanged(widgetsName)) {
Object selectedItem = getSelectedItem(); Object selectedItem = getSelectedItem();
setModel(new DefaultComboBoxModel(getWidgetsName(userDefined))); setModel(new DefaultComboBoxModel<>(widgetsName));
setSelectedItem(selectedItem); setSelectedItem(selectedItem);
} }
}
@Override @Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
@ -290,6 +294,20 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener
} }
}); });
} }
private boolean modelChanged(Vector<Item> widgetsName) {
DefaultComboBoxModel model = (DefaultComboBoxModel) getModel();
int modelSize = model.getSize();
if (modelSize != widgetsName.size()) {
return true;
}
for (int i = 0; i < modelSize; i++) {
if (!AssistUtils.equals(model.getElementAt(i), widgetsName.elementAt(i))) {
return true;
}
}
return false;
}
} }
/** /**

Loading…
Cancel
Save