Don't do combobox filtering with HTML tags

This commit is contained in:
SiboVG 2024-08-27 01:58:05 +02:00
parent a52f16bd7c
commit 7343807c58
3 changed files with 22 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import info.openrocket.core.componentanalysis.CADataType;
import info.openrocket.core.componentanalysis.CADataTypeGroup;
import info.openrocket.core.rocketcomponent.RocketComponent;
import info.openrocket.core.unit.Unit;
import info.openrocket.core.util.StringUtils;
import info.openrocket.swing.gui.plot.PlotTypeSelector;
import javax.swing.JComboBox;
@ -64,4 +65,9 @@ public class CAPlotTypeSelector extends PlotTypeSelector<CADataType, CADataTypeG
public RocketComponent getSelectedComponent() {
return (RocketComponent) componentSelector.getSelectedItem();
}
@Override
protected String getDisplayString(CADataType item) {
return StringUtils.removeHTMLTags(item.getName());
}
}

View File

@ -12,6 +12,7 @@ import info.openrocket.swing.gui.util.Icons;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.io.Serial;
import java.util.List;
import info.openrocket.swing.gui.widgets.GroupableAndSearchableComboBox;
@ -41,7 +42,15 @@ public class PlotTypeSelector<T extends Groupable<G> & UnitValue, G extends Grou
this.index = plotIndex;
typeSelector = new GroupableAndSearchableComboBox<>(availableTypes, trans.get("FlightDataComboBox.placeholder"));
typeSelector = new GroupableAndSearchableComboBox<>(availableTypes, trans.get("FlightDataComboBox.placeholder")) {
@Serial
private static final long serialVersionUID = 1L;
@Override
public String getDisplayString(T item) {
return PlotTypeSelector.this.getDisplayString(item);
}
};
typeSelector.setSelectedItem(type);
this.add(typeSelector, "gapright para");
@ -108,4 +117,8 @@ public class PlotTypeSelector<T extends Groupable<G> & UnitValue, G extends Grou
public void setUnitGroup(UnitGroup unitGroup) {
unitSelector.setUnitGroup(unitGroup);
}
protected String getDisplayString(T item) {
return item.toString();
}
}

View File

@ -48,6 +48,7 @@ import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
import java.util.regex.Pattern;
/**
* A combo box that has a search box for searching the items in the combobox.
@ -606,7 +607,7 @@ public class GroupableAndSearchableComboBox<G extends Group, T extends Groupable
}
if (itemName.toLowerCase().contains(searchFieldSearch.getText().toLowerCase())) {
itemName = itemName.replaceAll("(?i)(" + searchFieldSearch.getText() + ")", "<u>$1</u>");
itemName = itemName.replaceAll("(?i)(" + Pattern.quote(searchFieldSearch.getText()) + ")", "<u>$1</u>");
label.setText("<html>" + itemName + "</html>");
}