سؤال

هل هناك مثال هناك للاستخدام IDecorationContext لملصقات ديكورات؟

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

لديه أي شخص يستخدم بالفعل ميزة سياق الديكور وإذا كان الأمر كذلك، فما استخدام الحالات التي حلها؟


ملاحظة: أنا أبحث عن وسيلة لتطبيق زخارف الصور على التسميات الكائنات واعتمادا على مكان عرض الكائن، يختلف حجم الرمز الأساسي (مثل الرموز "الصغيرة" التقليدية "في عناصر الجدول والأشجار وأيقونات أكبر لرؤوس المحتوى).

يجب أن تختار الزخارف المطبقة على الرموز الأصلية زخارف الحجم المناسب وفقا لذلك.

IDecorationContext يبدو أنه يناسب مشروع القانون لما أحتاجه إليه، لكن الوثائق هي أن تكون متناثرة حيث يمكن أن يتوقع المرء من ميزة ثانوية لمكتبة مفتوحة المصدر ولا توجد أمثلة يمكن العثور عليها.

googling ل "IDECORECONTEXT" لم يكشف عن أي شيء مثير للاهتمام أيضا، لذلك أنتقل إلى حكمة حشد Stackoverflow في آمال الرجل التالي الذي يحصل على السؤال سيكون قادرا على الحصول على إجابته بشكل أسرع؛)

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

المحلول

لم أستخدم ItecorationContext، لكن يمكنك أن ترى ذلك المستخدمة في org.eclipse.jface.viewers.LabelDecorator.

ومناقش أيضا في هذا الموضوع (حتى لو لم تكن هناك إجابة، يمكن أن تعطيك على الأقل نقطة انطلاق)

نهجي الحالي هو تمديد ORG.ECLIPSE.UI.DECORTROTORCORTROTORCORTORCORTORCORATCORATORACORATORACORATORATORATORATIORATIORATION لإضافة تراكب استبدال إلى الرموز المعنية:

public class ProjectLabelDecorator extends LabelProvider 
   implements ILightweightLabelDecorator {

   ...

   public void decorate(Object element, IDecoration decoration) {
      if (element instanceof IFolder) {
         IFolder folder = (IFolder) element;
     try {
            if (folder.getProject().hasNature("rttdt.nature")) {
                if (ProjectNature.isTestcase(folder)) {
                   IDecorationContext context = 
                      decoration.getDecorationContext();
                   if (context instanceof DecorationContext) {
                      ((DecorationContext) context).putProperty(
                         IDecoration.ENABLE_REPLACE, Boolean.TRUE);
                   }
                   decoration.addOverlay(fTestcaseOverlay,
                      IDecoration.REPLACE);
                }
         } catch (CoreException e) {
         }
      }
   }

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