Example usage for com.badlogic.gdx.scenes.scene2d.utils FocusListener FocusListener

List of usage examples for com.badlogic.gdx.scenes.scene2d.utils FocusListener FocusListener

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.utils FocusListener FocusListener.

Prototype

FocusListener

Source Link

Usage

From source file:com.aia.hichef.ui.n.MyDialog.java

License:Apache License

private void initialize() {
    setModal(true);/*from w  w w .  j  a va2 s  .  c om*/

    defaults().space(6);
    add(contentTable = new Table(skin)).expand().fill();
    row();
    add(buttonTable = new Table(skin));

    contentTable.defaults().space(6);
    buttonTable.defaults().space(6);

    buttonTable.addListener(new ChangeListener() {
        public void changed(ChangeEvent event, Actor actor) {
            if (!values.containsKey(actor))
                return;
            while (actor.getParent() != buttonTable)
                actor = actor.getParent();
            result(values.get(actor));
            if (!cancelHide)
                hide();
            cancelHide = false;
        }
    });

    addListener(new FocusListener() {
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!focused)
                focusChanged(event);
        }

        public void scrollFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!focused)
                focusChanged(event);
        }

        private void focusChanged(FocusEvent event) {
            Stage stage = getStage();
            if (isModal() && stage != null && stage.getRoot().getChildren().size > 0
                    && stage.getRoot().getChildren().peek() == MyDialog.this) { // Dialog
                // is
                // top
                // most
                // actor.
                Actor newFocusedActor = event.getRelatedActor();
                if (newFocusedActor != null && !newFocusedActor.isDescendantOf(MyDialog.this))
                    event.cancel();
            }
        }
    });
}

From source file:com.bladecoder.engineeditor.ui.components.PropertyTable.java

License:Apache License

public void addProperty(String name, String value, Types type) {

    table.row();/*ww  w.j av  a2  s.  co  m*/
    table.add(new Label(name, skin)).expandX().left();

    if (type == Types.BOOLEAN) {
        SelectBox<String> sb = new SelectBox<String>(skin);
        sb.setItems(BOOLEAN_VALUES);
        if (value != null)
            sb.setSelected(value);
        sb.setName(name);
        table.add(sb).expandX().left();

        sb.addListener(new ChangeListener() {

            @SuppressWarnings("unchecked")
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                updateModel(actor.getName(), ((SelectBox<String>) actor).getSelected());

            }
        });
    } else {
        TextField tf = new TextField(value == null ? "" : value, skin);
        tf.setName(name);
        table.add(tf).expandX().left();

        if (type == Types.INTEGER)
            tf.setTextFieldFilter(new TextField.TextFieldFilter.DigitsOnlyFilter());

        tf.setTextFieldListener(new TextFieldListener() {
            @Override
            public void keyTyped(TextField actor, char c) {
                if (c == 13) { // ENTER KEY
                    updateModel(actor.getName(), ((TextField) actor).getText());
                    EditorLogger.debug("Updating property: " + actor.getName());
                }
            }
        });

        tf.addListener(new FocusListener() {

            @Override
            public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
                if (!focused) {
                    updateModel(actor.getName(), ((TextField) actor).getText());
                    EditorLogger.debug("Updating property: " + actor.getName());
                }
            }
        });
    }
}

From source file:com.bladecoder.engineeditor.ui.EditActionDialog.java

License:Apache License

