diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java index b471573d4dd..5235c83e269 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/FormatFilter.java @@ -45,6 +45,7 @@ public abstract class FormatFilter extends ItemFilter extends ItemFilter extends ItemFilter lstFormats = add(new FGroupList()); + private HistoricFormatSelect() { + super("Choose Format"); + for (GameFormat.FormatType group:GameFormat.FormatType.values()){ + lstFormats.addGroup(group.name()); + } + for (GameFormat format: FModel.getFormats().getOrderedList()){ + switch(format.getFormatType()){ + case Sanctioned: + lstFormats.addItem(format, 0); + break; + case Casual: + lstFormats.addItem(format, 1); + break; + case Historic: + lstFormats.addItem(format, 2); + break; + case Custom: + lstFormats.addItem(format, 3); + } + } + lstFormats.setListItemRenderer(new FormatRenderer()); + } + + @Override + public void onClose(Callback canCloseCallback) { + if (selectedFormat != null) { + format = selectedFormat; + cbxFormats.setText(selectedFormat.getName()); + applyChange(); + } + super.onClose(canCloseCallback); + } + + @Override + protected void doLayout(float startY, float width, float height) { + lstFormats.setBounds(0, startY, width, height - startY); + } + + private class FormatRenderer extends FList.ListItemRenderer{ + @Override + public float getItemHeight() { + return Utils.AVG_FINGER_HEIGHT; + } + + @Override + public boolean tap(Integer index, GameFormat value, float x, float y, int count) { + selectedFormat=value; + return true; + } + + @Override + public void drawValue(Graphics g, Integer index, GameFormat value, FSkinFont font, FSkinColor foreColor, FSkinColor backColor, boolean pressed, float x, float y, float w, float h) { + float offset = SettingsScreen.getInsets(w) - FList.PADDING; //increase padding for settings items + x += offset; + y += offset; + w -= 2 * offset; + h -= 2 * offset; + + float textHeight = h; + h *= 0.66f; + + g.drawText(value.toString(), font, foreColor, x, y, w - h - FList.PADDING, textHeight, false, HAlignment.LEFT, true); + + x += w - h; + y += (textHeight - h) / 2; + } + } + } + private class MultiSetSelect extends FScreen { private final Set selectedSets = new HashSet(); private final FGroupList lstSets = add(new FGroupList());