All pastes #486561 Raw Edit

Raven

public java v1 · immutable
·published 2007-05-13 23:03 UTC
rendered paste body
package gui;import javax.swing.table.AbstractTableModel;import javax.swing.event.TableModelEvent;import java.util.Collections;import java.util.Comparator;import java.util.ArrayList;public class SortModel extends AbstractTableModel{	private String[] names;	public String[][] data;	public SortModel(){	}	public SortModel(String[][] _data, String[] _names){ 		data = _data;		names = _names;	} 	// Die Anzahl Columns 	public int getColumnCount() { 		return names.length; 	} 	// Die Anzahl Rows 	public int getRowCount() { 		return data.length; 	} 	// Die Titel der einzelnen Columns 	public String getColumnName(int column) { 		return names[column];	} 	// Der Wert der Zelle (rowIndex, columnIndex) 	public Object getValueAt(int rowIndex, int columnIndex) {		try{			return new String(data[rowIndex][columnIndex]);		}		catch(ArrayIndexOutOfBoundsException e){			System.out.println("zulanges array^^ "+rowIndex+" / "+columnIndex);		}		return new String("aha^^");	} 	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {		data[rowIndex][columnIndex] = aValue.toString();		fireTableChanged(new TableModelEvent(this, rowIndex, rowIndex, columnIndex));	}	public void sort (int spalte) {		ArrayList<String[]> tosort = new ArrayList<String[]> ();		for(int i = 0; i != data.length; i++){			tosort.add(data[i]);		}		Collections.sort(tosort, new WarenComparator (spalte));		for(int i = 0; i != data.length; i++){			data[i] = tosort.get(i);		}	}		public void invsort (int spalte) {		ArrayList<String[]> tosort = new ArrayList<String[]> ();		for(int i = 0; i != data.length; i++){			tosort.add(data[i]);		}		Collections.sort(tosort, new WarenComparator (spalte));		Collections.reverse(tosort);		for(int i = 0; i != data.length; i++){			data[i] = tosort.get(i);		}	}	private class WarenComparator implements Comparator {		private final int spalte;		public WarenComparator (final int spalte) {			this.spalte = spalte;		}		public int compare(Object o1, Object o2) {			if (o1 == null && o2 == null) {				return 0;			}			else if (o1 == null) {				return 1;			}			else {				switch (this.spalte) {				case 0 :					return (getNummer((String[])o1).compareToIgnoreCase(getNummer((String[])o2)));				case 1 :					return (getName((String[])o1).compareToIgnoreCase(getName((String[])o2)));				case 2 :					return (getHerkunft((String[])o1).compareToIgnoreCase(getHerkunft((String[])o2)));				case 3 :					return (getBeschreibung((String[])o1).compareToIgnoreCase(getBeschreibung((String[])o2)));				case 4 :					return (getPreis((String[])o1).compareTo(getPreis((String[])o2)));				case 5 :					return (getGesamtPreis((String[])o1).compareTo(getGesamtPreis((String[])o2)));				default :					return 0;				}			}		}		private String getNummer(String[] temp){			return temp[0];		}				private String getName(String[] temp){			return temp[1];		}				private String getHerkunft(String[] temp){			return temp[2];		}				private String getBeschreibung(String[] temp){			return temp[3];		}				private Double getPreis(String[] temp){			return Double.parseDouble(temp[4]);		}				private Double getGesamtPreis(String[] temp){			return Double.parseDouble(temp[5]);		}	}}