Erro preenchendo Combo

Tenho dois enum um para cursos e outro para disciplinas

tenho este codigo para prencher duas combos em SWT

		final Combo cursos = new Combo(shlSgeRegista, SWT.READ_ONLY);
		cursos.setBounds(108, 35, 162, 23);

		final Combo disciplinas = new Combo(shlSgeRegista, SWT.READ_ONLY);
		disciplinas.setBounds(108, 76, 162, 23);
		disciplinas.setEnabled(false);
		cursos.setItems(preencheCursos());
		
		cursos.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				if (cursos.getText()!= ""){
					disciplinas.setItems(preencheDisciplinas(cursos.getText()));
					disciplinas.setEnabled(true);
				}
			}

		});

	}


	private static String[] preencheCursos() {
		
		Cursos[] values = Cursos.values();  
        
        String[] valuesStr = new String[values.length];  
          
        for (int i = 0 ; i < values.length ; ++i) {  
            valuesStr[i] = values[i].toString();  
        }  
          
		return valuesStr;
	}
	
	private static String[] preencheDisciplinas(String curso) {
		
		Disciplinas[] values = Disciplinas.values();  
        
        String[] valuesStr = new String[values.length];  
		
        for (int i = 0 ; i < values.length ; ++i) {  
        	if ( curso == values.toString())
        		valuesStr[i] = values[i].getDisciplina();  
        }  
          
		return valuesStr;
	}

Mas após selecionar um item da primeira deveria preencher a segunda mas dá erro:

java.lang.IllegalArgumentException: Argument not valid
at org.eclipse.swt.SWT.error(SWT.java:4342)
at org.eclipse.swt.SWT.error(SWT.java:4276)
at org.eclipse.swt.SWT.error(SWT.java:4247)
at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
at org.eclipse.swt.widgets.Combo.setItems(Combo.java:1700)
at sge.RegistaSumario$2.widgetSelected(RegistaSumario.java:165)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
at sge.RegistaSumario.open(RegistaSumario.java:75)
at sge.RegistaSumario.main(RegistaSumario.java:57)

parece que a variavel não está sendo passada corretamente, alguem pode me ajudar?

alterei metodo preencheDisciplinas para

[code] private static String[] preencheDisciplinas(String curso) {

	Disciplinas[] values = Disciplinas.values();  
    System.out.println(values[0]);
    String[] valuesStr = new String[values.length];  
	
    for (int i = 0 ; i < values.length ; ++i) {  
    	if ( curso.equals(values[i].toString())){
    		
    	      valuesStr[i] = values[i].getDisciplina(); //[b]É aqui que dá erro.[/b]
    	} 
    }  
      
	return valuesStr;
}

[/code]

a enum usada é a seguinte:

public enum Disciplinas {
	

	
	AM1 ("Analíse Matematica 1", "Informatica de Gestão"),
	AM2 ("Analíse Matematica 2", "Informatica de Gestão"),
	GPS ("Gestão de Projetos de Software", "Informatica de Gestão"),
	LOO ("Lunguagens Orientadas a Objrtos", "Informatica de Gestão"),
	CF1 ("Contabilidade Financeira 1", "Gestão de Empresas"),
	ITG ("Inglês Técnico-Gestão", "Gestão de Empresas"),
	IGE ("Introdução à Gestão de Empresas", "Gestão de Empresas"),
	IDDL ("Introdução ao Direito e Direito Laboral", "Gestão de Empresas"),
	MQ ("Métodos Quantitativos 1", "Contabilidade e Gestão Pública"),
	IGO ("Introdução à Gestão das Organizações", "Contabilidade e Gestão Pública"),
	AI1 ("Aplicações Informáticas 1", "Contabilidade e Gestão Pública"),
	NFD ("Noções Fundamentais de Direito", "Contabilidade e Gestão Pública"),
	C1("Contabilidade 1", "Solicitadoria e Administração"),
	TM("Tópicos de Matemática", "Solicitadoria e Administração"),
	DC ("Direito Constitucional", "Solicitadoria e Administração"),
	IE ("Introdução à Economia", "Solicitadoria e Administração"),
	DCS ("Direito Comercial e das Sociedades", "Contabilidade e Auditoria"),
	ITC ("Inglês Técnico-Contabilidade", "Contabilidade e Auditoria"),
	IDDT ("Introdução ao Direito e Direito do Trabalho", "Contabilidade e Auditoria"),
	DF ("Direito Fiscal", "Contabilidade e Auditoria");

	private String disciplina;
	private String curso;

	Disciplinas (String disciplina, String curso)
	{
		this.disciplina = disciplina;
		this.curso = curso;
	}

	public String getCurso(){  
		return this.curso;  
	}  
	
	public void setCurso(String curso){  
		this.curso =  curso;  
	}
	
	public String getDisciplina(){  
		return this.disciplina;  
	}    

	public void setDisciplina(String disciplina){  
		this.disciplina =  disciplina;  
	}
	
	public String toString() {  
		return this.curso;
	}  

}