/**
* Դ�������ƣ�OracleUserPrivilegeSelectionDialog.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.oracle.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�����
*/
package com.hundsun.ares.studio.jres.database.oracle.ui.editors;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import com.hundsun.ares.studio.jres.database.ui.editors.dialog.SelectDialog;
import com.hundsun.ares.studio.jres.model.database.oracle.OraclePrivilege;
import com.hundsun.ares.studio.jres.model.database.oracle.OracleUser;
import com.hundsun.ares.studio.jres.model.database.oracle.OracleUserResourceData;
/**
* @author wangbin
*
*/
public class OracleUserPrivilegeSelectionDialog extends SelectDialog{
private static OracleUserResourceData resourceData;
static List<OraclePrivilege> resultInput = new ArrayList<OraclePrivilege>();
/**
* @param parentShell
* @param Title
*/
protected OracleUserPrivilegeSelectionDialog(Shell parentShell, String Title, ColumnViewer columnViewer) {
super(parentShell, "ѡ��Oracle�û�Ȩ��", getChoiceInput(columnViewer), getResultInput(), getLabelProvider());
}
protected static List<OraclePrivilege> getResultInput() {
return resultInput;
}
protected static List<OraclePrivilege> getChoiceInput(ColumnViewer columnViewer) {
List<OraclePrivilege> choiceInput = new ArrayList<OraclePrivilege>();
IStructuredSelection select = (IStructuredSelection) columnViewer.getSelection();
Object obj = select.getFirstElement();
if(obj instanceof OracleUser){
resourceData = (OracleUserResourceData)((OracleUser)obj).eContainer();
List<OraclePrivilege> privilege = resourceData.getPrivileges();
if(resultInput.size()>0){
resultInput.clear();
}
resultInput.addAll(((OracleUser)obj).getPrivileges());
List<String> resultNames = new ArrayList<String>();
for(OraclePrivilege userPrivilege : resultInput){
resultNames.add(userPrivilege.getName());
}
for(OraclePrivilege privlieges : privilege){
if(!resultNames.contains(privlieges.getName())){
choiceInput.add(privlieges);
}
}
}
return choiceInput;
}
class privilegeLabelProvider implements ILabelProvider{
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
@Override
public void addListener(ILabelProviderListener listener) {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
*/
@Override
public void dispose() {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
*/
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
@Override
public void removeListener(ILabelProviderListener listener) {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
*/
@Override
public Image getImage(Object element) {
return null;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
*/
@Override
public String getText(Object element) {
if(element instanceof OraclePrivilege){
return ((OraclePrivilege)element).getName();
}
return null;
}
}
protected static ILabelProvider getLabelProvider() {
return new ILabelProvider() {
@Override
public void removeListener(ILabelProviderListener listener) {
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void dispose() {
}
@Override
public void addListener(ILabelProviderListener listener) {
}
@Override
public String getText(Object element) {
if(element instanceof OraclePrivilege){
return ((OraclePrivilege)element).getName();
}
return StringUtils.EMPTY;
}
@Override
public Image getImage(Object element) {
return null;
}
};
}
}