From 7b3de6969968d014452d1f03923d6385eb7040bc Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 25 Aug 2015 03:10:37 +0000 Subject: [PATCH] Tweak UI for advanced search --- .../filters/CardAdvancedFilter.java | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java index a60c0287054..be28af9a4a3 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java @@ -224,6 +224,7 @@ public class CardAdvancedFilter extends ItemFilter { super("Advanced Search"); scroller.add(new OptionRow(false)); + scroller.add(new OptionRow(null)); } @Override @@ -231,60 +232,35 @@ public class CardAdvancedFilter extends ItemFilter { scroller.setBounds(0, startY, width, height - startY); } - private void addFilter(ItemFilter filter, OptionRow belowRow) { - if (scroller.getChildAt(scroller.getChildCount() - 1) == belowRow) { - scroller.add(new OptionRow(filter)); - scroller.add(new OptionRow(true)); - scroller.revalidate(); - scroller.scrollToBottom(); - } - else { //support swapping out one filter for another - OptionRow filterRow = (OptionRow)scroller.getChildAt(scroller.indexOf(belowRow) + 1); - filterRow.filter = filter; - filterRow.clear(); - filterRow.add(filter.getWidget()); - filterRow.revalidate(); - } + private void addFilter(ItemFilter filter, OptionRow filterRow) { + filterRow.clear(); + filterRow.filter = filter; + filterRow.add(filter.getWidget()); + scroller.add(new OptionRow(true)); + scroller.revalidate(); + scroller.scrollToBottom(); } private void addFilterSelectRow(OptionRow belowRow) { if (scroller.getChildAt(scroller.getChildCount() - 1) == belowRow) { scroller.add(new OptionRow(false)); + scroller.add(new OptionRow(null)); scroller.revalidate(); scroller.scrollToBottom(); } } private class OptionRow extends FContainer { - private FLabel btnOpenParen, btnCloseParen, btnAnd, btnOr, btnNot; + private FLabel btnOpenParen, btnCloseParen, btnAnd, btnOr, btnNot1, btnNot2; private ItemFilter filter; private OptionRow(ItemFilter filter0) { - filter = filter0; - add(filter.getWidget()); - } - private OptionRow(boolean includeOperators) { - if (includeOperators) { - btnCloseParen = add(new FLabel.Builder().align(HAlignment.CENTER).selectable().text(")").build()); - btnAnd = add(new FLabel.Builder().align(HAlignment.CENTER).text("AND").selectable().command(new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - btnOr.setSelected(false); - addFilterSelectRow(OptionRow.this); - } - }).build()); - btnOr = add(new FLabel.Builder().align(HAlignment.CENTER).text("OR").selectable().command(new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - btnAnd.setSelected(false); - addFilterSelectRow(OptionRow.this); - } - }).build()); + if (filter0 != null) { + filter = filter0; + add(filter.getWidget()); } else { - btnOpenParen = add(new FLabel.Builder().align(HAlignment.CENTER).text("(").selectable().build()); - btnNot = add(new FLabel.Builder().align(HAlignment.CENTER).text("NOT").selectable().build()); - add(new FLabel.ButtonBuilder().text("...").command(new FEventHandler() { + add(new FLabel.ButtonBuilder().text("Filter...").command(new FEventHandler() { @Override public void handleEvent(FEvent e) { FPopupMenu menu = new FPopupMenu() { @@ -346,6 +322,30 @@ public class CardAdvancedFilter extends ItemFilter { }).build()); } } + private OptionRow(boolean includeOperators) { + if (includeOperators) { + btnCloseParen = add(new FLabel.Builder().align(HAlignment.CENTER).selectable().text(")").build()); + btnAnd = add(new FLabel.Builder().align(HAlignment.CENTER).text("AND").selectable().command(new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + btnOr.setSelected(false); + addFilterSelectRow(OptionRow.this); + } + }).build()); + btnOr = add(new FLabel.Builder().align(HAlignment.CENTER).text("OR").selectable().command(new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + btnAnd.setSelected(false); + addFilterSelectRow(OptionRow.this); + } + }).build()); + } + else { + btnNot1 = add(new FLabel.Builder().align(HAlignment.CENTER).text("NOT").selectable().build()); + btnOpenParen = add(new FLabel.Builder().align(HAlignment.CENTER).text("(").selectable().build()); + btnNot1 = add(new FLabel.Builder().align(HAlignment.CENTER).text("NOT").selectable().build()); + } + } @Override protected void doLayout(float width, float height) {