All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.lessvoid.nifty.examples.healthimage.HealthImageScreen Maven / Gradle / Ivy

Go to download

Lots of Nifty example code! You can find the source for nearly all demos/tutorials in here.

There is a newer version: 1.4.3
Show newest version
package de.lessvoid.nifty.examples.healthimage;

import javax.annotation.Nonnull;

import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.NiftyEventSubscriber;
import de.lessvoid.nifty.controls.SliderChangedEvent;
import de.lessvoid.nifty.elements.render.ImageRenderer;
import de.lessvoid.nifty.examples.NiftyExample;
import de.lessvoid.nifty.render.NiftyImage;
import de.lessvoid.nifty.render.image.ImageModeFactory;
import de.lessvoid.nifty.render.image.ImageModeHelper;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;

/**
 * @author void
 */
public class HealthImageScreen implements ScreenController, NiftyExample {
  private Nifty nifty;
  private NiftyImage healthImage;

  @Override
  public void bind(@Nonnull final Nifty newNifty, @Nonnull final Screen newScreen) {
    this.nifty = newNifty;
    healthImage = newScreen.findElementById("health").getRenderer(ImageRenderer.class).getImage();
  }

  @Override
  public void onStartScreen() {
  }

  @Override
  public void onEndScreen() {
  }

  @Nonnull
  @Override
  public String getStartScreen() {
    return "start";
  }

  @Nonnull
  @Override
  public String getMainXML() {
    return "healthimage/healthimage.xml";
  }

  @Nonnull
  @Override
  public String getTitle() {
    return "Nifty Health Image Example";
  }

  @Override
  public void prepareStart(@Nonnull Nifty nifty) {
  }

  @NiftyEventSubscriber(id="value")
  public void valueChanged(final String id, final SliderChangedEvent event) {
    // yep, a bit brute force ;) 
    int value = (int)event.getValue();
    String parameter = "subImageDirect:0," + (150 - value) + ",150," + value;
    String areaProviderProperty = ImageModeHelper.getAreaProviderProperty(parameter);
    String renderStrategyProperty = ImageModeHelper.getRenderStrategyProperty(parameter);
    healthImage.setImageMode(ImageModeFactory.getSharedInstance().createImageMode(areaProviderProperty, renderStrategyProperty));
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy