// option type == File
if (inputOption != null && inputOption.getValueType() == File.class)
{
completeOperation.setOffset(completeOperation.getCursor());
if (completeObject.getValue() == null)
new FileLister("", new File(System.getProperty("user.dir")))
.findMatchingDirectories(completeOperation);
else
new FileLister(completeObject.getValue(), new File(System.getProperty("user.dir")))
.findMatchingDirectories(completeOperation);
}
else if (inputOption != null && inputOption.getValueType() == Boolean.class)
{
// TODO
}
else if (inputOption != null && inputOption.getValueType() == String.class)
{
// if it has a default value we can try to auto complete that
if (inputOption instanceof UIInput)
{
if (completeObject.getValue() == null || ((((UIInput) inputOption).getValue() != null) &&
completeObject.getValue().startsWith(((UIInput) inputOption).getValue().toString())))
{
completeOperation.addCompletionCandidate(((UIInput) inputOption).getValue().toString());
}
}
}
// this shouldnt be needed
if (inputOption != null && inputOption instanceof UIInput)
{
Iterable<String> iter = ((UIInput) inputOption).getCompleter().getCompletionProposals(inputOption,
completeObject.getValue());
if (iter != null)
{
for (String s : iter)
completeOperation.addCompletionCandidate(s);
}
if (completeOperation.getCompletionCandidates().size() == 1)
{
completeOperation.setOffset(completeOperation.getCursor() -
completeObject.getOffset());
}
}
}
// try to complete a argument value
else if (completeObject.isArgument())
{
InputComponent inputOption = context.findInput("arguments"); // default for arguments
if (inputOption != null && inputOption.getValueType() == File.class)
{
completeOperation.setOffset(completeOperation.getCursor());
if (completeObject.getValue() == null)
new FileLister("", new File(System.getProperty("user.dir")))
.findMatchingDirectories(completeOperation);
else
new FileLister(completeObject.getValue(), new File(System.getProperty("user.dir")))
.findMatchingDirectories(completeOperation);
}
else if (inputOption != null && inputOption.getValueType() == Boolean.class)
{
// TODO