تحديث نموذج مرفق البيئة العالمية من ترابط خلفية
-
07-07-2019 - |
سؤال
وأنا أحاول لتحديث نموذج لمرفق البيئة العالمية ولديهم تغيرات في شاشة عرض لقد خلق. حاليا لا يوجد تغيير أقوم وتنعكس في طريقة العرض، أنا باستخدام الطريقة التالية لتحديث النموذج، وأنا أتساءل عما اذا كان لها النهج الصحيح لاتخاذ:
Display.getDefault().asyncExec(new Runnable() {
public void run() {
String viewId = "beat.views.BeatView";
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow mainWindow = workbench
.getActiveWorkbenchWindow();
try {
BeatView view = (BeatView) mainWindow.getActivePage()
.showView(viewId);
BeatEditPart beatEditPart = (BeatEditPart)view.getGraphicalViewer().getContents();
BeatModel beatModel = (BeatModel)beatEditPart.getModel();
beatModel.setObjects(model);
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
المحلول
هل EditPart بك الاستماع إلى نموذج التغييرات؟
1 - تحتاج إلى تسجيل كمستمع إلى النموذج الخاص بك. نحن نستخدم إبلاغ آلية EMF ل.
public void activate() {
if (!isActive())
((EObject) getModel()).eAdapters().add(this);
super.activate();
}
public void deactivate() {
if (isActive())
((EObject) getModel()).eAdapters().remove(this);
super.deactivate();
}
2 - تحتاج إلى التصرف عندما يتغير شيء.
public void notifyChanged(Notification notification) {
...
}
لا تنتمي إلى StackOverflow