Skip to content

Commit

Permalink
Refactored UIBuilder and made UIContext shareable between wizard pages
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Feb 13, 2013
1 parent 6a5427e commit ee28eca
Show file tree
Hide file tree
Showing 23 changed files with 158 additions and 119 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import javax.enterprise.inject.Vetoed;
import javax.inject.Inject;

import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UIContext;
Expand Down Expand Up @@ -45,32 +46,32 @@ public UICommandMetadata getMetadata()
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
initializeGroupIdInput(context);
initializeNameInput(context);
initializeVersionInput(context);
initializeGroupIdInput(builder);
initializeNameInput(builder);
initializeVersionInput(builder);
}

private void initializeGroupIdInput(UIContext context)
private void initializeGroupIdInput(UIBuilder builder)
{
groupId.setLabel("Group Id:");
groupId.setRequired(true);
context.getUIBuilder().add(groupId);
builder.add(groupId);
}

private void initializeNameInput(UIContext context)
private void initializeNameInput(UIBuilder builder)
{
name.setLabel("Name:");
name.setRequired(true);
context.getUIBuilder().add(name);
builder.add(name);
}

private void initializeVersionInput(UIContext context)
private void initializeVersionInput(UIBuilder builder)
{
version.setLabel("Version:");
version.setRequired(true);
context.getUIBuilder().add(version);
builder.add(version);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.jboss.forge.container.Forge;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.Results;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UIContext;
Expand Down Expand Up @@ -36,16 +37,16 @@ public boolean isEnabled(UIContext context)
public UICommandMetadata getMetadata()
{
return new UICommandMetadataBase(
ADDON_REMOVE_COMMAND_NAME,
ADDON_REMOVE_COMMAND_NAME,
ADDON_REMOVE_COMMAND_DESCRIPTION);
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
addons.setLabel("Installed addons");
addons.setValueChoices(forge.getRepository().listEnabled());
context.getUIBuilder().add(addons);
builder.add(addons);
}

@Override
Expand Down
11 changes: 5 additions & 6 deletions aesh/src/main/java/org/jboss/forge/aesh/ShellContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,16 @@
*/
package org.jboss.forge.aesh;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UIContext;
import org.jboss.forge.ui.UIInput;
import org.jboss.forge.ui.UIInputComponent;
import org.jboss.forge.ui.UISelection;
import org.jboss.forge.ui.UIValidationContext;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* @author <a href="mailto:stale.pedersen@jboss.org">Ståle W. Pedersen</a>
*/
Expand Down Expand Up @@ -77,7 +76,7 @@ public void addValidationError(UIInputComponent<?, ?> input, String errorMessage
}

@Override
public UIBuilder getUIBuilder()
public UIContext getUIContext()
{
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.jboss.forge.aesh.ShellContext;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.Results;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UIContext;
Expand Down Expand Up @@ -40,7 +41,7 @@ public boolean isEnabled(UIContext context)
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder context) throws Exception
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.jboss.forge.aesh.ShellContext;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.Results;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UIContext;
Expand Down Expand Up @@ -48,11 +49,11 @@ public boolean isEnabled(UIContext context)
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
clear.setLabel("clear");
clear.setRequired(true);
context.getUIBuilder().add(clear);
builder.add(clear);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.jboss.forge.container.AddonRegistry;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.Results;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UIContext;
Expand Down Expand Up @@ -51,7 +52,7 @@ public boolean isEnabled(UIContext context)
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
}

Expand Down
30 changes: 20 additions & 10 deletions aesh/src/main/java/org/jboss/forge/aesh/commands/LsCommand.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
package org.jboss.forge.aesh.commands;

import org.jboss.aesh.console.Config;
import org.jboss.aesh.util.Parser;
import org.jboss.forge.aesh.ShellContext;
import org.jboss.forge.ui.*;
import org.jboss.forge.ui.base.UICommandMetadataBase;

import javax.inject.Inject;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.inject.Inject;

import org.jboss.aesh.util.Parser;
import org.jboss.forge.aesh.ShellContext;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.Results;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UICompleter;
import org.jboss.forge.ui.UIContext;
import org.jboss.forge.ui.UIInput;
import org.jboss.forge.ui.UIInputComponent;
import org.jboss.forge.ui.UIInputMany;
import org.jboss.forge.ui.UIValidationContext;
import org.jboss.forge.ui.base.UICommandMetadataBase;

/**
* @author <a href="mailto:stale.pedersen@jboss.org">Ståle W. Pedersen</a>
*/
Expand All @@ -36,7 +46,7 @@ public boolean isEnabled(UIContext context)
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
about.setLabel("about");
about.setRequired(false);
Expand All @@ -50,7 +60,7 @@ public Iterable<String> getCompletionProposals(UIInputComponent<?,String> input,
return out;
}
});
context.getUIBuilder().add(about);
builder.add(about);

