List of usage examples for com.badlogic.gdx.scenes.scene2d.utils FocusListener FocusListener
FocusListener
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(); } } }; }