2015-03-13 6 views
2

Я использую следующий код, чтобы заполнить список скинов и дать пользователю возможность изменить скин во время выполнения.Oracle ADF: SkinFactory не работает корректно в JDeveloper 12.1.3

public List getSkinChoices() { 
    List choices = new ArrayList(); 
    String skinFamily = null; 
    String skinLabel = null; 
    SkinFactory sf = SkinFactory.getFactory(); 
    FacesContext context = FacesContext.getCurrentInstance(); 
    for (Iterator i = sf.getSkinIds(); i.hasNext();) { 
     String skinID = (String) i.next(); 
     Skin skin = sf.getSkin(context, skinID); 
     skinFamily = skin.getFamily(); 
     skinLabel = skinFamily; 
     if (skin.getRenderKitId().indexOf("desktop") > 0) { 
      choices.add(new SelectItem(skinFamily, skinLabel)); 
     } 
    } 
    return choices; 
} 

Теперь, когда я использую Jdev 12.1.3 метод sf.getSkinIds(); осуждается. Метод не больше нагрузка вся кожа, как правило, enter image description here

Может кто-нибудь directes меня к новому реализации? Есть ли альтернатива, чтобы получить все availlable скины?

NB: Код о загрузке всех доступных скинов в Jdev 12.1.2.
Благодаря

ответ

2

SkinFactory класса является частью API Тринидада и в соответствии с его javadoc, вы должны:

Используйте SkinProvider#getSkinMetadata(), чтобы получить список поддерживаемых скин.

Таким образом, вы должны сделать что-то вроде этого:

Collection<SkinMetadata> supportedSkins = SkinProvider.getSkinMetadata(context); 
Iterator<SkinMetadata> iterator = supportedSkins.iterator(); 
while (iterator.hasNext()) { 
    SkinMetadata next = iterator.next(); 
    skinFamily = next.getFamily(); 
    //etc. 
} 
+0

Спасибо. Ты спасешь мой день –

Смежные вопросы