Search in sources :

Example 1 with ListParameter

use of com.genericworkflownodes.knime.parameter.ListParameter in project GenericKnimeNodes by genericworkflownodes.

the class PlainNodeConfigurationWriter method write.

public void write(String filename) throws IOException {
    FileWriter out = new FileWriter(new File(filename));
    for (String key : nodeConfig.getParameterKeys()) {
        Parameter<?> p = nodeConfig.getParameter(key);
        StringBuffer sb = new StringBuffer();
        if (p instanceof ListParameter) {
            ListParameter lp = (ListParameter) p;
            for (String value : lp.getStrings()) {
                sb.append(String.format("\"%s\"\t", value));
            }
        } else {
            sb.append(String.format("\"%s\"\t", p.getStringRep()));
        }
        out.write(key + ":" + sb.toString() + LINESEP);
    }
    out.close();
}
Also used : FileWriter(java.io.FileWriter) ListParameter(com.genericworkflownodes.knime.parameter.ListParameter) File(java.io.File)

Example 2 with ListParameter

use of com.genericworkflownodes.knime.parameter.ListParameter in project GenericKnimeNodes by genericworkflownodes.

the class ParamCellEditor method getCellEditorValue.

@Override
public Object getCellEditorValue() {
    if (param instanceof StringParameter || param instanceof DoubleParameter || param instanceof IntegerParameter) {
        try {
            if ((new ParameterVerifier(param)).verify(field)) {
                param.fillFromString(field.getText());
            } else {
                JOptionPane.showMessageDialog(null, String.format("Invalid parameter value. Please provide a valid value for: %s", param.getMnemonic()));
            }
        } catch (InvalidParameterValueException e) {
            LOGGER.error(e.getMessage(), e);
        }
    }
    if (param instanceof StringChoiceParameter) {
        StringChoiceParameter scp = (StringChoiceParameter) param;
        String selectedValue = (String) choiceComboBox.getSelectedItem();
        scp.setValue(selectedValue);
    }
    if (param instanceof BoolParameter) {
        try {
            param.fillFromString(choiceComboBox.getSelectedItem().toString());
        } catch (InvalidParameterValueException e) {
            LOGGER.error(e.getMessage(), e);
        }
    }
    if (param instanceof ListParameter) {
        String workaround = listEditorComponent.getParameterValue();
        try {
            param.fillFromString(workaround);
        } catch (InvalidParameterValueException e) {
            LOGGER.error(e.getMessage(), e);
        }
    }
    return param;
}
Also used : IntegerParameter(com.genericworkflownodes.knime.parameter.IntegerParameter) StringParameter(com.genericworkflownodes.knime.parameter.StringParameter) DoubleParameter(com.genericworkflownodes.knime.parameter.DoubleParameter) InvalidParameterValueException(com.genericworkflownodes.knime.parameter.InvalidParameterValueException) ParameterVerifier(com.genericworkflownodes.knime.generic_node.dialogs.param_dialog.verifier.ParameterVerifier) StringChoiceParameter(com.genericworkflownodes.knime.parameter.StringChoiceParameter) BoolParameter(com.genericworkflownodes.knime.parameter.BoolParameter) ListParameter(com.genericworkflownodes.knime.parameter.ListParameter)

Example 3 with ListParameter

use of com.genericworkflownodes.knime.parameter.ListParameter in project GenericKnimeNodes by genericworkflownodes.

the class ParamCellEditor method getTableCellEditorComponent.

