Search in sources :

Example 11 with ComponentStateListener

use of org.apache.pivot.wtk.ComponentStateListener in project pivot by apache.

the class ComponentInspectorSkin method addSpanControl.

private static Component addSpanControl(final Dictionary<String, Object> dictionary, final String key, Form.Section section) {
    Span span = (Span) dictionary.get(key);
    BoxPane boxPane = new BoxPane(Orientation.VERTICAL);
    section.add(boxPane);
    Form.setLabel(boxPane, key);
    FlowPane flowPane = new FlowPane();
    flowPane.getStyles().put(Style.alignToBaseline, true);
    flowPane.getStyles().put(Style.horizontalSpacing, 5);
    boxPane.add(flowPane);
    TextInput textInput = new TextInput();
    textInput.setTextSize(10);
    textInput.setMaximumLength(10);
    textInput.setValidator(new IntValidator());
    textInput.setText(span == null ? "" : String.valueOf(span.start));
    flowPane.add(textInput);
    textInput.getComponentStateListeners().add(new ComponentStateListener() {

        @Override
        public void focusedChanged(Component component, Component obverseComponent) {
            if (!component.isFocused()) {
                TextInput textInputLocal = (TextInput) component;
                Span spanLocal = (Span) dictionary.get(key);
                try {
                    int start = Integer.parseInt(textInputLocal.getText());
                    dictionary.put(key, new Span(start, spanLocal == null ? start : spanLocal.end));
                } catch (Exception exception) {
                    displayErrorMessage(exception, component.getWindow());
                    textInputLocal.setText(spanLocal == null ? "" : String.valueOf(spanLocal.start));
                }
            }
        }
    });
    Label label = new Label("start");
    label.getStyles().put(Style.font, "{italic:true}");
    flowPane.add(label);
    flowPane = new FlowPane();
    flowPane.getStyles().put(Style.alignToBaseline, true);
    flowPane.getStyles().put(Style.horizontalSpacing, 5);
    boxPane.add(flowPane);
    textInput = new TextInput();
    textInput.setTextSize(10);
    textInput.setMaximumLength(10);
    textInput.setValidator(new IntValidator());
    textInput.setText(span == null ? "" : String.valueOf(span.end));
    flowPane.add(textInput);
    textInput.getComponentStateListeners().add(new ComponentStateListener() {

        @Override
        public void focusedChanged(Component component, Component obverseComponent) {
            if (!component.isFocused()) {
                TextInput textInputLocal = (TextInput) component;
                Span spanLocal = (Span) dictionary.get(key);
                try {
                    int end = Integer.parseInt(textInputLocal.getText());
                    dictionary.put(key, new Span(spanLocal == null ? end : spanLocal.start, end));
                } catch (Exception exception) {
                    displayErrorMessage(exception, component.getWindow());
                    textInputLocal.setText(spanLocal == null ? "" : String.valueOf(spanLocal.end));
                }
            }
        }
    });
    label = new Label("end");
    label.getStyles().put(Style.font, "{italic:true}");
    flowPane.add(label);
    return boxPane;
}
Also used : IntValidator(org.apache.pivot.wtk.validation.IntValidator) BoxPane(org.apache.pivot.wtk.BoxPane) Label(org.apache.pivot.wtk.Label) FlowPane(org.apache.pivot.wtk.FlowPane) TextInput(org.apache.pivot.wtk.TextInput) Component(org.apache.pivot.wtk.Component) Span(org.apache.pivot.wtk.Span) ComponentStateListener(org.apache.pivot.wtk.ComponentStateListener)

Aggregations

Component (org.apache.pivot.wtk.Component)11 ComponentStateListener (org.apache.pivot.wtk.ComponentStateListener)11 TextInput (org.apache.pivot.wtk.TextInput)11 IntValidator (org.apache.pivot.wtk.validation.IntValidator)8 BoxPane (org.apache.pivot.wtk.BoxPane)7 FlowPane (org.apache.pivot.wtk.FlowPane)7 Label (org.apache.pivot.wtk.Label)7 Point (org.apache.pivot.wtk.Point)2 CornerRadii (org.apache.pivot.wtk.CornerRadii)1 Dimensions (org.apache.pivot.wtk.Dimensions)1 Insets (org.apache.pivot.wtk.Insets)1 Limits (org.apache.pivot.wtk.Limits)1 Scope (org.apache.pivot.wtk.ScrollBar.Scope)1 Span (org.apache.pivot.wtk.Span)1 DoubleValidator (org.apache.pivot.wtk.validation.DoubleValidator)1 FloatValidator (org.apache.pivot.wtk.validation.FloatValidator)1