package com.hundsun.ares.studio.jres.obj.ui.editor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import com.hundsun.ares.studio.jres.metadata.ui.editors.AbstractMetadataFormPage;
import com.hundsun.ares.studio.jres.model.metadata.MetadataPackage;
import com.hundsun.ares.studio.ui.editor.EMFFormEditor;
import com.hundsun.ares.studio.ui.editor.blocks.ColumnViewerBlock;
import com.hundsun.ares.studio.ui.editor.validate.EReferenceValidateUnit;
import com.hundsun.ares.studio.validate.ValidateUtil;
public class StdObjListPage extends AbstractMetadataFormPage {
private StdObjListViewerBlock block;
public StdObjListPage(EMFFormEditor editor) {
super(editor, "stdobj", "������ֶ�");
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerListPage#configureValidateControl()
*/
@Override
protected void configureValidateControl() {
getValidateControl().addValidateUnit(new EReferenceValidateUnit(getInfo(), MetadataPackage.Literals.METADATA_RESOURCE_DATA__ROOT));
getValidateControl().addValidateUnit(new EReferenceValidateUnit(getInfo(), MetadataPackage.Literals.METADATA_RESOURCE_DATA__ITEMS));
getValidateControl().setContext(ValidateUtil.getValidateContext(getEditor().getARESResource()));
}
@Override
protected void createMetadataComposite(Composite composite,FormToolkit toolkit){
block = new StdObjListViewerBlock(this, getEditingDomain(), getSite(), getEditor().getARESResource(), getProblemPool());
block.setEditableControl(getEditableControl());
block.createControl(composite, toolkit);
getEditor().getActionBarContributor().addGlobalActionHandlerProvider(block);
addPropertyListener(block);
getEditingDomain().getCommandStack().addCommandStackListener(block);
}
@Override
protected ColumnViewerBlock getViewerBlock() {
return block;
}
@Override
public void infoChange() {
block.setInput(getInfo());
super.infoChange();
}
@Override
public void dispose() {
removePropertyListener(block);
getEditingDomain().getCommandStack().removeCommandStackListener(block);
super.dispose();
}
}