M
Marco_Adv
Gast
Hallo zusammen,
ich habe eine ComboBox in der ich aus 2 Möglichkeiten auswählen kann.
1. Meine Liste
2. Alle Einträge
Desweiteren habe ich ein AbstractTableModel implementiert welches bei auswahl der 2. Selektion eine tabelle anzeigt mit den Spalten:
Element;User;Beschreibung.
Nun soll dieses Model so aufgespalten werden, dass wenn ich Meine Liste auswähle die Spalten:
Element;Level;Beschreibung angezeigt werden.
Dies soll so implementiert werden, dass ich kein weiter bzw neues AbstractTableModel benötige,
hat hierzu jemand eine Idee?
Den Code des Models habe ich hier:
Vielen Dank im voraus
ich habe eine ComboBox in der ich aus 2 Möglichkeiten auswählen kann.
1. Meine Liste
2. Alle Einträge
Desweiteren habe ich ein AbstractTableModel implementiert welches bei auswahl der 2. Selektion eine tabelle anzeigt mit den Spalten:
Element;User;Beschreibung.
Nun soll dieses Model so aufgespalten werden, dass wenn ich Meine Liste auswähle die Spalten:
Element;Level;Beschreibung angezeigt werden.
Dies soll so implementiert werden, dass ich kein weiter bzw neues AbstractTableModel benötige,
hat hierzu jemand eine Idee?
Den Code des Models habe ich hier:
Code:
public class ReleaseElementTableModel extends AbstractTableModel {
/**
*
*/
private static final long serialVersionUID = 1L;
private Color editColor = new Color(0,160,0);
private Color releasedColor = Color.lightGray;
List rows = new ArrayList();
String[] columnNames = {"Element", "User", "Beschreibung"};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return rows.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
ReleaseElement row = (ReleaseElement) rows.get(rowIndex);
DecorationWrapper wrapper;
switch(columnIndex) {
case 0:
wrapper = new DecorationWrapper(row.getFullName(),
row.isReleased() ? releasedColor : editColor,
row.isReleased() ? Font.PLAIN : Font.BOLD);
return wrapper;
case 1:
wrapper = new DecorationWrapper(row.getUserId(),
row.isReleased() ? releasedColor : null,
Font.PLAIN);
return wrapper;
case 2:
wrapper = new DecorationWrapper(row.getDescription(),
row.isReleased() ? releasedColor : null,
Font.PLAIN);
return wrapper;
}
return null;
}
public String getColumnName(int i) {
if(columnNames.length > i) {
return columnNames[i];
} else {
return "";
}
}
public void setData(List data) {
rows = new ArrayList();
rows.addAll(data);
this.fireTableDataChanged();
}
public List getData() {
return rows;
}
public ReleaseElement getElement(int index) {
return (ReleaseElement) rows.get(index);
}
public ReleaseElement removeEntry(int i) {
ReleaseElement element = null;
if( i < rows.size()) {
element = (ReleaseElement)rows.remove(i);
fireTableRowsDeleted(i, i);
}
return element;
}
public void addEntry(int i, ReleaseElement element) {
if( i >= rows.size()) {
rows.add(element);
i = rows.size() - 1;
fireTableRowsInserted(i, i);
} else {
rows.add(i, element);
fireTableRowsInserted(i, i);
}
}
/**
* Returns false. This is the default implementation for all cells.
*
* @param rowIndex the row being queried
* @param columnIndex the column being queried
* @return false
*/
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
/**
* This empty implementation is provided so users don't have to implement
* this method if their data model is not editable.
*
* @param aValue value to assign to cell
* @param rowIndex row of cell
* @param columnIndex column of cell
*/
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
if( aValue instanceof String ) {
ReleaseElement row = (ReleaseElement) rows.get(rowIndex);
switch(columnIndex) {
case 0:
row.setElementId((String)aValue);
case 1:
row.setType((String)aValue);
}
}
}
}
Vielen Dank im voraus