Browse Source

Merge pull request #1551 in BA/design from ~MOMEAK/design9.0:release/9.0 to release/9.0

* commit '742aaf4a1b0ab81cc965778e173f1c71da9867a4':
  REPORT-6186 设计器,单元格添加数据列,第一次点数据列下拉框,列表会自动收回,需要再次点击才能选择数据列选项
  REPORT-6186 设计器,单元格添加数据列,第一次点数据列下拉框,列表会自动收回,需要再次点击才能选择数据列选项
superman 8 years ago
parent
commit
2c1c039e8f
  1. 14
      designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java
  2. 9
      designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java

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

@ -37,6 +37,8 @@ import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
@ -259,10 +261,20 @@ public class SelectedDataColumnPane extends BasicPane {
protected void initTableNameComboBox() { protected void initTableNameComboBox() {
tableNameComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource()); tableNameComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource());
ExecutorService executorService = Executors.newSingleThreadExecutor();
tableNameComboBox.addItemListener(new ItemListener() { tableNameComboBox.addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(ItemEvent e) { public void itemStateChanged(ItemEvent e) {
columnNameComboBox.setLoaded(false); if (e.getStateChange() == ItemEvent.SELECTED) {
executorService.execute(new Runnable() {
@Override
public void run() {
synchronized (columnNameComboBox) {
columnNameComboBox.loadInstant();
}
}
});
}
} }
}); });
tableNameComboBox.setPreferredSize(new Dimension(100, 20)); 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() { public void loadInstant() {
if (loaded) { setLoaded(true);
return; loadList();
}
setModel(new DefaultComboBoxModel(load()));
loaded = true;
} }
@Override @Override

Loading…
Cancel
Save