كيفية جعل القراءة فقط محرر في الكسوف (الخسوف المساعد للتنمية)
-
05-07-2019 - |
سؤال
أنا أتساءل كيف يمكن أن تجعل حقا قراءة فقط الكسوف محرر..بلدي محرر يمتد TextEditor, لذا عندما reimplement طريقة isEditable إلى العودة دائما كاذبة.
انها أسهل طريقة ، مما يمنع المستخدم من كتابة أو حذف أي شيء في وثيقة فتح في محرر.ولكن لا يزال بإمكانك تغيير محتوى الوثيقة على سبيل المثال باستخدام بحث/استبدال.و ليس هذا هو المطلوب..
هل هناك أي aesy كيف السبيل إلى arhieve هذا الهدف ؟
المحلول
أردت أن استخدام محرر بدلا من المشاهد لأن محرر تم بالفعل ، لذلك استخدمت البرنامج المساعد 3rd الطرف..
لقد وجدت الحل مايبي غير نظيفة جدا ولكن لا وظيفة و هي سهلة جدا لذلك يفوز
لقد تنقضها هذه الأساليب:
@Override
public boolean isEditable() {
return false;
}
@Override
public boolean isEditorInputModifiable() {
return false;
}
@Override
public boolean isEditorInputReadOnly() {
return true;
}
@Override
public boolean isDirty() {
return false;
}
نصائح أخرى
هل حاولت إنشاء الخاصة بك SourceViewer?شيء من هذا القبيل.انا لم اجرب الكود نفسي.
class ReadOnlyViewer extends SourceViewer
{
protected StyledText createTextWidget(Composite parent, int styles)
{
return new StyledText(parent, styles | SWT.READ_ONLY);
}
}
class MyEditor extends TextEditor
{
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles)
{
fAnnotationAccess= getAnnotationAccess();
fOverviewRuler= createOverviewRuler(getSharedColors());
ISourceViewer viewer= new ReadOnlyViewer(parent, ruler, getOverviewRuler(), isOverviewRulerVisible(), styles);
// ensure decoration support has been created and configured.
getSourceViewerDecorationSupport(viewer);
return viewer;
}
}
في ص الأساليب ، تحديد سبحانه وتعالى.READ_ONLY.هذا ينبغي أن رفض جميع واجهات برمجة التطبيقات التي تعدل الوثيقة (باستثناء setText () ، وآمل ...)
إن لم يكن من فضلك الملف الخلل.
لماذا كنت تستخدم TextEditor بدلا من استخدام TextViewer?