コード例 #1
0
ファイル: FrameWidget.java プロジェクト: prashanth-u/ead
  private void init(final Controller controller) {

    time.setRightAligned(true);
    time.setMaxLength(MAX_DURATION_LENGTH);
    time.setText(String.valueOf(frame.getTime()));
    time.setTextFieldFilter(
        new TextFieldFilter() {

          @Override
          public boolean acceptChar(TextField textField, char c) {
            return Character.isDigit(c) || c == '.';
          }
        });
    time.addListener(
        new InputListener() {

          private String previousText = time.getText();

          @Override
          public boolean keyTyped(InputEvent event, char character) {
            String text = time.getText();
            if (!text.isEmpty() && !text.equals(previousText)) {
              float timeVal = previousTime;
              try {
                timeVal = Float.valueOf(text);
              } catch (NumberFormatException formatEx) {
                Gdx.app.error(
                    "FrameWidget",
                    "Error getting frame time, setting previous time: " + previousTime,
                    formatEx);
              }

              if (timeVal != previousTime) {
                controller.action(SetFrameTime.class, frame, timeVal);
                previousText = String.valueOf(timeVal);
              }
            }
            return true;
          }
        });

    EditorGameAssets assets = controller.getEditorGameAssets();
    assets.get(
        ((es.eucm.ead.schema.renderers.Image) frame.getRenderer()).getUri(),
        Texture.class,
        new AssetLoadedCallback<Texture>() {

          @Override
          public void loaded(String fileName, Texture asset) {
            ((Image) widget).setDrawable(new TextureRegionDrawable(new TextureRegion(asset)));
          }
        },
        true);

    controller.getModel().addFieldListener(frame, textfieldListener);
  }