كيفية جعل القراءة فقط محرر في الكسوف (الخسوف المساعد للتنمية)

StackOverflow https://stackoverflow.com/questions/1001322

سؤال

أنا أتساءل كيف يمكن أن تجعل حقا قراءة فقط الكسوف محرر..بلدي محرر يمتد 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?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top