Skip to content

Commit

Permalink
fix setting issues: cannot modify list after apply once, empty string…
Browse files Browse the repository at this point in the history
… can be added to combobox, cannot reset combobox
  • Loading branch information
LiLittleCat committed Mar 21, 2023
1 parent 7878eca commit a59498a
Showing 1 changed file with 24 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,29 @@ public class ChatGPTSettingsConfigurable implements SearchableConfigurable {
private Disposable myDisposable = Disposer.newDisposable();

private JPanel myMainPanel;

private JPanel defaultUrlBorderBox;
private JComboBox<String> defaultUrlComboBox;

private JPanel urlListBorderBox;

private ListTableModel<String> myModel = new ListTableModel<>() {
@Override
public void addRow() {
addRow("");
}

@Override
public void removeRow(int idx) {
super.removeRow(idx);
// defaultUrlComboBox.remove(idx);
defaultUrlComboBox.removeItemAt(idx);
}

@NotNull
@Override
public List<String> getItems() {
List<String> items = super.getItems();
// change Collections.unmodifiableList to ArrayList
return new ArrayList<>(items);
}

};

private JBTable myTable;
Expand All @@ -77,6 +89,7 @@ public void editingCanceled(ChangeEvent e) {
}
};
JComponent table = createTable();
table.setPreferredSize(new Dimension(500, 200));
createComboBox();
myMainPanel = FormBuilder.createFormBuilder()
.addLabeledComponent(new JBLabel("Default website: "), defaultUrlComboBox, 1, false)
Expand Down Expand Up @@ -116,14 +129,15 @@ public void setValue(String s, String value) {
int row = myTable.getSelectedRow();
if (StringUtil.isEmpty(value) && row >= 0 && row < myModel.getRowCount()) {
myModel.removeRow(row);
defaultUrlComboBox.removeItemAt(row);
}

List<String> items = new ArrayList<>(myModel.getItems());
items.set(row, value);
myModel.setItems(items);
defaultUrlComboBox.addItem(value);
myModel.fireTableCellUpdated(row, TableModelEvent.ALL_COLUMNS);
myTable.repaint();
// add to comboBox
defaultUrlComboBox.addItem(value);
}
}});
myTable.getColumnModel().setColumnMargin(0);
Expand Down Expand Up @@ -203,6 +217,10 @@ public void apply() {
public void reset() {
ChatGPTSettingsState instance = ChatGPTSettingsState.getInstance();
myModel.setItems(instance.urlList);
defaultUrlComboBox.removeAllItems();
for (String s : instance.urlList) {
defaultUrlComboBox.addItem(s);
}
defaultUrlComboBox.setSelectedItem(instance.defaultUrl);
}

Expand Down

0 comments on commit a59498a

Please sign in to comment.