2016-07-18 23 views
0

私はeclipseにプラグインを作成していますので、RAMにロードされたファイル用にエディタを開く必要があります。私は新しいエディタを開くと、IEditorInputから入力を受け取ります。このインターフェイスを実装するクラスはたくさんありますが、通常はHDDからファイルを読み込んでいますが、この目的では役に立たないものです。メモリからファイルを読み込むIEditorInputを作成するにはどうすればよいですか?

質問があります: IEditorInputはどのようにしてメモリからファイルを読み込みますか?

答えて

1

IStorageEditorInputを実装するオブジェクトをエディタ入力として使用できます。これは、IStorageオブジェクトを使用して、編集するメモリ内のデータを保持します。

シンプルIStorageEditorInput実装は次のようになります。

class StorageEditorInput extends PlatformObject implements IStorageEditorInput { 
    private IStorage fStorage; 

    public StorageEditorInput(IStorage storage) { 
     fStorage = storage; 
    } 

    @Override 
    public IStorage getStorage() { 
     return fStorage; 
    } 

    @Override 
    public ImageDescriptor getImageDescriptor() { 
     return null; 
    } 

    @Override 
    public String getName() { 
     return getStorage().getName(); 
    } 

    @Override 
    public IPersistableElement getPersistable() { 
     return null; 
    } 

    @Override 
    public String getToolTipText() { 
     return getStorage().getFullPath().toOSString(); 
    } 

    @Override 
    public boolean equals(Object object) { 
     return object instanceof StorageEditorInput && 
     getStorage().equals(((StorageEditorInput)object).getStorage()); 
    } 

    @Override 
    public int hashCode() { 
     return getStorage().hashCode(); 
    } 

    @Override 
    public boolean exists() { 
     return true; 
    } 
} 

org.eclipse.debug.internal.ui.views.console.ProcessConsoleから適応上)

ます。また、実際には、おそらくIEncodedStorageを実装する必要があり、IStorageの独自の実装を提供する必要があろうIStorageに文字エンコーディングを含めるように拡張します。

編集者によってはIStorageEditorInputが理解できない場合があります。

関連する問題