状況によっては、レンダラーを保存する必要があります。例えば、ロード・オンデマンド・モードで作業を行っている場合、オブジェクト自体ではなく、レイヤーのグラフィック・オブジェクトをロードする際に必要なパラメーターのみを保存するような場合です。ロード・オンデマンドについては、「ロード・オンデマンドの使用」を参照してください。
この例のソース・コード一式は、以下のファイルにあります。
特定のレンダラーを使用してグラフィック・オブジェクトを作成している場合は、オブジェクトを描画するレンダラーを次にロードする場合と同じ方法で保存する必要があります。クラス IlvSDOLayer を使用すると、レイヤーに保存するレンダラー ( setFeatureRenderer を指定できます。
「色付き線のレンダラーの作成」で紹介した
ColorLineRenderer
は、IlvPersistentObject
を拡張して保存できる IlvFeatureRenderer
インターフェースから派生します。/** * Writes this to specified stream. */ public void write(IlvOutputStream stream) throws java.io.IOException { stream.write("attributeName",myAttributeName); if (myColorModel instanceof IlvPersistentObject) stream.write("colorModel",(IlvPersistentObject)myColorModel); else System.err.println("Warning : colormodel not saved"); } public ColorLineRenderer(IlvInputStream stream) throws IlvReadFileException { myAttributeName = stream.readString("attributeName"); try { myColorModel = (ColorModel)stream.readPersistentObject("colorModel"); } catch (IlvFieldNotFoundException e) { // Get default colormodel myColorModel = IlvIntervalColorModel.MakeElevationColorModel(); } } }