سؤال

أنا أكتب معالجًا لتطبيق Eclipse RCP.بعد إجراء بعض المعالجة على ملف وأخذ بعض مدخلات المستخدم، لا أريد السماح للمستخدم بالعودة لإجراء التغييرات.وفي هذه المرحلة، يجب عليهم إما قبول أو رفض التغييرات التي هم على وشك إجرائها على النظام.

ما لا أستطيع العثور عليه هو استدعاء الأسلوب الذي يتيح لي تجاوز الأزرار التي يتم عرضها أو قدرة المستخدم على الضغط على زر الرجوع.أفضّل عدم وجوده أو على الأقل تعطيله.

هل وجد أي شخص طريقة للقيام بذلك باستخدام معالج JFace و صفحة المعالج?

من حيث سهولة الاستخدام، هل أخالف تقاليد المعالج؟هل يجب أن أفكر في نهج مختلف لحل المشكلة؟

هل كانت مفيدة؟

المحلول

يمكنك إرجاع قيمة فارغة من طريقة getPreviousPage() في تطبيق صفحة المعالج الخاص بك.

نصائح أخرى

التوسع في إجابة jodonell:

يعد تعطيل زر الرجوع أصعب مما ينبغي، وذلك بسبب السلوك غير البديهي في التنفيذ الافتراضي لـ WizardPage.getPreviousPage().يمكنك استدعاء setPreviousPage( null ) وسيظل getPreviousPage() يقوم بإرجاع الصفحة السابقة.تحتاج إلى تجاوز تنفيذ getPreviousPage() لتعطيل زر الرجوع:

public abstract class MyWizardPage extends WizardPage {
    private boolean backButtonEnabled = true;

    public void setBackButtonEnabled(boolean enabled) {
        backButtonEnabled = enabled;
        getContainer().updateButtons();
    }

    @Override
    public IWizardPage getPreviousPage() {
        if (!backButtonEnabled) {
            return null;
        }
        return super.getPreviousPage();
    }
}

راجع مشاركة مدونتي للحصول على بعض النصائح والحيل الإضافية لمعالج JFace:

http://nsawadsky.blogspot.com/2011/07/jface-wizard-tips-and-tricks.html

من منظور واجهة المستخدم يبدو هذا سيئًا إلى حد ما.سيشعر المستخدمون لديك بالإحباط إذا ارتكبوا خطأ وأرادوا العودة وتصحيحه ولم تسمح لهم بذلك.أعتقد أنه سيكون من الأفضل تغيير التطبيق للسماح بالعودة بدلاً من البحث عن طرق لمنع ذلك.

لا توجد طريقة للقيام بذلك باستخدام واجهات برمجة تطبيقات معالج JFace القياسية.أنجز فريقي هذا عن طريق كتابة WizardDialog مخصص.لقد فعلنا ذلك على تطبيق Eclipse RCP وليس على مكون إضافي لـ Eclipse.يعد تعطيل زر الرجوع بمثابة كسر للتقليد، لكن محللي الأعمال لدينا كانوا يريدون هذه الوظيفة حقًا.

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