@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    param = (Parameter<?>) value;
    if (value instanceof StringChoiceParameter) {
        StringChoiceParameter scp = (StringChoiceParameter) value;
        String[] values = new String[scp.getLabels().size()];
        int i = 0;
        for (String s : scp.getLabels()) {
            values[i++] = s;
        }
        choiceComboBox = new JComboBox(values);
        // we need to make sure that we catch all edit operations.
        choiceComboBox.addItemListener(new ChoiceParamItemListener<StringChoiceParameter>(scp));
        choiceComboBox.setSelectedItem(scp.getValue());
        return choiceComboBox;
    }
    if (value instanceof StringParameter || value instanceof DoubleParameter || value instanceof IntegerParameter) {
        field = new JTextField(value.toString());
        field.setInputVerifier(new ParameterVerifier(param));
        return field;
    }
    if (value instanceof BoolParameter) {
        String[] values = new String[] { "true", "false" };
        choiceComboBox = new JComboBox(values);
        choiceComboBox.addItemListener(new ChoiceParamItemListener<BoolParameter>((BoolParameter) param));
        // Make sure that the old value is selected in the beginning.
        choiceComboBox.setSelectedIndex(((BoolParameter) value).getValue() ? 0 : 1);
        return choiceComboBox;
    }
    if (value instanceof ListParameter) {
        listEditorComponent = new ListEditorComponent((ListParameter) param, this);
        return listEditorComponent;
    }
    return null;
}
Also used : IntegerParameter(com.genericworkflownodes.knime.parameter.IntegerParameter) StringParameter(com.genericworkflownodes.knime.parameter.StringParameter) DoubleParameter(com.genericworkflownodes.knime.parameter.DoubleParameter) JComboBox(javax.swing.JComboBox) ListEditorComponent(com.genericworkflownodes.knime.generic_node.dialogs.param_dialog.list_editor.ListEditorComponent) StringChoiceParameter(com.genericworkflownodes.knime.parameter.StringChoiceParameter) JTextField(javax.swing.JTextField) ParameterVerifier(com.genericworkflownodes.knime.generic_node.dialogs.param_dialog.verifier.ParameterVerifier) BoolParameter(com.genericworkflownodes.knime.parameter.BoolParameter) ListParameter(com.genericworkflownodes.knime.parameter.ListParameter)

Example 4 with ListParameter

use of com.genericworkflownodes.knime.parameter.ListParameter in project GenericKnimeNodes by genericworkflownodes.

the class CLICommandGenerator method handleListParameter.

private void handleListParameter(final List<List<? extends CommandLineElement>> extractedParameterValues, final ListParameter listParameter) {
    final int nValues = listParameter.getStrings().size();
    final String key = ((Parameter<?>) listParameter).getKey();
    final List<CommandLineElement> tmpList = new LinkedList<CommandLineElement>();
    // there's only one element in the list
    if (nValues > 1) {
        int sequence = 0;
        for (final String value : listParameter.getStrings()) {
            final CommandLineElement commandLineElement;
            if (listParameter instanceof IFileParameter) {
                commandLineElement = new CommandLineFile(new FileParameter(key, value));
            } else {
                commandLineElement = new CommandLineParameter(new StringParameter(key, value));
            }
            commandLineElement.setSequenceNumber(sequence++);
            tmpList.add(commandLineElement);
        }
    } else {
        // only one value in the list, no need to use sequence numbers
        final String value = listParameter.getStrings().get(0);
        if (listParameter instanceof IFileParameter) {
            tmpList.add(new CommandLineFile(new FileParameter(key, value)));
        } else {
            tmpList.add(new CommandLineParameter(new StringParameter(key, value)));
        }
    }
    extractedParameterValues.add(tmpList);
}
Also used : IFileParameter(com.genericworkflownodes.knime.parameter.IFileParameter) StringParameter(com.genericworkflownodes.knime.parameter.StringParameter) CommandLineParameter(com.genericworkflownodes.knime.commandline.impl.CommandLineParameter) CommandLineFile(com.genericworkflownodes.knime.commandline.impl.CommandLineFile) ListParameter(com.genericworkflownodes.knime.parameter.ListParameter) BoolParameter(com.genericworkflownodes.knime.parameter.BoolParameter) FileParameter(com.genericworkflownodes.knime.parameter.FileParameter) CommandLineParameter(com.genericworkflownodes.knime.commandline.impl.CommandLineParameter) StringParameter(com.genericworkflownodes.knime.parameter.StringParameter) Parameter(com.genericworkflownodes.knime.parameter.Parameter) IFileParameter(com.genericworkflownodes.knime.parameter.IFileParameter) CommandLineFixedString(com.genericworkflownodes.knime.commandline.impl.CommandLineFixedString) CommandLineElement(com.genericworkflownodes.knime.commandline.CommandLineElement) FileParameter(com.genericworkflownodes.knime.parameter.FileParameter) IFileParameter(com.genericworkflownodes.knime.parameter.IFileParameter) LinkedList(java.util.LinkedList)

Example 5 with ListParameter

use of com.genericworkflownodes.knime.parameter.ListParameter in project GenericKnimeNodes by genericworkflownodes.

the class DockerCommandGenerator method extractParamterValues.