@SuppressWarnings("unchecked")
public EditActionDialog(Skin skin, Verb parent, Action e, String scope, int pos) {
    super(skin);/*from   w ww .j  a  v a 2s. com*/

    this.scope = scope;
    this.pos = e == null ? pos + 1 : pos;
    String[] actions = ActionFactory.getActionNames();
    Arrays.sort(actions);
    String[] actions2 = new String[actions.length + 1];
    System.arraycopy(actions, 0, actions2, 0, actions.length);
    actions2[actions2.length - 1] = CUSTOM_ACTION_STR;

    actionPanel = InputPanelFactory.createInputPanel(skin, "Action", "Select the action to create.", actions2,
            true);

    classPanel = InputPanelFactory.createInputPanel(skin, "Class", "Select the class for the custom action.",
            true);

    ((SelectBox<String>) actionPanel.getField()).addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            setAction();
        }
    });

    ((TextField) classPanel.getField()).addListener(new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!event.isFocused())
                setAction();
        }
    });

    if (e != null) {
        String id = ActionFactory.getName(e);

        classPanel.setText(e.getClass().getCanonicalName());

        if (id != null) {
            actionPanel.setText(id);
        } else {
            actionPanel.setText(CUSTOM_ACTION_STR);
        }

    }

    init(parent, e, new InputPanel[0]);

    setAction();

    if (e != null)
        modelToInputs();

}

From source file:com.coder5560.game.ui.MyDialog.java

License:Apache License

private void initialize() {
    setModal(true);// w  w w.ja  va  2 s.  c  o  m
    back2 = new Image(new NinePatchDrawable(
            new NinePatch(new NinePatch(Assets.instance.getRegion("ninepatch2"), 4, 4, 4, 4),
                    new Color(240 / 255f, 240 / 255f, 240 / 255f, 1))));
    addActor(back2);

    defaults().space(6);
    add(contentTable = new Table(skin)).expand().fill();
    row();
    add(buttonTable = new Table(skin));

    contentTable.defaults().space(6);
    buttonTable.defaults().space(6);

    buttonTable.addListener(new ChangeListener() {
        public void changed(ChangeEvent event, Actor actor) {
            if (!values.containsKey(actor))
                return;
            while (actor.getParent() != buttonTable)
                actor = actor.getParent();
            result(values.get(actor));
            if (!cancelHide)
                hide();
            cancelHide = false;
        }
    });

    addListener(new FocusListener() {
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!focused)
                focusChanged(event);
        }

        public void scrollFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!focused)
                focusChanged(event);
        }

        private void focusChanged(FocusEvent event) {
            Stage stage = getStage();
            if (isModal() && stage != null && stage.getRoot().getChildren().size > 0
                    && stage.getRoot().getChildren().peek() == MyDialog.this) { // Dialog
                // is
                // top
                // most
                // actor.
                Actor newFocusedActor = event.getRelatedActor();
                if (newFocusedActor != null && !newFocusedActor.isDescendantOf(MyDialog.this))
                    event.cancel();
            }
        }
    });
}

From source file:com.commons.color.ColorInputField.java

License:Apache License

public ColorInputField(final int maxValue, final ColorInputFieldListener listener) {
    super(new ColorFieldValidator(maxValue));
    this.value = 0;
    this.maxValue = maxValue;

    setProgrammaticChangeEvents(false);//from  w ww.j  av  a2s .co m
    setMaxLength(3);
    setTextFieldFilter(new NumberFilter());

    addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (getText().length() > 0)
                value = Integer.valueOf(getText());
        }
    });

    addListener(new InputListener() {
        @Override
        public boolean keyTyped(InputEvent event, char character) {
            ColorInputField field = (ColorInputField) event.getListenerActor();
            if (character == '+')
                field.changeValue(UIUtils.shift() ? 10 : 1);
            if (character == '-')
                field.changeValue(UIUtils.shift() ? -10 : -1);

            if (character != 0)
                listener.changed(getValue());

            return true;
        }
    });

    addListener(new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (focused == false && isInputValid() == false)
                setValue(maxValue); //only possibility on invalid field is that entered value will be bigger than maxValue so we set field value to maxValue
        }
    });
}

From source file:com.kotcrab.vis.editor.ui.scene.entityproperties.EntityProperties.java

License:Apache License

