/**
* Դ�������ƣ�JRESEditorSyncManager.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.ui.editor.sync;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.ResourcesPlugin;
/**
* �༭��ͬ��������
* @author lvgao
*
*/
public class JRESEditorSyncManager implements IResourceChangeListener {
private static final Logger logger = Logger.getLogger(JRESEditorSyncManager.class);
public static JRESEditorSyncManager instance;
private List<IFileSyncnizeUnit> syncList = new ArrayList<IFileSyncnizeUnit>();
private JRESEditorSyncManager(){
ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
}
public static JRESEditorSyncManager getInstance(){
if(null == instance){
instance = new JRESEditorSyncManager();
}
return instance;
}
/**
* ���ͬ����Ԫ
* @param unit
*/
public void addSyncUnit(IFileSyncnizeUnit unit){
syncList.add(unit);
}
/**
* �Ƴ�ͬ����Ԫ
* @param unit
*/
public void removeSyncUnit(IFileSyncnizeUnit unit){
syncList.remove(unit);
}
/* (non-Javadoc)
* @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
*/
@Override
public void resourceChanged(IResourceChangeEvent event) {
try {
IResourceDelta delta= event.getDelta();
for(IFileSyncnizeUnit unit:syncList){
unit.handleAction(delta);
}
} catch (Exception e) {
logger.info("�༭�������������������ʧ�ܡ�");
}
}
}