private List<List<? extends CommandLineElement>> extractParamterValues(CLIElement cliElement, List<CommandLineElement> dockerCommands, Map<String, String> hostDockerMap) throws IOException {
    List<List<? extends CommandLineElement>> extractedParameterValues = new ArrayList<List<? extends CommandLineElement>>();
    for (CLIMapping cliMapping : cliElement.getMapping()) {
        if (nodeConfig.getParameterKeys().contains(cliMapping.getReferenceName())) {
            Parameter<?> p = nodeConfig.getParameter(cliMapping.getReferenceName());
            if (!p.isNull()) {
                if (p instanceof ListParameter) {
                    ListParameter lp = (ListParameter) p;
                    if (lp.getStrings().size() > 0) {
                        final List<CommandLineElement> tmp = new ArrayList<CommandLineElement>();
                        for (final String s : lp.getStrings()) {
                            tmp.add(new CommandLineFixedString(s));
                        }
                        extractedParameterValues.add(tmp);
                    }
                } else if (p instanceof FileParameter) {
                    extractedParameterValues.add(handleFileParameter(((FileParameter) p).getValue(), dockerCommands, hostDockerMap));
                } else if (p instanceof FileListParameter) {
                    List<String> fl = ((FileListParameter) p).getValue();
                    if (fl.size() > 0) {
                        for (String hostFile : fl) {
                            extractedParameterValues.add(handleFileParameter(hostFile, dockerCommands, hostDockerMap));
                        }
                    }
                } else {
                    List<CommandLineElement> l = new ArrayList<CommandLineElement>();
                    l.add(new CommandLineParameter(p));
                    extractedParameterValues.add(l);
                }
            }
        }
    }
    return extractedParameterValues;
}
Also used : FileListParameter(com.genericworkflownodes.knime.parameter.FileListParameter) CommandLineParameter(com.genericworkflownodes.knime.commandline.impl.CommandLineParameter) ArrayList(java.util.ArrayList) CLIMapping(com.genericworkflownodes.knime.cliwrapper.CLIMapping) CommandLineElement(com.genericworkflownodes.knime.commandline.CommandLineElement) CommandLineFixedString(com.genericworkflownodes.knime.commandline.impl.CommandLineFixedString) CommandLineFixedString(com.genericworkflownodes.knime.commandline.impl.CommandLineFixedString) ArrayList(java.util.ArrayList) List(java.util.List) FileParameter(com.genericworkflownodes.knime.parameter.FileParameter) FileListParameter(com.genericworkflownodes.knime.parameter.FileListParameter) ListParameter(com.genericworkflownodes.knime.parameter.ListParameter)

Aggregations

ListParameter (com.genericworkflownodes.knime.parameter.ListParameter)5 BoolParameter (com.genericworkflownodes.knime.parameter.BoolParameter)3 StringParameter (com.genericworkflownodes.knime.parameter.StringParameter)3 CommandLineElement (com.genericworkflownodes.knime.commandline.CommandLineElement)2 CommandLineFixedString (com.genericworkflownodes.knime.commandline.impl.CommandLineFixedString)2 CommandLineParameter (com.genericworkflownodes.knime.commandline.impl.CommandLineParameter)2 ParameterVerifier (com.genericworkflownodes.knime.generic_node.dialogs.param_dialog.verifier.ParameterVerifier)2 DoubleParameter (com.genericworkflownodes.knime.parameter.DoubleParameter)2 FileParameter (com.genericworkflownodes.knime.parameter.FileParameter)2 IntegerParameter (com.genericworkflownodes.knime.parameter.IntegerParameter)2 StringChoiceParameter (com.genericworkflownodes.knime.parameter.StringChoiceParameter)2 CLIMapping (com.genericworkflownodes.knime.cliwrapper.CLIMapping)1 CommandLineFile (com.genericworkflownodes.knime.commandline.impl.CommandLineFile)1 ListEditorComponent (com.genericworkflownodes.knime.generic_node.dialogs.param_dialog.list_editor.ListEditorComponent)1 FileListParameter (com.genericworkflownodes.knime.parameter.FileListParameter)1 IFileParameter (com.genericworkflownodes.knime.parameter.IFileParameter)1 InvalidParameterValueException (com.genericworkflownodes.knime.parameter.InvalidParameterValueException)1 Parameter (com.genericworkflownodes.knime.parameter.Parameter)1 File (java.io.File)1 FileWriter (java.io.FileWriter)1