GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — scijava-common/src/main/java/org/scijava/command/Inputs.java at main · scijava/scijava-common Expand file tree/ Copy pathInputs.javaMore file actions 102 lines (96 loc) · 3.7 KB / Copy pathInputs.javaFile metadata and controls102 lines (96 loc) · 3.7 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 /* * #%L * SciJava Common shared library for SciJava software. * %% * Copyright (C) 2009 - 2026 SciJava developers. * %% * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * #L% */ package org.scijava.command; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; import org.scijava.Context; import org.scijava.module.process.PreprocessorPlugin; /** * A way to build a dynamic set of inputs, whose values are then harvested by * the preprocessing framework. * <p> * The {@link #run()} method of this command does nothing. If you want something * custom to happen during execution, use a normal {@link Command} instead: * either implement {@link Command directly}, or extend {@link ContextCommand} * or {@link DynamicCommand}. * </p> * <p> * Here is are some examples of usage: * </p> * * <pre> * {@code * // Single input, no configuration. * Inputs inputs = new Inputs(context); * inputs.addInput("sigma", Double.class); * Double sigma = (Double) inputs.harvest().get("sigma"); * * // Two inputs, no configuration. * Inputs inputs = new Inputs(context); * inputs.addInput("name", String.class); * inputs.addInput("age", Integer.class); * Map<String, Object> values = inputs.harvest(); * String name = (String) values.get("name"); * Integer age = (Integer) values.get("age"); * * // Inputs with configuration. * Inputs inputs = new Inputs(context); * MutableModuleItem<String> wordInput = inputs.addInput("word", String.class); * wordInput.setLabel("Favorite word"); * wordInput.setChoices(Arrays.asList("quick", "brown", "fox")); * wordInput.setDefaultValue("fox"); * MutableModuleItem<Double> opacityInput = inputs.addInput("opacity", Double.class); * opacityInput.setMinimumValue(0.0); * opacityInput.setMaximumValue(1.0); * opacityInput.setDefaultValue(0.5); * opacityInput.setWidgetStyle(NumberWidget.SCROLL_BAR_STYLE); * inputs.harvest(); * String word = wordInput.getValue(inputs); * Double opacity = opacityInput.getValue(inputs); * } * </pre> * * @author Curtis Rueden */ public final class Inputs extends DynamicCommand { public Inputs(final Context context) { context.inject(this); } public Map<String, Object> harvest() { try { final List<PreprocessorPlugin> pre = // pluginService.createInstancesOfType(PreprocessorPlugin.class); return moduleService.run(this, pre, null).get().getInputs(); } catch (final InterruptedException | ExecutionException exc) { throw new RuntimeException(exc); } } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |