[#1781] Support multi-component parameter deletions
This commit is contained in:
parent
1702a28d62
commit
55bc26ab89
@ -219,7 +219,7 @@ public class GeneralOptimizationDialog extends JDialog {
|
|||||||
selectedModifierTable.setDefaultRenderer(Double.class, new DoubleCellRenderer());
|
selectedModifierTable.setDefaultRenderer(Double.class, new DoubleCellRenderer());
|
||||||
selectedModifierTable.setRowSelectionAllowed(true);
|
selectedModifierTable.setRowSelectionAllowed(true);
|
||||||
selectedModifierTable.setColumnSelectionAllowed(false);
|
selectedModifierTable.setColumnSelectionAllowed(false);
|
||||||
selectedModifierTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
selectedModifierTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||||
|
|
||||||
// Make sure spinner editor fits into the cell height
|
// Make sure spinner editor fits into the cell height
|
||||||
selectedModifierTable.setRowHeight(new JSpinner().getPreferredSize().height - 4);
|
selectedModifierTable.setRowHeight(new JSpinner().getPreferredSize().height - 4);
|
||||||
@ -282,8 +282,8 @@ public class GeneralOptimizationDialog extends JDialog {
|
|||||||
removeButton = new SelectColorButton(" " + trans.get("btn.delete") + " " + Chars.RIGHT_ARROW);
|
removeButton = new SelectColorButton(" " + trans.get("btn.delete") + " " + Chars.RIGHT_ARROW);
|
||||||
removeButton.setToolTipText(trans.get("btn.delete.ttip"));
|
removeButton.setToolTipText(trans.get("btn.delete.ttip"));
|
||||||
removeButton.addActionListener(e -> {
|
removeButton.addActionListener(e -> {
|
||||||
SimulationModifier mod = getSelectedModifier();
|
List<SimulationModifier> mods = getSelectedModifiers();
|
||||||
if (mod == null) {
|
if (mods.size() == 0) {
|
||||||
log.error("Attempting to remove simulation modifier when none is selected");
|
log.error("Attempting to remove simulation modifier when none is selected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -292,7 +292,7 @@ public class GeneralOptimizationDialog extends JDialog {
|
|||||||
selectedModifierTable.getCellEditor().stopCellEditing();
|
selectedModifierTable.getCellEditor().stopCellEditing();
|
||||||
}
|
}
|
||||||
|
|
||||||
removeModifier(mod);
|
removeModifiers(mods);
|
||||||
clearHistory();
|
clearHistory();
|
||||||
});
|
});
|
||||||
disableComponents.add(removeButton);
|
disableComponents.add(removeButton);
|
||||||
@ -1044,9 +1044,14 @@ public class GeneralOptimizationDialog extends JDialog {
|
|||||||
availableModifierTree.repaint();
|
availableModifierTree.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeModifier(SimulationModifier mod) {
|
private void removeModifiers(List<SimulationModifier> mods) {
|
||||||
log.info(Markers.USER_MARKER, "Removing simulation modifier " + mod);
|
if (mods == null || mods.size() == 0) {
|
||||||
selectedModifiers.remove(mod);
|
return;
|
||||||
|
}
|
||||||
|
log.info(Markers.USER_MARKER, "Removing simulation modifiers " + mods);
|
||||||
|
for (SimulationModifier mod : mods) {
|
||||||
|
selectedModifiers.remove(mod);
|
||||||
|
}
|
||||||
selectedModifierTableModel.fireTableDataChanged();
|
selectedModifierTableModel.fireTableDataChanged();
|
||||||
availableModifierTree.repaint();
|
availableModifierTree.repaint();
|
||||||
}
|
}
|
||||||
@ -1128,9 +1133,9 @@ public class GeneralOptimizationDialog extends JDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update description text
|
// Update description text
|
||||||
SimulationModifier selectedMod = getSelectedModifier();
|
List<SimulationModifier> selectedMods = getSelectedModifiers();
|
||||||
if (selectedMod != null) {
|
if (selectedMods.size() == 1) {
|
||||||
selectedModifierDescription.setText(selectedMod.getDescription());
|
selectedModifierDescription.setText(selectedMods.get(0).getDescription());
|
||||||
} else {
|
} else {
|
||||||
selectedModifierDescription.setText("");
|
selectedModifierDescription.setText("");
|
||||||
}
|
}
|
||||||
@ -1265,17 +1270,17 @@ public class GeneralOptimizationDialog extends JDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the currently selected simulation modifier from the table,
|
* Return the currently selected simulation modifiers from the table.
|
||||||
* or <code>null</code> if none selected.
|
* @return the selected modifier.
|
||||||
* @return the selected modifier or <code>null</code>.
|
|
||||||
*/
|
*/
|
||||||
private SimulationModifier getSelectedModifier() {
|
private List<SimulationModifier> getSelectedModifiers() {
|
||||||
int row = selectedModifierTable.getSelectedRow();
|
List<SimulationModifier> result = new ArrayList<>();
|
||||||
if (row < 0) {
|
int[] rows = selectedModifierTable.getSelectedRows();
|
||||||
return null;
|
for (int row : rows) {
|
||||||
|
int idx = selectedModifierTable.convertRowIndexToModel(row);
|
||||||
|
result.add(selectedModifiers.get(idx));
|
||||||
}
|
}
|
||||||
row = selectedModifierTable.convertRowIndexToModel(row);
|
return result;
|
||||||
return selectedModifiers.get(row);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user