/**
* Դ�������ƣ�IndexColumnLabelSupport.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.oracle.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�����
*/
package com.hundsun.ares.studio.jres.database.oracle.ui.viewer;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnViewer;
import com.hundsun.ares.studio.jres.database.oracle.ui.editors.OracleUserPrivilegeEditor;
import com.hundsun.ares.studio.jres.model.database.oracle.OraclePackage;
import com.hundsun.ares.studio.jres.model.database.oracle.impl.OracleUserImpl;
import com.hundsun.ares.studio.ui.editor.editingsupport.BaseEditingSupport;
/**
* @author wangbin
*
*/
public class UserPrivilegeEditingSupport extends BaseEditingSupport {
private int featureID;
/**
* @param viewer
*/
public UserPrivilegeEditingSupport(ColumnViewer viewer, int featureID) {
super(viewer);
this.featureID = featureID;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.editingsupports.BaseEditingSupport#createCellEditor()
*/
@Override
protected CellEditor createCellEditor() {
return new OracleUserPrivilegeEditor(getViewer(), "Oracle�û�Ȩ��", "��ѡ�û�Ȩ��");
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
*/
@Override
protected Object getValue(Object element) {
if(element instanceof OracleUserImpl){
return ((OracleUserImpl)element).eGet(featureID, true, false);
}
return null;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)
*/
@Override
protected void setValue(Object element, Object value) {
EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(element);
if(element instanceof OracleUserImpl){
if (editingDomain != null) {
Command command = SetCommand.create(editingDomain, element, OraclePackage.Literals.ORACLE_USER__PRIVILEGES, value);
editingDomain.getCommandStack().execute(command);
} else {
((OracleUserImpl)element).eSet(featureID, value);
}
}
}
}