diff --git a/src/main/java/de/marhali/easyi18n/tabs/TableView.java b/src/main/java/de/marhali/easyi18n/tabs/TableView.java index c7f2e3b..8437d05 100644 --- a/src/main/java/de/marhali/easyi18n/tabs/TableView.java +++ b/src/main/java/de/marhali/easyi18n/tabs/TableView.java @@ -29,6 +29,8 @@ public class TableView implements BusListener { private final Project project; + private TableModelMapper currentMapper; + private JPanel rootPanel; private JPanel containerPanel; @@ -73,7 +75,7 @@ public class TableView implements BusListener { @Override public void onUpdateData(@NotNull TranslationData data) { - table.setModel(new TableModelMapper(data, update -> + table.setModel(this.currentMapper = new TableModelMapper(data, update -> InstanceManager.get(project).processUpdate(update))); } @@ -87,7 +89,7 @@ public class TableView implements BusListener { } } - if (row > -1) { // Matched @scrollTo + if (row > -1) { // Matched @key table.scrollRectToVisible( new Rectangle(0, (row * table.getRowHeight()) + table.getHeight(), 0, 0)); } @@ -96,6 +98,9 @@ public class TableView implements BusListener { @Override public void onSearchQuery(@Nullable String query) { // TODO: handle search functionality + if(this.currentMapper != null) { + this.currentMapper.onSearchQuery(query); + } } public JPanel getRootPanel() { diff --git a/src/main/java/de/marhali/easyi18n/tabs/mapper/TableModelMapper.java b/src/main/java/de/marhali/easyi18n/tabs/mapper/TableModelMapper.java index 513b14b..29aa273 100644 --- a/src/main/java/de/marhali/easyi18n/tabs/mapper/TableModelMapper.java +++ b/src/main/java/de/marhali/easyi18n/tabs/mapper/TableModelMapper.java @@ -12,6 +12,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.function.Consumer; @@ -19,7 +20,7 @@ import java.util.function.Consumer; * Mapping {@link TranslationData} to {@link TableModel}. * @author marhali */ -public class TableModelMapper implements TableModel { +public class TableModelMapper implements TableModel, SearchQueryListener { private final @NotNull TranslationData data; private final @NotNull List locales; @@ -27,7 +28,7 @@ public class TableModelMapper implements TableModel { private final @NotNull Consumer updater; - public TableModelMapper(@NotNull TranslationData data, Consumer updater) { + public TableModelMapper(@NotNull TranslationData data, @NotNull Consumer updater) { this.data = data; this.locales = new ArrayList<>(data.getLocales()); this.fullKeys = new ArrayList<>(data.getFullKeys()); @@ -35,6 +36,11 @@ public class TableModelMapper implements TableModel { this.updater = updater; } + @Override + public void onSearchQuery(@Nullable String query) { + this.fullKeys = new ArrayList<>(); + } + @Override public int getRowCount() { return this.fullKeys.size(); diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index 70d5f45..7292936 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -7,7 +7,7 @@ action.add=Add Translation action.edit=Edit Translation action.reload=Reload From Disk action.settings=Settings -action.search=Search Key... +action.search=Search... action.delete=Delete translation.key=Key translation.locales=Locales