public EntityProperties(SceneModuleContainer sceneMC, Tab parentSceneTab) {
    super(true);/* w  w w .  j  a v a2s  . c  om*/
    sceneMC.injectModules(this);

    this.sceneMC = sceneMC;
    this.parentTab = parentSceneTab;

    setBackground(VisUI.getSkin().getDrawable("window-bg"));
    setTouchable(Touchable.enabled);
    setVisible(false);

    sharedChangeListener = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (actor instanceof VisCheckBox)
                throw new IllegalStateException(
                        "sharedChangeListener cannot be used for checkboxes, use sharedCheckBoxChangeListener instead");
            if (actor instanceof VisSelectBox)
                throw new IllegalStateException(
                        "sharedChangeListener cannot be used for selectBoxes, use sharedSelectBoxChangeListener instead");

            setValuesToEntities();
            parentTab.dirty();
        }
    };

    sharedChckAndSelectBoxChangeListener = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            beginSnapshot();
            setValuesToEntities();
            parentTab.dirty();
            endSnapshot();
        }
    };

    sharedFocusListener = new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (focused) {
                beginSnapshot();
            } else {
                endSnapshot();
            }
        }
    };

    sharedInputListener = new InputListener() {
        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            if (keycode == Keys.ENTER) {
                if (snapshotInProgress == false)
                    beginSnapshot();
                setValuesToEntities();
                parentTab.dirty();
                endSnapshot();
                return true;
            }

            return false;
        }
    };

    basicProperties = new BasicEntityPropertiesTable(this, colorPickerModule.getPicker());
    groupProperties = new GroupPropertiesTable(this);

    componentSelectDialog = new ComponentSelectDialog(sceneMC, this, clazz -> {
        try {
            ImmutableArray<EntityProxy> entities = getSelectedEntities();

            if (entities.size() == 0)
                return; //nothing is selected
            undoModule.execute(new ComponentAddAction(sceneMC, entities, clazz));
        } catch (ReflectiveOperationException e) {
            Log.exception(e);
            toastModule.show(new DetailsToast("Component creation failed!", e));
        }
    });

    addComponentButton = new VisTextButton("Add Component");
    addComponentButton.addListener(new VisChangeListener((event, actor) -> {
        boolean anyComponentAvailable = componentSelectDialog.build();
        if (anyComponentAvailable == false) {
            statusBarModule.setText("There isn't any available component");
            return;
        }
        getStage().addActor(componentSelectDialog);
        Vector2 pos = getStage().screenToStageCoordinates(
                new Vector2(Gdx.input.getX(), Gdx.input.getY() + componentSelectDialog.getHeight()));
        componentSelectDialog.setPosition(pos.x, pos.y);
        ActorUtils.keepWithinStage(getStage(), componentSelectDialog);
    }));

    reloadComponentTables();

    propertiesTable = new VisTable(true);

    VisScrollPane scrollPane = new VisScrollPane(propertiesTable);
    scrollPane.setScrollingDisabled(true, false);
    scrollPane.setFadeScrollBars(false);
    scrollPane.setFlickScroll(false);

    top();
    add(new VisLabel("Entity Properties")).row();
    add(scrollPane).fillX().expandX().padLeft(3).padRight(3);

    pack();
}

From source file:com.kotcrab.vis.ui.widget.color.ColorInputField.java

License:Apache License

public ColorInputField(final int maxValue, final ColorInputFieldListener listener) {
    super(new ColorFieldValidator(maxValue));
    this.value = 0;
    this.maxValue = maxValue;

    setProgrammaticChangeEvents(false);// ww  w . j  a v  a2 s  .c o m
    setMaxLength(3);
    setTextFieldFilter(new NumberFilter());

    addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (getText().length() > 0)
                value = Integer.valueOf(getText());
        }
    });

    addListener(new InputListener() {
        @Override
        public boolean keyTyped(InputEvent event, char character) {
            ColorInputField field = (ColorInputField) event.getListenerActor();
            if (character == '+')
                field.changeValue(Gdx.input.isKeyPressed(Keys.SHIFT_LEFT) ? 10 : 1);
            if (character == '-')
                field.changeValue(Gdx.input.isKeyPressed(Keys.SHIFT_LEFT) ? -10 : -1);

            if (character != 0)
                listener.changed(getValue());

            return true;
        }
    });

    addListener(new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (focused == false && isInputValid() == false)
                setValue(maxValue); //only possibility on invalid field is that entered value will be bigger than maxValue so we set field value to maxValue
        }
    });
}

