/**
* Դ�������ƣ�OperationEditPage.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui
* ����˵����Ԫ�����û��༭��UIչ����ع���
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.metadata.ui.editors;
import java.util.EventObject;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.transaction.ResourceSetChangeEvent;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.ui.forms.IManagedForm;
import com.hundsun.ares.studio.jres.model.metadata.MetadataPackage;
import com.hundsun.ares.studio.jres.model.metadata.Operation;
import com.hundsun.ares.studio.ui.editor.EMFFormEditor;
import com.hundsun.ares.studio.ui.editor.EMFFormPage;
import com.hundsun.ares.studio.ui.editor.viewers.RefreshViewerJob;
/**
* ���ڿɱ����û�������ģ�ͽ��в�����Ϣ�ı༭
* @author gongyf
*
*/
public class OperationEditPage extends EMFFormPage {
private static final Logger logger = Logger.getLogger(OperationEditPage.class);
private OperationBlock block;
public OperationEditPage(EMFFormEditor editor, String id, String title) {
super(editor, id, title);
}
@Override
protected void doCreateFormContent(IManagedForm managedForm) {
// TODO#������#��Ҷ��#����#��Ԫ#����״̬ #���ʱ�� #������(�������հ��к�ע����) #��ʱ(��ȷ������) #��һ��master/Detailҳ�棬master���Dz������б�detail���ǽ���xml�ʹ���
block = new OperationBlock(this,getEditableControl());
block.createContent(managedForm);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.form.EMFFormPage#commandStackChanged(java.util.EventObject)
*/
@Override
public void commandStackChanged(EventObject event) {
super.commandStackChanged(event);
RefreshViewerJob.refresh(block.getViewer());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.form.EMFFormPage#isNeedValidate(org.eclipse.emf.transaction.ResourceSetChangeEvent)
*/
@Override
protected boolean isNeedValidate(ResourceSetChangeEvent event) {
for (Notification notification : event.getNotifications()) {
if (notification.getFeature() == MetadataPackage.Literals.METADATA_RESOURCE_DATA__OPERATIONS
|| notification.getNotifier() instanceof Operation) {
return true;
}
}
return false;
}
/**
* @return the block
*/
public OperationBlock getBlock() {
return block;
}
@Override
public void infoChange() {
block.setInput(getInfo());
super.infoChange();
}
@Override
public void setActive(boolean active) {
super.setActive(active);
if (active) {
ColumnViewer viewer = block.getViewer();
if (viewer != null) {
getSite().setSelectionProvider(viewer);
logger.debug("Selection provider: " + viewer.hashCode() + " Site: " + getSite().hashCode());
} else {
logger.debug("Page actived, but no viewer!");
}
}
}
}