diff --git a/src/main/java/io/github/dsheirer/gui/playlist/alias/identifier/DcsEditor.java b/src/main/java/io/github/dsheirer/gui/playlist/alias/identifier/DcsEditor.java
index 3579ebc2..02331f52 100644
--- a/src/main/java/io/github/dsheirer/gui/playlist/alias/identifier/DcsEditor.java
+++ b/src/main/java/io/github/dsheirer/gui/playlist/alias/identifier/DcsEditor.java
@@ -16,13 +16,13 @@
* along with this program. If not, see
* ****************************************************************************
*/
-
package io.github.dsheirer.gui.playlist.alias.identifier;
import io.github.dsheirer.alias.id.dcs.Dcs;
import io.github.dsheirer.module.decode.dcs.DCSCode;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
+import javafx.scene.control.ListCell;
import javafx.scene.layout.GridPane;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,10 +57,17 @@ public class DcsEditor extends IdentifierEditor
public void setItem(Dcs item)
{
super.setItem(item);
+
if(item.isValid())
{
getDCSCodeComboBox().getSelectionModel().select(item.getDCSCode());
}
+ else
+ {
+ // Clear selection for new/invalid items - shows placeholder
+ getDCSCodeComboBox().getSelectionModel().clearSelection();
+ }
+
modifiedProperty().set(false);
}
@@ -78,7 +85,7 @@ public class DcsEditor extends IdentifierEditor
/**
* Combo-box loaded with DCS codes
- * @return
+ * @return combo box
*/
private ComboBox getDCSCodeComboBox()
{
@@ -87,12 +94,37 @@ public class DcsEditor extends IdentifierEditor
mDCSCodeComboBox = new ComboBox<>();
mDCSCodeComboBox.getItems().addAll(DCSCode.STANDARD_CODES);
mDCSCodeComboBox.getItems().addAll(DCSCode.INVERTED_CODES);
+
+ // Set prompt text shown when nothing is selected
+ mDCSCodeComboBox.setPromptText("Select Code...");
+
+ // Custom cell factory to handle display
+ mDCSCodeComboBox.setButtonCell(new ListCell()
+ {
+ @Override
+ protected void updateItem(DCSCode item, boolean empty)
+ {
+ super.updateItem(item, empty);
+ if(empty || item == null)
+ {
+ setText("Select Code...");
+ }
+ else
+ {
+ setText(item.toString());
+ }
+ }
+ });
+
mDCSCodeComboBox.valueProperty().addListener((observable, oldValue, newValue) -> {
- getItem().setDCSCode(getDCSCodeComboBox().getSelectionModel().getSelectedItem());
- modifiedProperty().set(true);
+ if(newValue != null)
+ {
+ getItem().setDCSCode(newValue);
+ modifiedProperty().set(true);
+ }
});
}
return mDCSCodeComboBox;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/io/github/dsheirer/module/decode/dcs/DCSCode.java b/src/main/java/io/github/dsheirer/module/decode/dcs/DCSCode.java
index 218c764e..5fd7e27a 100644
--- a/src/main/java/io/github/dsheirer/module/decode/dcs/DCSCode.java
+++ b/src/main/java/io/github/dsheirer/module/decode/dcs/DCSCode.java
@@ -148,6 +148,7 @@ public enum DCSCode
N172(3084240),
N174(2035340),
N205(5278907),
+ N212(2657965),
N223(6589323),
N226(3442799),
N243(6459089),