/**
* Դ�������ƣ�MetadataListPage.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui
* ����˵����Ԫ�����û��༭��UIչ����ع���
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.metadata.ui.editors;
import java.util.Map;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.transaction.ResourceSetChangeEvent;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.forms.widgets.FormToolkit;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.jres.model.metadata.MetadataCategory;
import com.hundsun.ares.studio.jres.model.metadata.MetadataItem;
import com.hundsun.ares.studio.jres.model.metadata.MetadataPackage;
import com.hundsun.ares.studio.jres.model.metadata.MetadataResourceData;
import com.hundsun.ares.studio.jres.script.engin.ScriptUtils;
import com.hundsun.ares.studio.ui.editor.EMFFormEditor;
import com.hundsun.ares.studio.ui.editor.actions.ButtonGroupManager;
import com.hundsun.ares.studio.ui.editor.blocks.ColumnViewerListPage;
/**
* ���Ԫ���ݵı༭������<br>
* �ڱ��ť���������˺ͽű������İ�ť���ܹ����ݽű���̬����Ӻ�ɾ����ť<br>
* �ṩ��{@link #createScriptContext()} �����ű�������
*
* @author gongyf
* @author sundl mark Deprecated
*/
@Deprecated
public abstract class MetadataListPage extends ColumnViewerListPage {
private OperationButtonGroupControl obgc;
/**
* @param editor
* @param id
* @param title
*/
public MetadataListPage(EMFFormEditor editor, String id, String title) {
super(editor, id, title);
}
protected IARESResource getARESResource() {
return getEditor().getARESResource();
}
/**
* @return the obgc
*/
protected OperationButtonGroupControl getOperationControl() {
return obgc;
}
//����һ�㰴ť���ݽű�������̬���ɵİ�ť
protected Control createViewerButtons(Composite parent, FormToolkit toolkit) {
Composite client = toolkit.createComposite(parent);
ButtonGroupManager btnGroupManager = new ButtonGroupManager();
createButtons(btnGroupManager);
btnGroupManager.createControl(client);
ButtonGroupManager operationGroupManager = new ButtonGroupManager();
//obgc = new OperationButtonGroupControl(operationGroupManager);
operationGroupManager.createControl(client);
toolkit.adapt(btnGroupManager.getControl());
toolkit.adapt(operationGroupManager.getControl());
GridLayoutFactory.fillDefaults().applyTo(client);
GridDataFactory.fillDefaults().grab(true, false).applyTo(btnGroupManager.getControl());
GridDataFactory.fillDefaults().grab(true, true).applyTo(operationGroupManager.getControl());
return client;
}
/* (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_CATEGORY__CHILDREN
|| notification.getFeature() == MetadataPackage.Literals.METADATA_RESOURCE_DATA__ITEMS
|| notification.getNotifier() instanceof MetadataItem
|| notification.getNotifier() instanceof MetadataCategory) {
return true;
}
}
return false;
}
//��ȡԪ�����б�
protected MetadataResourceData<?> getInfo() {
return (MetadataResourceData<?>) getEditor().getInfo();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerListPage#infoChange()
*/
@Override
public void infoChange() {
getOperationControl().setData(getInfo());
super.infoChange();
//getOperationControl().setContext(createScriptContext());
}
//�����ű�������
protected Map<String, Object> createScriptContext() {
return ScriptUtils.createDefaultScriptContext(ScriptUtils.MODE_EDITOR_BUTTON,getARESResource(), getARESResource(), getInfo(), getClass().getClassLoader());
}
}