/**
* Դ�������ƣ�DictionaryColumnViewerProblemView.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui
* ����˵����Ԫ���ݱ༭�����
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.metadata.ui.viewer;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.ArrayUtils;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.viewers.ColumnViewer;
import com.hundsun.ares.studio.ui.editor.viewers.RefreshViewerJob;
import com.hundsun.ares.studio.ui.validate.ProblemPoolChangeEvent;
/**
* @author wangxh
*
*/
public class DictionaryColumnViewerProblemView extends MetadataColumnViewerProblemView {
ColumnViewer parentViewer;
public DictionaryColumnViewerProblemView(ColumnViewer viewer,ColumnViewer parentViewer) {
super(viewer);
this.parentViewer=parentViewer;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataColumnViewerProblemView#doRefresh(com.hundsun.ares.studio.jres.ui.validate.ProblemPoolChangeEvent)
*/
@Override
protected void doRefresh(ProblemPoolChangeEvent event) {
// �������ӻ�ɾ��������BasicDiagnostic
Object[] problems = ArrayUtils.addAll(event.getAddProblems(), event.getRemoveedProblems());
Set<Object> objects = new HashSet<Object>();
for (Object problem : problems) {
EObject eObj = (EObject) ((Diagnostic)problem).getData().get(0);
objects.add( eObj );
}
RefreshViewerJob.refresh(getViewer(), objects.toArray(), true);
// ��ȡ���ڵ�
objects = getAllCategoriesAndSelf(objects, parentViewer);
RefreshViewerJob.refresh(parentViewer, objects.toArray(), true);
}
}