سؤال

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

وينبغي للمرء أن حكم نافذة جميع الآخرين أو أنهم جميعا يجب أن تكون على قدم المساواة (إغلاق آخر واحد يخرج التطبيق)؟ كيف التعامل مع وجهات النظر والآراء؟ هل هناك أي أمور أخرى يجب أن نعلم؟

والبيئة: الكسوف جانيميد، ويندوز XP

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

المحلول

وكسوف طاولة العمل واحد يمكن أن تخلق العديد من النوافذ. وضعت كل نافذة من استخدام المنظور، يمكن وضع النوافذ المختلفة وذلك لوجهات نظر مختلفة، أو وجهة نظر نفسه، ويمكنك تبديل وجهات النظر في كل نافذة مستقلة من النوافذ الأخرى.

ويمكنك أيضا تعيين إدخال لكل نافذة. وهذا مفيد إذا كان كل نافذة تعمل على بيانات مختلفة (على سبيل المثال، يمكن أن تكون مرتبطة كل نافذة إلى ملقم آخر أو يمكن أن تظهر البيانات من قواعد البيانات المختلفة التي لها نفس المخطط ولكن بيانات مختلفة).

قد يكون الذي تستخدمه الإطارات فقط بحيث يمكنك رؤية وجهات نظر مختلفة لنفس البيانات على شاشات مختلفة. في هذه الحالة لا تحتاج إلى إنشاء برمجيا النوافذ ولكن الحاجة فقط إضافة العمل المقدمة من طاولة العمل. ويمكن القيام بذلك عن طريق تعديل الدرجة ActionBarAdvisor الخاص بك:

وإضافة إلى الإعلانات الملعب:

private IWorkbenchAction newWindowAction;

وإضافة إلى رمز حيث يمكنك جعل الإجراءات (عادة طريقة تسمى makeActions):

    newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
    register(newWindowAction);

وإضافة إلى رمز حيث يمكنك إنشاء القوائم:

    menu.add(newWindowAction);

وحيث القائمة عادة في القائمة إطار. إذا لم يكن لديك القائمة إطار بالفعل في التطبيق الخاص بك، وأود أن إنشاء واحد، فإن السطر التالي العمل:

    MenuManager menu = new MenuManager(
      "&Window", 
      IWorkbenchActionConstants.M_WINDOW);

وهذا سوف اعطيكم عنصر القائمة التي سيتم إنشاء نافذة جديدة في نفس الطريقة التي يعامل بها عنصر القائمة Window-> نافذة جديدة في IDE الكسوف.

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

IWorkbenchPage newPage = window.openPage(inputObject);

حيث يحتوي inputObject المعلومات التي تحدد البيانات التي تظهر في النافذة. إذا كنت ترغب في تعيين منظور أولي يمكن القيام بذلك عن طريق الاتصال setPerspective على الصفحة.

وسوف ترغب في تعيين عنوان في كل نافذة:

newPage.getWorkbenchWindow().getShell().setText(windowTitle);

وحيث windowTitle هو سلسلة اصفا مساهمة في النافذة.

ويمكنك جلب المدخلات للنافذة كما يلي:

window.getActivePage().getInput()

ويمكنك بعد ذلك يلقي هذا إلى أي درجة التي تستخدم كمدخل نافذة.

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