From cf0737ed90f8cef99a268eb41f68f5775c95ad3c Mon Sep 17 00:00:00 2001 From: TimmySheff Date: Sat, 11 Jul 2026 02:25:20 -0500 Subject: [PATCH] Add Alias List column to the playlist table (#2436) Co-authored-by: tsinmw --- .../gui/playlist/channel/ChannelEditor.java | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/dsheirer/gui/playlist/channel/ChannelEditor.java b/src/main/java/io/github/dsheirer/gui/playlist/channel/ChannelEditor.java index 098ac497..961ce7dc 100644 --- a/src/main/java/io/github/dsheirer/gui/playlist/channel/ChannelEditor.java +++ b/src/main/java/io/github/dsheirer/gui/playlist/channel/ChannelEditor.java @@ -440,7 +440,7 @@ public class ChannelEditor extends SplitPane implements IFilterProcessor, IAlias TableColumn autoStartColumn = new TableColumn<>("Auto-Start"); autoStartColumn.setCellValueFactory(new PropertyValueFactory<>("autoStart")); - autoStartColumn.setPrefWidth(95); + autoStartColumn.setPrefWidth(85); autoStartColumn.setCellFactory(param -> { TableCell tableCell = new TableCell<>() { @@ -476,7 +476,7 @@ public class ChannelEditor extends SplitPane implements IFilterProcessor, IAlias TableColumn nameColumn = new TableColumn("Name"); nameColumn.setCellValueFactory(new PropertyValueFactory<>("name")); - nameColumn.setPrefWidth(200); + nameColumn.setPrefWidth(175); TableColumn frequencyColumn = new TableColumn("Frequency"); frequencyColumn.setCellValueFactory(new FrequencyCellValueFactory()); @@ -486,8 +486,12 @@ public class ChannelEditor extends SplitPane implements IFilterProcessor, IAlias protocolColumn.setCellValueFactory(new ProtocolCellValueFactory()); protocolColumn.setPrefWidth(100); + TableColumn aliaslistColumn = new TableColumn("Alias List"); + aliaslistColumn.setCellValueFactory(new AliasListCellValueFactory()); + aliaslistColumn.setPrefWidth(150); + mChannelTableView.getColumns().addAll(systemColumn, siteColumn, nameColumn, frequencyColumn, protocolColumn, - playingColumn, autoStartColumn); + playingColumn, autoStartColumn, aliaslistColumn); mChannelTableView.setPlaceholder(getPlaceholderLabel()); //Sorting and filtering for the table @@ -712,6 +716,36 @@ public class ChannelEditor extends SplitPane implements IFilterProcessor, IAlias } } + /** + * Alias List value factory + */ + public class AliasListCellValueFactory implements Callback, + ObservableValue> + { + + private SimpleStringProperty mAliasList = new SimpleStringProperty(); + + @Override + public ObservableValue call(TableColumn.CellDataFeatures param) + { + Channel alist = param.getValue(); + + if(alist != null) + { + mAliasList.set((alist != null && alist.getAliasListName() != null) + ? alist.getAliasListName().toString() + : null); + } + else + { + mAliasList.set(null); + } + + return mAliasList; + } + + } + /** * Filter predicate for a filtered channel list */