Работя върху eclipse RCP/RAP един източник. трябва да изпълня някакъв код в resotreState()
и saveState()
метод на ApplicationWorkbenchAdvisor
клас, който е необходим само за RCP, но не и за RAP. Какъв е най-добрият начин за прилагане на това?
Трябва да изпълня някакъв код само за RCP, а не за RAP, как мога да направя това
Отговори (1)
Ако кодът, който трябва да се изпълнява само в RCP, се компилира и на двете платформи, тогава можете да направите заявка SWT#getPlatform()
по този начин:
if( !SWT.getPlatform().startsWith( "rap" ) ) {
// execute RCP code
}
Ако RCP кодът използва API, който не е наличен и на двете платформи, тогава препоръчвам да извлечете кода във фрагмент и да разгърнете този фрагмент само с RCP приложенията. Потърсете „rap single sourcing“ за повече информация.
person
Rüdiger Herrmann
schedule
25.01.2015
Моля, вижте следния код:
@Override
public IStatus saveState(IMemento memento) {
TerminalCompatibility.saveState(memento);
ServerStorageController.getInstance().saveState(memento);
return super.saveState(memento);
}
– този код зависи от IMemento. Възможно ли е да преместя този код в RCP специфичен фрагмент. не искам да пиша празни класове за съвместимост.
- person Sharif; 28.01.2015
IMemento
е наличен и на двете платформи, така че можете да използвате първия подход и да защитите кода, който запазва състоянието с условие if.
- person Rüdiger Herrmann; 28.01.2015