Skip to content

Commit

Permalink
load from .widget topic for composite data
Browse files Browse the repository at this point in the history
  • Loading branch information
Starlight220 committed Feb 20, 2023
1 parent 356977e commit f658ed8
Showing 1 changed file with 14 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package edu.wpi.first.shuffleboard.plugin.networktables.sources;

import edu.wpi.first.networktables.NetworkTableValue;
import edu.wpi.first.shuffleboard.api.data.ComplexData;
import edu.wpi.first.shuffleboard.api.data.ComplexDataType;
import edu.wpi.first.shuffleboard.api.data.IncompleteDataException;
Expand All @@ -13,6 +14,7 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.logging.Level;
import java.util.logging.Logger;

Expand All @@ -27,6 +29,8 @@ public class CompositeNetworkTableSource<D extends ComplexData<D>> extends Netwo

private static final Logger log = Logger.getLogger(CompositeNetworkTableSource.class.getName());

private Optional<String> preferredWidget;

private final Map<String, Object> backingMap = new HashMap<>();
private final ComplexDataType<D> dataType;

Expand All @@ -43,6 +47,7 @@ public CompositeNetworkTableSource(String tableName, ComplexDataType<D> dataType
this.dataType = dataType;
String path = NetworkTable.normalizeKey(tableName, false);
NetworkTable table = NetworkTableInstance.getDefault().getTable(path);
preferredWidget = loadWidgetFromWidgetEntry(table);
setData(dataType.getDefaultValue());

setTableListener((key, event) -> {
Expand Down Expand Up @@ -86,4 +91,13 @@ public ComplexDataType<D> getDataType() {
protected boolean isSingular() {
return false;
}

@Override
public Optional<String> preferredWidget() {
return preferredWidget;
}

private static Optional<String> loadWidgetFromWidgetEntry(NetworkTable table) {
return Optional.ofNullable(table.getValue(".widget")).filter(NetworkTableValue::isString).map(NetworkTableValue::getString);
}
}

0 comments on commit f658ed8

Please sign in to comment.