I modified
ptolemy/actor/gui/PortConfigurerDialog.java
so that it gets the types from the TypeLattice. The code is:
/** Generate a combo box based on the type names. */
private JComboBox _createPortTypeComboBox() {
JComboBox jComboBox = _createComboBox();
// // Add the types from data.expr.Constants
// TreeMap typeMap = Constants.types();
// Iterator types = typeMap.keySet().iterator();
// while (types.hasNext()) {
// String type = (String) (types.next());
// jComboBox.addItem(type);
// }
// Get the types from the TypeLattice.
// http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5627
Object [] types = ((DirectedAcyclicGraph)TypeLattice.basicLattice()).topologicalSort();
List<String> typeList = new LinkedList<String>();
for (int i = 0; i < types.length; i++) {
typeList.add(types[i].toString());
}
// Add some common types
typeList.add("arrayType(int)");
typeList.add("arrayType(int,5)");
typeList.add("{x=double, y=double}");
Collections.sort(typeList);
for (String typeName : typeList) {
jComboBox.addItem(typeName);
}
return jComboBox;
}
The types that are now listed are:
Actor
[boolean]
[complex]
[double]
[fixedpoint]
[int]
[long]
arrayBottom
arrayType(int)
arrayType(int,5)
arrayType(unknown)
boolean
complex
double
event
fixedpoint
fixedpoint(0,0)
float
general
int
long
matrix
niltype
object(null)
petite
scalar
short
string
unknown
unsignedByte
xmltoken
{x=double, y=double}
{||}
{}
I'm not sure if this is useful or better or what, but I thought we
would try it. Note that {||} is a Union type and {} is an empty Record.
Is the Kepler Date type in the type lattice somehow?
If the Date type is not in the type lattice, then I don't think there
is a way to list all the standalone types like
ptolemy.actor.lib.security.KeyToken$KeyType
We could add a registry somewhere so that these standalone types get
recorded.
To really close this bug, we would need to set up a way to register types
that are not in the type lattice and then find all the types and register them.