Skip to content

Commit

Permalink
Fixed conversion in UICompleter
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Aug 27, 2013
1 parent f250aca commit 4dbf9ae
Showing 1 changed file with 16 additions and 1 deletion.
Expand Up @@ -2,9 +2,11 @@

import org.jboss.aesh.complete.CompleteOperation;
import org.jboss.aesh.complete.Completion;
import org.jboss.forge.addon.convert.Converter;
import org.jboss.forge.addon.convert.ConverterFactory;
import org.jboss.forge.addon.shell.ui.ShellContext;
import org.jboss.forge.addon.ui.input.InputComponent;
import org.jboss.forge.addon.ui.input.SelectComponent;
import org.jboss.forge.addon.ui.input.UICompleter;
import org.jboss.forge.addon.ui.util.InputComponents;
import org.jboss.forge.furnace.util.Strings;
Expand All @@ -24,18 +26,31 @@ public UICompleterCompletionStrategy(CompletionStrategy fallback)
this.fallback = fallback;
}

@SuppressWarnings("unchecked")
@Override
public void complete(CompleteOperation completeOperation, InputComponent<?, Object> input, ShellContext context,
String typedValue, ConverterFactory converterFactory)
{
UICompleter<Object> completer = InputComponents.getCompleterFor(input);
if (completer != null)
{
final Converter<Object, String> converter;
if (input instanceof SelectComponent)
{
converter = (Converter<Object, String>) InputComponents.getItemLabelConverter(converterFactory,
(SelectComponent<?, ?>) input);
}
else
{
converter = converterFactory.getConverter(input.getValueType(), String.class);
}

for (Object proposal : completer.getCompletionProposals(context, input, typedValue))
{
if (proposal != null)
{
completeOperation.addCompletionCandidate(proposal.toString());
String convertedValue = converter.convert(proposal);
completeOperation.addCompletionCandidate(convertedValue);
}
}
if (!completeOperation.getCompletionCandidates().isEmpty() && !Strings.isNullOrEmpty(typedValue))
Expand Down

0 comments on commit 4dbf9ae

Please sign in to comment.