mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-22 01:11:42 +00:00
Initial checkin of unified hierarchy of WPILib 2015
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package edu.wpi.first.tableviewer;
|
||||
|
||||
import edu.wpi.first.wpilibj.networktables.NetworkTableProvider;
|
||||
import edu.wpi.first.wpilibj.networktables2.NetworkTableNode;
|
||||
import javax.swing.event.TableModelEvent;
|
||||
|
||||
/**
|
||||
* Responsible for showing data inside a single NetworkTableEntry: a key, a
|
||||
* value, and a type that has been extrapolated from the value.
|
||||
*
|
||||
* @author Sam
|
||||
*/
|
||||
public class LeafNode extends AbstractTreeNode {
|
||||
|
||||
public LeafNode(NetworkTableNode node, String key, TableEntryData data) {
|
||||
super(node, key, data);
|
||||
table = new NetworkTableProvider(node).getTable(key.substring(0, key.lastIndexOf('/')));
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the value of the data displayed within this leaf. This is only a
|
||||
* graphical update; use #setValue to actually change the value in the
|
||||
* NetworkTable.
|
||||
*
|
||||
* @param newValue The new value for this leaf to show.
|
||||
*/
|
||||
public void updateValue(Object newValue) {
|
||||
data.setValue(newValue);
|
||||
outline.tableChanged(new TableModelEvent(outline.getModel()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Pushes the value of this leaf to the NetworkTable associated with it.
|
||||
*
|
||||
* @param newValue The value to send to the NetworkTable.
|
||||
*/
|
||||
public void setValue(Object newValue) {
|
||||
String v = newValue.toString();
|
||||
switch (data.getType().toString()) {
|
||||
case "Boolean":
|
||||
table.putBoolean(data.getKey(), v.equalsIgnoreCase("true"));
|
||||
break;
|
||||
case "Number":
|
||||
try {
|
||||
table.putNumber(data.getKey(), Double.parseDouble(v));
|
||||
} catch (NumberFormatException e) {
|
||||
System.err.println("Invalid number " + v);
|
||||
}
|
||||
break;
|
||||
case "String":
|
||||
table.putString(data.getKey(), v);
|
||||
break;
|
||||
default:
|
||||
System.err.println("Cannot edit a value of type " + data.getType());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLeaf() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return data.getKey();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user