From 06e9da777f047cfb96da126c38e7d6046fe33d97 Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Fri, 8 Jul 2022 09:48:36 -0500 Subject: Search rules can be changed by GUI, saved and loaded --- src/main/java/sevenUnitsGUI/TabbedView.java | 47 ++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 14 deletions(-) (limited to 'src/main/java/sevenUnitsGUI/TabbedView.java') diff --git a/src/main/java/sevenUnitsGUI/TabbedView.java b/src/main/java/sevenUnitsGUI/TabbedView.java index be80ccb..e3b5610 100644 --- a/src/main/java/sevenUnitsGUI/TabbedView.java +++ b/src/main/java/sevenUnitsGUI/TabbedView.java @@ -531,33 +531,52 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView { // searching rules final ButtonGroup searchRuleButtons = new ButtonGroup(); + final var searchRule = this.presenter.getSearchRule(); + final JRadioButton noPrefixes = new JRadioButton( "Never Include Prefixed Units"); - noPrefixes.setEnabled(false); + noPrefixes.addActionListener(e -> { + this.presenter.setSearchRule(PrefixSearchRule.NO_PREFIXES); + this.presenter.updateView(); + this.presenter.saveSettings(); + }); searchRuleButtons.add(noPrefixes); searchingPanel.add(noPrefixes, new GridBagBuilder(0, 0) .setAnchor(GridBagConstraints.LINE_START).build()); - final JRadioButton fixedPrefixes = new JRadioButton( - "Include Some Prefixes"); - fixedPrefixes.setEnabled(false); - searchRuleButtons.add(fixedPrefixes); - searchingPanel.add(fixedPrefixes, new GridBagBuilder(0, 1) - .setAnchor(GridBagConstraints.LINE_START).build()); - - final JRadioButton explicitPrefixes = new JRadioButton( - "Include Explicit Prefixes"); - explicitPrefixes.setEnabled(false); - searchRuleButtons.add(explicitPrefixes); - searchingPanel.add(explicitPrefixes, new GridBagBuilder(0, 2) + final JRadioButton commonPrefixes = new JRadioButton( + "Include Common Prefixes"); + commonPrefixes.addActionListener(e -> { + this.presenter.setSearchRule(PrefixSearchRule.COMMON_PREFIXES); + this.presenter.updateView(); + this.presenter.saveSettings(); + }); + searchRuleButtons.add(commonPrefixes); + searchingPanel.add(commonPrefixes, new GridBagBuilder(0, 1) .setAnchor(GridBagConstraints.LINE_START).build()); final JRadioButton alwaysInclude = new JRadioButton( "Include All Single Prefixes"); - alwaysInclude.setEnabled(false); + alwaysInclude.addActionListener(e -> { + this.presenter + .setSearchRule(this.presenter.getUniversalSearchRule()); + this.presenter.updateView(); + this.presenter.saveSettings(); + }); searchRuleButtons.add(alwaysInclude); searchingPanel.add(alwaysInclude, new GridBagBuilder(0, 3) .setAnchor(GridBagConstraints.LINE_START).build()); + + if (PrefixSearchRule.NO_PREFIXES.equals(searchRule)) { + noPrefixes.setSelected(true); + } else if (PrefixSearchRule.COMMON_PREFIXES.equals(searchRule)) { + commonPrefixes.setSelected(true); + } else { + alwaysInclude.setSelected(true); + this.presenter + .setSearchRule(this.presenter.getUniversalSearchRule()); + this.presenter.saveSettings(); + } } // ============ OTHER SETTINGS ============ -- cgit v1.2.3