(icecast) Add support for inline metadata (#1212)

This commit is contained in:
Doug Hoffman
2022-04-25 04:38:54 -04:00
committed by GitHub
parent ac8aa17a80
commit 60489e1fef
14 changed files with 315 additions and 94 deletions

View File

@@ -30,6 +30,7 @@ import javafx.geometry.Insets;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import org.controlsfx.control.ToggleSwitch;
/**
* Icecast streaming configuration editor
@@ -37,6 +38,7 @@ import javafx.scene.layout.GridPane;
public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastConfiguration>
{
private GridPane mEditorPane;
private ToggleSwitch mInlineToggleSwitch;
private TextField mMountPointTextField;
private TextField mUserNameTextField;
private TextField mDescriptionTextField;
@@ -52,6 +54,7 @@ public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastCo
public void setItem(IcecastConfiguration item)
{
getMountPointTextField().setDisable(item == null);
getInlineToggleSwitch().setDisable(item == null);
getUserNameTextField().setDisable(item == null);
getDescriptionTextField().setDisable(item == null);
getGenreTextField().setDisable(item == null);
@@ -60,6 +63,7 @@ public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastCo
if(item != null)
{
getMountPointTextField().setText(item.getMountPoint());
getInlineToggleSwitch().setSelected(item.getInline());
getUserNameTextField().setText(item.getUserName());
getDescriptionTextField().setText(item.getDescription());
getGenreTextField().setText(item.getGenre());
@@ -68,6 +72,7 @@ public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastCo
else
{
getMountPointTextField().setText(null);
getInlineToggleSwitch().setSelected(false);
getUserNameTextField().setText(null);
getDescriptionTextField().setText(null);
getGenreTextField().setText(null);
@@ -83,6 +88,7 @@ public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastCo
if(getItem() != null)
{
getItem().setMountPoint(getMountPointTextField().getText());
getItem().setInline(getInlineToggleSwitch().isSelected());
getItem().setUserName(getUserNameTextField().getText());
getItem().setDescription(getDescriptionTextField().getText());
getItem().setGenre(getGenreTextField().getText());
@@ -150,6 +156,14 @@ public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastCo
GridPane.setConstraints(getMountPointTextField(), 1, 3);
mEditorPane.getChildren().add(getMountPointTextField());
Label inlineLabel = new Label("Inline Metadata");
GridPane.setHalignment(inlineLabel, HPos.RIGHT);
GridPane.setConstraints(inlineLabel, 2, 3);
mEditorPane.getChildren().add(inlineLabel);
GridPane.setConstraints(getInlineToggleSwitch(), 3, 3);
mEditorPane.getChildren().add(getInlineToggleSwitch());
Label userNameLabel = new Label("User Name");
GridPane.setHalignment(userNameLabel, HPos.RIGHT);
GridPane.setConstraints(userNameLabel, 0, 4);
@@ -226,6 +240,19 @@ public abstract class IcecastStreamEditor extends AbstractStreamEditor<IcecastCo
return mMountPointTextField;
}
private ToggleSwitch getInlineToggleSwitch()
{
if(mInlineToggleSwitch == null)
{
mInlineToggleSwitch = new ToggleSwitch();
mInlineToggleSwitch.setDisable(true);
mInlineToggleSwitch.selectedProperty()
.addListener((observable, oldValue, newValue) -> modifiedProperty().set(true));
}
return mInlineToggleSwitch;
}
private TextField getUserNameTextField()
{
if(mUserNameTextField == null)