Search in sources :

Example 1 with Widget

use of com.twosigma.beakerx.widget.Widget in project beakerx by twosigma.

the class LinkTest method createWithFourParams_shouldSendCommOpenMessage.

@Test
public void createWithFourParams_shouldSendCommOpenMessage() throws Exception {
    // given
    Widget source = new IntSlider();
    Widget target = new Text();
    kernel.clearPublishedMessages();
    // when
    new Link(source, "source", target, "target");
    // then
    Assertions.assertThat(SearchMessages.getListWidgetsByModelName(kernel.getPublishedMessages(), Link.MODEL_NAME_VALUE)).isNotEmpty();
}
Also used : Widget(com.twosigma.beakerx.widget.Widget) Text(com.twosigma.beakerx.widget.Text) IntSlider(com.twosigma.beakerx.widget.IntSlider) Link(com.twosigma.beakerx.widget.Link) Test(org.junit.Test) KernelTest(com.twosigma.beakerx.KernelTest)

Example 2 with Widget

use of com.twosigma.beakerx.widget.Widget in project beakerx by twosigma.

the class CyclingDisplayBoxTest method createWithParam_shouldSendCommOpenMessage.

@Test
public void createWithParam_shouldSendCommOpenMessage() throws Exception {
    // given
    List<Widget> children = Arrays.asList(new IntSlider(), new Text());
    kernel.clearPublishedMessages();
    // when
    new CyclingDisplayBox(children);
    // then
    verifyInternalOpenCommMsgWitLayout(kernel.getPublishedMessages(), CyclingDisplayBox.MODEL_NAME_VALUE, CyclingDisplayBox.VIEW_NAME_VALUE);
}
Also used : Widget(com.twosigma.beakerx.widget.Widget) Text(com.twosigma.beakerx.widget.Text) CyclingDisplayBox(com.twosigma.beakerx.widget.CyclingDisplayBox) IntSlider(com.twosigma.beakerx.widget.IntSlider) Test(org.junit.Test) KernelTest(com.twosigma.beakerx.KernelTest)

Example 3 with Widget

use of com.twosigma.beakerx.widget.Widget in project beakerx by twosigma.

the class TabTest method shouldSendCommOpenWhenCreateWithChildren.

@Test
public void shouldSendCommOpenWhenCreateWithChildren() throws Exception {
    // given
    List<Widget> children = asList(new IntSlider(), new Text());
    kernel.clearPublishedMessages();
    // when
    new Tab(children, asList("t1", "t2"));
    // then
    verifyInternalOpenCommMsgWitLayout(kernel.getPublishedMessages(), Tab.MODEL_NAME_VALUE, Tab.VIEW_NAME_VALUE);
    verifyChildren(children);
    verifyTitles();
}
Also used : Tab(com.twosigma.beakerx.widget.Tab) Widget(com.twosigma.beakerx.widget.Widget) Text(com.twosigma.beakerx.widget.Text) IntSlider(com.twosigma.beakerx.widget.IntSlider) Test(org.junit.Test) KernelTest(com.twosigma.beakerx.KernelTest)

Example 4 with Widget

use of com.twosigma.beakerx.widget.Widget in project beakerx by twosigma.

the class DirectionalLinkTest method createWithFourParams_shouldSendCommOpenMessage.

@Test
public void createWithFourParams_shouldSendCommOpenMessage() throws Exception {
    // given
    Widget source = new IntSlider();
    Widget target = new Text();
    kernel.clearPublishedMessages();
    // when
    new DirectionalLink(source, "source", target, "target");
    // then
    Assertions.assertThat(SearchMessages.getListWidgetsByModelName(kernel.getPublishedMessages(), DirectionalLink.MODEL_NAME_VALUE)).isNotEmpty();
}
Also used : DirectionalLink(com.twosigma.beakerx.widget.DirectionalLink) Widget(com.twosigma.beakerx.widget.Widget) Text(com.twosigma.beakerx.widget.Text) IntSlider(com.twosigma.beakerx.widget.IntSlider) Test(org.junit.Test) KernelTest(com.twosigma.beakerx.KernelTest)

Example 5 with Widget

use of com.twosigma.beakerx.widget.Widget in project beakerx by twosigma.

the class Interactive method interact.

@SuppressWarnings("unchecked")
public static synchronized void interact(MethodClosure function, Object... parameters) {
    final List<ValueWidget<?>> widgets = widgetsFromAbbreviations(parameters);
    for (ValueWidget<?> widget : widgets) {
        widget.getComm().addMsgCallbackList(widget.new ValueChangeMsgCallbackHandler() {

            private void processCode(Object... params) throws Exception {
                Object call = function.call(getWidgetValues());
                if (call instanceof String || call instanceof Number) {
                    label.setValue(call);
                }
            }

            @Override
            public void updateValue(Object value, Message message) {
                try {
                    processCode();
                } catch (Exception e) {
                    throw new IllegalStateException("Error occurred during updating interactive widget.", e);
                }
            }

            private Object[] getWidgetValues() {
                List<Object> ret = new ArrayList<>(widgets.size());
                for (ValueWidget<?> wid : widgets) {
                    ret.add(wid.getValue());
                }
                return ret.toArray(new Object[ret.size()]);
            }
        });
        logger.info("interact Widget: " + widget.getClass().getName());
    }
    widgets.forEach(Widget::display);
    Object response = function.call(widgets.stream().map(ValueWidget::getValue).toArray());
    if (response instanceof Widget) {
        ((Widget) response).display();
    } else {
        label = new Label();
        label.setValue(response);
        label.display();
    }
}
Also used : ValueWidget(com.twosigma.beakerx.widget.ValueWidget) Message(com.twosigma.beakerx.message.Message) Widget(com.twosigma.beakerx.widget.Widget) ValueWidget(com.twosigma.beakerx.widget.ValueWidget) Label(com.twosigma.beakerx.widget.Label) List(java.util.List) ArrayList(java.util.ArrayList)

Aggregations

Widget (com.twosigma.beakerx.widget.Widget)8 KernelTest (com.twosigma.beakerx.KernelTest)4 IntSlider (com.twosigma.beakerx.widget.IntSlider)4 Text (com.twosigma.beakerx.widget.Text)4 Test (org.junit.Test)4 HBox (com.twosigma.beakerx.widget.HBox)2 Tab (com.twosigma.beakerx.widget.Tab)2 ValueWidget (com.twosigma.beakerx.widget.ValueWidget)2 ArrayList (java.util.ArrayList)2 Message (com.twosigma.beakerx.message.Message)1 BoolWidget (com.twosigma.beakerx.widget.BoolWidget)1 Box (com.twosigma.beakerx.widget.Box)1 CyclingDisplayBox (com.twosigma.beakerx.widget.CyclingDisplayBox)1 DirectionalLink (com.twosigma.beakerx.widget.DirectionalLink)1 GridView (com.twosigma.beakerx.widget.GridView)1 Label (com.twosigma.beakerx.widget.Label)1 Link (com.twosigma.beakerx.widget.Link)1 VBox (com.twosigma.beakerx.widget.VBox)1 List (java.util.List)1