public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (cmd.equals("del")) { try { UnionSet set = (UnionSet) ref.getData(); SampledSet[] sets = set.getSets(); SampledSet[] new_sets = new SampledSet[sets.length - 1]; System.arraycopy(sets, 0, new_sets, 0, sets.length - 1); ref.setData(new UnionSet(set.getType(), new_sets)); } catch (VisADException ex) { } catch (RemoteException ex) { } } else if (cmd.equals("fill")) { UnionSet set = null; try { set = (UnionSet) ref.getData(); System.out.println("area = " + DelaunayCustom.computeArea(set)); } catch (VisADException ex) { System.out.println(ex.getMessage()); } try { // Irregular2DSet new_set = DelaunayCustom.fill(set); Irregular2DSet new_set = DelaunayCustom.fillCheck(set, false); if (new_ref == null) { new_ref = new DataReferenceImpl("fill"); ConstantMap[] cmaps = new ConstantMap[] { new ConstantMap(1.0, Display.Blue), new ConstantMap(1.0, Display.Red), new ConstantMap(0.0, Display.Green) }; DataRenderer renderer = (display instanceof DisplayImplJ3D) ? (DataRenderer) new DefaultRendererJ3D() : (DataRenderer) new DefaultRendererJ2D(); renderer.suppressExceptions(true); display.addReferences(renderer, new_ref, cmaps); } new_ref.setData(new_set); } catch (VisADException ex) { System.out.println(ex.getMessage()); } catch (RemoteException ex) { System.out.println(ex.getMessage()); } } else if (cmd.equals("lines")) { try { lines = !lines; GraphicsModeControl mode = display.getGraphicsModeControl(); if (lines) { mode.setPolygonMode(DisplayImplJ3D.POLYGON_LINE); } else { mode.setPolygonMode(DisplayImplJ3D.POLYGON_FILL); } } catch (VisADException ex) { System.out.println(ex.getMessage()); } catch (RemoteException ex) { System.out.println(ex.getMessage()); } } }
public String longString(String pre) { FlatField fld = getAdaptedFlatField(); if (fld == null) { return pre + "Cannot get cached FlatField"; } try { return fld.longString(pre); } catch (VisADException e) { return pre + e.getMessage(); } }
// initialize above MathTypes static { try { image_type = MathType.stringToType("((ImageElement, ImageLine) -> ImageValue)"); image_sequence_type = new FunctionType(RealType.Time, image_type); image_type2 = MathType.stringToType("((ImageElement, ImageLine) -> (ImageValue))"); image_sequence_type2 = new FunctionType(RealType.Time, image_type2); image_type3 = MathType.stringToType("((ImageElement, ImageLine) -> (Red, Green, Blue))"); image_sequence_type3 = new FunctionType(RealType.Time, image_type3); } catch (VisADException e) { throw new VisADError(e.getMessage()); } }
private FlatField getAdaptedFlatField() { // if owner array is null, // assume this object got serialized & unserialized if (adaptedFlatFieldOwner == null) { return null; } synchronized (adaptedFlatFields) { for (int ii = 0; ii < MAX_FILE_FLAT_FIELDS; ii++) { if (this == adaptedFlatFieldOwner[ii]) { // mark time of most recent access adaptedFlatFieldTimes[ii] = System.currentTimeMillis(); return adaptedFlatFields[ii]; } } // this FileFlatField does not own a cache entry, so invoke // CahceStrategy.allocate to allocate one, possibly by taking // one, possibly by taking one from another FileFlatField; // this will be an area for lots of thought and experimentation; adaptedFlatFieldIndex = cacheStrategy.allocate( adaptedFlatFields, adaptedFlatFieldDirty, adaptedFlatFieldSizes, adaptedFlatFieldTimes); // flush cache entry, if dirty if (adaptedFlatFieldDirty[adaptedFlatFieldIndex]) { try { adaptedFlatFieldOwner[adaptedFlatFieldIndex].flushCache(); } catch (VisADException e) { System.out.println(e.getMessage()); } } // create a new entry in adaptedFlatFields at adaptedFlatFieldIndex // and read data values from fileAccessor at fileLocation try { adaptedFlatFields[adaptedFlatFieldIndex] = fileAccessor.getFlatField(); } catch (VisADException e1) { System.out.println(e1.getMessage()); } catch (RemoteException e2) { System.out.println(e2.getMessage()); } // mark cache entry as belonging to this FileFlatField adaptedFlatFieldOwner[adaptedFlatFieldIndex] = this; // get size of adapted FlatField // (by calling a method that currently does not exist) /*adaptedFlatFields[adaptedFlatFieldIndex].getSize(); */ adaptedFlatFieldTimes[adaptedFlatFieldIndex] = System.currentTimeMillis(); return adaptedFlatFields[adaptedFlatFieldIndex]; } }