private static void addMinMaxOptionsAndHideOriginal(Options options, SimpleListener listener) { for (Options.Option option : options.getOptions()) { if (option.isAdvanced()) { // At this stage we don't want to deal with batches of advanced options. // The advanced options at the moment are only for MUSCLE and there are a lot of them // which would bloat the interface too much if we added them all on one line as a // MultiValueOption option.setAdvanced( false); // add advanced option back to basic panel, since there is a layout issue on // small screen continue; } MultiValueOption multiValueOption = null; if (option instanceof Options.IntegerOption) { multiValueOption = new IntegerMultiValueOption((Options.IntegerOption) option); } else if (option instanceof Options.DoubleOption) { multiValueOption = new DoubleMultiValueOption((Options.DoubleOption) option); } if (multiValueOption != null) { option.setVisible(false); options.addCustomOption(multiValueOption); multiValueOption.addChangeListener(listener); } } for (Options childOptions : options.getChildOptions().values()) { addMinMaxOptionsAndHideOriginal(childOptions, listener); } }
private static int getBatchSize(Options options) { int total = 1; for (Option option : options.getOptions()) { if (option instanceof MultiValueOption<?>) { total *= ((MultiValueOption<?>) option).getValue().size(); } } for (Options childOptions : options.getChildOptions().values()) { total *= getBatchSize(childOptions); } return total; }
private static Map<String, MultiValueOption<?>> getMultiValueOptions( String prefix, Options options) { Map<String, MultiValueOption<?>> result = new HashMap<String, MultiValueOption<?>>(); for (Option option : options.getOptions()) { if (option instanceof MultiValueOption) { result.put( prefix + option.getName().replace(MultiValueOption.SUFFIX, ""), (MultiValueOption) option); } } for (Map.Entry<String, Options> entry : options.getChildOptions().entrySet()) { result.putAll(getMultiValueOptions(prefix + entry.getKey() + ".", entry.getValue())); } return result; }