use of org.terasology.nui.widgets.UIButton in project Terasology by MovingBlocks.
the class JoinGameScreen method bindInfoLabels.
private void bindInfoLabels() {
final ReadOnlyBinding<ServerInfo> infoBinding = new ReadOnlyBinding<ServerInfo>() {
@Override
public ServerInfo get() {
return visibleList.getSelection();
}
};
UILabel name = find("name", UILabel.class);
if (name != null) {
name.bindText(BindHelper.bindBoundBeanProperty("name", infoBinding, ServerInfo.class, String.class));
}
UILabel owner = find("owner", UILabel.class);
if (owner != null) {
owner.bindText(BindHelper.bindBoundBeanProperty("owner", infoBinding, ServerInfo.class, String.class));
}
UILabel address = find("address", UILabel.class);
if (address != null) {
address.bindText(BindHelper.bindBoundBeanProperty("address", infoBinding, ServerInfo.class, String.class));
}
UILabel port = find("port", UILabel.class);
if (port != null) {
port.bindText(new IntToStringBinding(BindHelper.bindBoundBeanProperty("port", infoBinding, ServerInfo.class, int.class)));
}
UILabel onlinePlayers = find("onlinePlayers", UILabel.class);
onlinePlayers.bindText(new ReadOnlyBinding<String>() {
@Override
public String get() {
Future<ServerInfoMessage> info = extInfo.get(visibleList.getSelection());
if (info != null) {
if (info.isDone()) {
return getOnlinePlayersText(info);
} else {
return translationSystem.translate("${engine:menu#join-server-requested}");
}
}
return null;
}
});
UILabel modules = find("modules", UILabel.class);
modules.bindText(new ReadOnlyBinding<String>() {
@Override
public String get() {
Future<ServerInfoMessage> info = extInfo.get(visibleList.getSelection());
if (info != null) {
if (info.isDone()) {
return getModulesText(info);
} else {
return translationSystem.translate("${engine:menu#join-server-requested}");
}
}
return null;
}
});
UILabel worlds = find("worlds", UILabel.class);
worlds.bindText(new ReadOnlyBinding<String>() {
@Override
public String get() {
Future<ServerInfoMessage> info = extInfo.get(visibleList.getSelection());
if (info != null) {
if (info.isDone()) {
return getWorldText(info);
} else {
return translationSystem.translate("${engine:menu#join-server-requested}");
}
}
return null;
}
});
UIButton joinButton = find("join", UIButton.class);
if (joinButton != null) {
joinButton.bindEnabled(new ReadOnlyBinding<Boolean>() {
@Override
public Boolean get() {
return infoBinding.get() != null;
}
});
joinButton.subscribe(button -> {
config.save();
ServerInfo item = infoBinding.get();
if (item != null) {
join(item.getAddress(), item.getPort());
}
});
}
UIButton refreshButton = find("refresh", UIButton.class);
if (refreshButton != null) {
refreshButton.bindEnabled(new ReadOnlyBinding<Boolean>() {
@Override
public Boolean get() {
return visibleList.getSelection() != null;
}
});
refreshButton.subscribe(button -> {
refresh();
});
}
}
use of org.terasology.nui.widgets.UIButton in project Terasology by MovingBlocks.
the class LaunchPopup method setOptionButtonText.
public void setOptionButtonText(String buttonText) {
UIButton optionButton = find("option", UIButton.class);
optionButton.setText(buttonText);
}
use of org.terasology.nui.widgets.UIButton in project Terasology by MovingBlocks.
the class EnterUsernamePopup method initialise.
@Override
public void initialise() {
username = find("username", UIText.class);
username.setText(playerConfig.playerName.get());
username.bindTooltipString(new ReadOnlyBinding<String>() {
@Override
public String get() {
return validateUserName();
}
});
UIButton okButton = find("ok", UIButton.class);
if (okButton != null) {
okButton.subscribe(button -> {
playerConfig.playerName.set(username.getText().trim());
getManager().popScreen();
});
okButton.bindEnabled(new ReadOnlyBinding<Boolean>() {
@Override
public Boolean get() {
return Strings.isNullOrEmpty(validateUserName());
}
});
okButton.setTooltipDelay(0);
okButton.bindTooltipString(new ReadOnlyBinding<String>() {
@Override
public String get() {
return validateUserName();
}
});
}
WidgetUtil.trySubscribe(this, "cancel", button -> {
getManager().popScreen();
});
}
use of org.terasology.nui.widgets.UIButton in project Terasology by MovingBlocks.
the class FilePickerPopup method initialise.
@Override
public void initialise() {
WidgetUtil.trySubscribe(this, "gotoParent", button -> setCurrentDirectoryParent());
WidgetUtil.trySubscribe(this, "gotoRoot", button -> setCurrentDirectoryRoot());
WidgetUtil.trySubscribe(this, "gotoHome", button -> setCurrentDirectoryHome());
find("gotoParent", UIButton.class).bindEnabled(new ReadOnlyBinding<Boolean>() {
@Override
public Boolean get() {
return currentPath != null;
}
});
find("currentPath", UILabel.class).bindText(new ReadOnlyBinding<String>() {
@Override
public String get() {
return currentPath == null ? translationSystem.translate("${engine:menu#file-picker-roots-title}") : pathToString(currentPath, false);
}
});
find("fileName", UIText.class).bindText(new Binding<String>() {
@Override
public String get() {
return fileName;
}
@Override
public void set(String value) {
fileName = value;
}
});
find("filePath", UILabel.class).bindText(new ReadOnlyBinding<String>() {
@Override
public String get() {
if (currentPath == null) {
return translationSystem.translate("${engine:menu#file-picker-invalid-location}");
} else {
return isValidFilename(fileName) ? translationSystem.translate("") + getPathToFile().toString() : translationSystem.translate("${engine:menu#file-picker-invalid-file-name}");
}
}
});
directoryContentsScroller = find("directoryContentsScroller", ScrollableArea.class);
directoryContentsList = find("directoryContentsList", UIList.class);
directoryContentsList.subscribeSelection((widget, item) -> handleItemSelection(item));
setCurrentDirectoryHome();
UIButton ok = find("ok", UIButton.class);
ok.bindEnabled(new ReadOnlyBinding<Boolean>() {
@Override
public Boolean get() {
return isValid();
}
});
ok.subscribe(button -> {
if (isValid()) {
getManager().popScreen();
okHandler.accept(getPathToFile());
}
});
WidgetUtil.trySubscribe(this, "cancel", button -> getManager().popScreen());
}
use of org.terasology.nui.widgets.UIButton in project Terasology by MovingBlocks.
the class ConfirmUrlPopup method setLeftButton.
public void setLeftButton(String text, Runnable action) {
UIButton leftButton = find("leftButton", UIButton.class);
if (leftButton != null) {
leftButton.setText(text);
}
leftActon = action;
}
Aggregations