arguments.setLabel("");
arguments.setRequired(false);
Expand All @@ -65,7 +75,7 @@ public Iterable<String> getCompletionProposals(UIInputComponent<?,String> input,
}
}); */

context.getUIBuilder().add(arguments);
builder.add(arguments);
}

@Override
Expand Down
54 changes: 31 additions & 23 deletions aesh/src/test/java/org/jboss/forge/aesh/FooCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,24 @@
*/
package org.jboss.forge.aesh;

import org.jboss.forge.container.services.Exported;
import org.jboss.forge.ui.*;
import org.jboss.forge.ui.base.UICommandMetadataBase;

import javax.inject.Inject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.inject.Inject;

import org.jboss.forge.container.services.Exported;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.Results;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UICompleter;
import org.jboss.forge.ui.UIContext;
import org.jboss.forge.ui.UIInput;
import org.jboss.forge.ui.UIInputComponent;
import org.jboss.forge.ui.UIValidationContext;
import org.jboss.forge.ui.base.UICommandMetadataBase;

/**
* @author <a href="mailto:stale.pedersen@jboss.org">Ståle W. Pedersen</a>
*/
Expand All @@ -27,11 +36,11 @@ public class FooCommand implements UICommand
@Inject
private UIInput<String> foo;

@Inject
private UIInput<Boolean> bool;
@Inject
private UIInput<Boolean> bool;

@Inject
private UIInput<String> bar;
@Inject
private UIInput<String> bar;

@Override
public UICommandMetadata getMetadata()
Expand All @@ -46,24 +55,23 @@ public boolean isEnabled(UIContext context)
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
name.setLabel("foo");
name.setRequired(true);

foo.setCompleter(new UICompleter<String>() {
@Override
public Iterable<String> getCompletionProposals(UIInputComponent<?,String> input, String value) {
List<String> out = new ArrayList<String>();
out.add("foo1");
return out;
}
});
foo.setCompleter(new UICompleter<String>()
{
@Override
public Iterable<String> getCompletionProposals(UIInputComponent<?, String> input, String value)
{
List<String> out = new ArrayList<String>();
out.add("foo1");
return out;
}
});

context.getUIBuilder().add(name);
context.getUIBuilder().add(foo);
context.getUIBuilder().add(bool);
context.getUIBuilder().add(bar);
builder.add(name).add(foo).add(bool).add(bar);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@
*/
package org.jboss.forge.aesh.util;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import org.jboss.aesh.cl.CommandLine;
import org.jboss.aesh.cl.CommandLineParser;
import org.jboss.aesh.cl.OptionBuilder;
import org.jboss.aesh.cl.internal.ParameterInt;
import org.jboss.forge.aesh.ShellContext;
import org.jboss.forge.ui.Result;
import org.jboss.forge.ui.UIBuilder;
import org.jboss.forge.ui.UICommand;
import org.jboss.forge.ui.UICommandMetadata;
import org.jboss.forge.ui.UIContext;
Expand All @@ -22,8 +26,6 @@
import org.junit.Ignore;
import org.junit.Test;

import static org.junit.Assert.*;

/**
* @author <a href="mailto:stale.pedersen@jboss.org">Ståle W. Pedersen</a>
*/
Expand All @@ -35,7 +37,7 @@ public CommandLineUtilTest(String name)
{
}

@Test
@Test
public void testGenerateParser() throws Exception
{
ShellContext context = new ShellContext(null);
Expand All @@ -56,7 +58,7 @@ public void testGenerateParser() throws Exception

}

@Test
@Test
public void testPopulateUIInputs()
{
UIInput<String> input1 = new UIInputImpl<String>("str", String.class);
Expand Down Expand Up @@ -94,7 +96,7 @@ public void testPopulateUIInputs()
assertNull(input2.getValue());
}

@Test
@Test
public void testGenerateAndPopulate() throws Exception
{
ShellContext context = new ShellContext(null);
Expand Down Expand Up @@ -123,7 +125,7 @@ public boolean isEnabled(UIContext context)
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
}

Expand Down Expand Up @@ -151,13 +153,12 @@ public UICommandMetadata getMetadata()
}

@Override
public void initializeUI(UIContext context) throws Exception
public void initializeUI(UIBuilder builder) throws Exception
{
str = new UIInputImpl<String>("str", String.class);
bool = new UIInputImpl<Boolean>("bool", Boolean.class);

context.getUIBuilder().add(str);
context.getUIBuilder().add(bool);
builder.add(str).add(bool);
}

}
Expand Down
Loading

0 comments on commit ee28eca

Please sign in to comment.