
com.guigarage.flatterfx.emoji.controls.EmojiIconView Maven / Gradle / Ivy
The newest version!
package com.guigarage.flatterfx.emoji.controls;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.ObjectPropertyBase;
import javafx.event.EventHandler;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import com.guigarage.flatterfx.emoji.Emoji;
import com.guigarage.flatterfx.emoji.EmojiFactory;
public class EmojiIconView extends ImageView {
private Emoji emoji;
public EmojiIconView(Emoji emoji) {
this(emoji, 32.0);
}
public EmojiIconView(Emoji emoji, double size) {
this.emoji = emoji;
setImage(EmojiFactory.getInstance().createEmojiImage(this.emoji));
setOnMouseClicked(new EventHandler() {
@Override
public void handle(MouseEvent event) {
EventHandler emojiEventHandler = getOnAction();
if(emojiEventHandler != null) {
emojiEventHandler.handle(new EmojiEvent(getEmoji()));
}
}
});
setFitHeight(size);
setFitWidth(size);
}
public Emoji getEmoji() {
return emoji;
}
public final ObjectProperty> onActionProperty() {
return onAction;
}
public final void setOnAction(EventHandler value) {
onActionProperty().set(value);
}
public final EventHandler getOnAction() {
return onActionProperty().get();
}
private ObjectProperty> onAction = new ObjectPropertyBase>() {
@Override
protected void invalidated() {
setEventHandler(EmojiEvent.EMOJI, get());
}
@Override
public Object getBean() {
return EmojiIconView.this;
}
@Override
public String getName() {
return "onEmoji";
}
};
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy