Browse Source

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

MoMeak 8 years ago
parent
commit
742aaf4a1b
  1. 15
      designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java

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

@ -26,7 +26,6 @@ import com.fr.report.cell.cellattr.core.group.DSColumn;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import javax.swing.SwingWorker;
import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultComboBoxModel;
import javax.swing.JPanel; import javax.swing.JPanel;
import java.awt.BorderLayout; import java.awt.BorderLayout;
@ -38,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;
/** /**
@ -260,19 +261,19 @@ 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) {
if (e.getStateChange() == ItemEvent.SELECTED) { if (e.getStateChange() == ItemEvent.SELECTED) {
new SwingWorker<Void, Void>() { executorService.execute(new Runnable() {
@Override @Override
protected Void doInBackground() throws Exception { public void run() {
synchronized (columnNameComboBox) {
columnNameComboBox.loadInstant(); columnNameComboBox.loadInstant();
return null;
} }
}
}.execute(); });
} }
} }
}); });

Loading…
Cancel
Save