Browse Source

REPORT-6186 设计器,单元格添加数据列,第一次点数据列下拉框,列表会自动收回,需要再次点击才能选择数据列选项

MoMeak 8 years ago
parent
commit
1f699b0ee3
  1. 13
      designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java
  2. 9
      designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java

13
designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java

@ -26,6 +26,7 @@ import com.fr.report.cell.cellattr.core.group.DSColumn;
import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils;
import javax.swing.SwingWorker;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JPanel;
import java.awt.BorderLayout;
@ -262,7 +263,17 @@ public class SelectedDataColumnPane extends BasicPane {
tableNameComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
columnNameComboBox.setLoaded(false);
if (e.getStateChange() == ItemEvent.SELECTED) {
new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
columnNameComboBox.loadInstant();
return null;
}
}.execute();
}
}
});
tableNameComboBox.setPreferredSize(new Dimension(100, 20));

9
designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java

@ -59,14 +59,11 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen
}
/**
* 通过调用该方法在点击下拉框按钮之前就加载好数据
* 通过调用该方法在点击下拉框按钮之前就加载好数据,不需要出现loading了
*/
public void loadInstant() {
if (loaded) {
return;
}
setModel(new DefaultComboBoxModel(load()));
loaded = true;
setLoaded(true);
loadList();
}
@Override

Loading…
Cancel
Save