Sie können ein Objekt, das IStorageEditorInput
implementiert, als Editoreingabe verwenden. Dies verwendet ein Objekt IStorage
, um die zu bearbeitenden Daten im Speicher zu halten.
Eine einfache IStorageEditorInput
Implementierung würde in etwa so aussehen:
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;
}
}
(oben von org.eclipse.debug.internal.ui.views.console.ProcessConsole
angepasst)
Sie auch Ihre eigene Implementierung von IStorage
zu bieten haben, in der Tat sollten Sie wahrscheinlich IEncodedStorage
implementieren, die erweitert IStorage
, um die Zeichencodierung einzuschließen.
Beachten Sie, dass einige Editoren möglicherweise IStorageEditorInput
nicht verstehen.