Customização setSelectionModel (listBox)

Boa Tarde, pessoal
fiz uma customização pra quando estou utilizando uma listBox eu posso selecionar vários ítens sem utilizar o CTRL
Porém estou com os seguintes problemas:

  • Eu gostaria de manter a funcionalidade do SHIFT pra selecionar um intervalo(Obs.: neste caso o shift só está funcionando se retiro a selecao de um ítem!)
  • Quando eu digito a inicial de um ítem da lista (exemplo: incial: “N” ítem: “Nominal”) o item neste caso fica selecionado automaticamente,
    o que deveria era somente o foco da pesquisa ir até a linha onde o usuário poderia selecionar ou não.
    Abaixo código da customização.
	list.setSelectionModel(new DefaultListSelectionModel() { 

				private static final long serialVersionUID = 1L;

				public void setSelectionInterval(int index0, int index1) {
					if (this.isSelectedIndex(index0)) {
						this.removeSelectionInterval(index0, index1);
					} else {
						this.addSelectionInterval(index0, index1);
					}
				}
			});

Alguém saberia saberia como resolver estes casos?