コンテンツ・オンデマンドの使用

コンテンツ・コントローラーは、SDM エンジンおよびハンドラーと関連付けられている必要があります。
コンテンツ・オンデマンド機能を使用するには、以下の手順が必要です。
コンテンツ・オンデマンド機能を使用するには、以下のようにします。
  1. コンテンツ・コントローラーを SDM エンジンおよびハンドラーと関連付けます。
    _controller = new IlvContentController();
    _controller.setSDMEngine(diagrammer.getEngine());
    _controller.setContentHandler(new ContentHandler());
    
    private class ContentHandler extends IlvContentHandler() {
       // here we load/unload objects
       private void loadObject(Object node, boolean load) {
         if (load) {
           model.setObjectProperty(node, CONTENT, ...);
         } else {
           // unload values
           model.setObjectProperty(node, CONTENT, null);
         }
       }
    
       // callback for loading content
       public void loadContent(IlvContentController source, Object[] objects) {
         // prevent too much notifications
         diagrammer.setAdjusting(true);
         // loop over objects to load
         for (int i=0; i<objects.length; i++) {
           loadObject(objects[i], true);
         }
         diagrammer.setAdjusting(false);
       }
    
       // callback for unloading content
       public void unloadContent(IlvContentController source, Object[]
    objects) {
         diagrammer.setAdjusting(true);
           for (int i=0; i<objects.length; i++) {
             loadObject(objects[i], false);
           }
           diagrammer.setAdjusting(false);
         }
       }
    }
  2. オプションで、setCacheSize(int size) メソッドを使用してキャッシュ値を変更します。
    キャッシュ・サイズは、指定する動作に応じて調整する必要があります。 デフォルト値は、無限で、これは、ロードされたコンテンツは決してアンロードされないことを意味します。
    _controller.setCacheSize(1024);
    
  3. コントローラーに要求を送信するビュー・リスナーをインストールします。
    IlvVisibleAreaListener l = new IlvVisibleAreaListener(contentControler);
    l.installListener(contentControler.getSDMEngine().getReferenceView());
  4. これでビュー内をナビゲートして、オブジェクトの自動的なロードまたはアンロードを行えます。