I'm constructing all my ScalarMaps internally through my own code I
added. In these loops, I extract the data types and set up the mappings
to DisplayRealTypes. I do this for every single input field that comes
in. That is why I have to create a "null" or "non-existent" mapping for
those that I don't want mapped. It's not as if the user can just not
select the fields that should not have a mapping because my iteration
automatically assigns something to every input field:
// sets up ScalarMap[] array to pass into setMaps. sets up
mapping for each gene for cell at (i,j)
public void setCellMapping(int width, int height) throws
VisADException, RemoteException {
//System.out.println("In setCellMapping() and
width = " + width + "height = " + height);
int fields = theJgapAPI.field_count; //limit on
for loop
int cellsAcross = mySS.NumVisX; //3 for now
int cell_number = (width + (cellsAcross *
height)); //used as arg to getMappingForCell()
ScalarMap[] theMaps = new ScalarMap[fields];
//array that will be passed into setMaps()
Data[] myData
mySS.DisplayCells[width][height].getData();
Vector myVector = new Vector(fields); //capacity
= 10 because there are 10 input fields in small.v5d
int useless = DataUtility.getScalarTypes(myData,
myVector, false, true); //will setup the myVector structure holding
input fields scalar types
for (int i = 0; i < fields; i++) {
//System.out.println("in
setCellMapping() and i = " + i);
int assignment
theJgapAPI.getMappingForCell(cell_number, i);
DisplayRealType mapTo
mappings[assignment];
RealType mapFrom = (RealType)
myVector.get(i);
theMaps[i] = new ScalarMap(mapFrom,
mapTo);
//System.out.println("mapFrom = " +
mapFrom);
//System.out.println("mapTo = "+mapTo);
//String name = mapsFrom[i]; //string
name of input field i for this file, small.v5d for now
//RealType mapFrom
RealType.getRealType(name); //constructs a RealType object from a given
String name
//theMaps[i] = new ScalarMap(mapFrom,
mapTo);
}
mySS.DisplayCells[width][height].setMaps(theMaps);
}
If you know of a better way to do this, let me know.
Michelle Kam (408) 742-2881
Lockheed Martin Space Systems Co. SSM/ATC/MSIS
B/153 O/L922
1111 Lockheed Martin Way, Sunnyvale, CA 94089
-----Original Message-----
From: Curtis Rueden [mailto:curtis@xxxxxxxxxxxxx]
Sent: Thursday, July 17, 2003 3:25 PM
To: Kam, Michelle C
Subject: RE: null scalary type in ScalarMap
Hi Michelle,
If you don't want a particular ScalarType mapped to the display,
then don't create a ScalarMap for it! You should not create any
ScalarMaps with null DisplayRealType.
-Curtis
At 05:08 PM 7/17/2003, you wrote:
>Hi Curtis,
>
>I'm actually trying to have null values for just the DisplayRealType
and
>not the ScalarType. I want the possibility for an input field to be
>mapped to a null value as one possible visualization instead of
*always*
>mapping every single input field in the data set to a VisAD parameter.
>
>However, as I dig further and further into the original code, I'm
>finding that I would have to modify many classes to avoid null pointer
>exceptions. Am I correct that there would be no simple way to wrap a
>null DisplayRealType without getting null pointer exceptions?
>
>Thanks,
>Michelle
>
>Michelle Kam (408) 742-2881
>Lockheed Martin Space Systems Co. SSM/ATC/MSIS
>B/153 O/L922
>1111 Lockheed Martin Way, Sunnyvale, CA 94089