From source file:com.kotcrab.vis.ui.widget.NumberSelector.java

License:Apache License

private void addTextFieldListeners() {
    valueText.addListener(new ChangeListener() {
        @Override/*  w  w  w .  ja va2  s .c om*/
        public void changed(ChangeEvent event, Actor actor) {
            textChanged();
        }
    });

    valueText.addListener(new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (focused == false) {

                try {
                    float newValue = Float.valueOf(valueText.getText());
                    setValue(newValue, true);
                } catch (NumberFormatException e) {
                    //if entered value is invalid then restore last valid value
                    valueChanged(true);
                }

                getStage().setScrollFocus(null);
            }
        }
    });

    valueText.addListener(new InputListener() {
        @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            getStage().setScrollFocus(valueText);
            return true;
        }

        @Override
        public boolean scrolled(InputEvent event, float x, float y, int amount) {
            if (amount == 1) {
                decrement(true);
            } else {
                increment(true);
            }

            return true;
        }

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            if (keycode == Keys.ENTER) {
                valueChanged(true);
                return true;
            }

            return false;
        }
    });
}

From source file:com.kotcrab.vis.ui.widget.spinner.Spinner.java

License:Apache License

private void addTextFieldListeners(final VisTextField textField) {
    textField.addListener(new ChangeListener() {
        @Override/*from   www . j  av a  2s .  co m*/
        public void changed(ChangeEvent event, Actor actor) {
            event.stop();
            model.textChanged();
            if (textField.isInputValid() && textFieldEventPolicy == TextFieldEventPolicy.ON_KEY_TYPED) {
                notifyValueChanged(true);
            }
        }
    });

    textField.addListener(new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (focused == false) {
                getStage().setScrollFocus(null);
                if (textFieldEventPolicy == TextFieldEventPolicy.ON_FOCUS_LOST) {
                    notifyValueChanged(true);
                }
            }
        }
    });

    textField.addListener(new InputListener() {
        @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            getStage().setScrollFocus(getTextField());
            return true;
        }

        @Override
        public boolean scrolled(InputEvent event, float x, float y, int amount) {
            if (disabled)
                return false;
            if (amount == 1) {
                decrement(true);
            } else {
                increment(true);
            }

            return true;
        }

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            if (keycode == Keys.ENTER) {
                notifyValueChanged(true);
                return true;
            }

            return false;
        }
    });
}

From source file:com.kotcrab.vis.ui.widget.VisDialog.java

License:Apache License

private void initialize() {
    setModal(true);/*from  w w w  .j  a  v a 2 s . c om*/
    getTitleLabel().setAlignment(VisUI.getDefaultTitleAlign());

    defaults().space(6);
    add(contentTable = new Table(skin)).expand().fill();
    row();
    add(buttonTable = new Table(skin));

    contentTable.defaults().space(2).padLeft(3).padRight(3);
    buttonTable.defaults().space(6).padBottom(3);

    buttonTable.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (!values.containsKey(actor))
                return;
            while (actor.getParent() != buttonTable)
                actor = actor.getParent();
            result(values.get(actor));
            if (!cancelHide)
                hide();
            cancelHide = false;
        }
    });

    focusListener = new FocusListener() {
        @Override
        public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!focused)
                focusChanged(event);
        }

        @Override
        public void scrollFocusChanged(FocusEvent event, Actor actor, boolean focused) {
            if (!focused)
                focusChanged(event);
        }

        private void focusChanged(FocusEvent event) {
            Stage stage = getStage();
            if (isModal() && stage != null && stage.getRoot().getChildren().size > 0
                    && stage.getRoot().getChildren().peek() == VisDialog.this) { // Dialog is top most actor.
                Actor newFocusedActor = event.getRelatedActor();
                if (newFocusedActor != null && !newFocusedActor.isDescendantOf(VisDialog.this))
                    event.cancel();
            }
        }
    };
}