Skip to content

Commit

Permalink
ho-dev#752 LineupPlayerTable uses TableModelListener instead of Mouse…
Browse files Browse the repository at this point in the history
…Listener (ho-dev#2049)

* ho-dev#752 start tableModelListener

* ho-dev#752 LineupPlayersTable use TableModelListener instead of MouseListener

* ho-dev#752 LineupPlayersTable use TableModelListener instead of MouseListener
  • Loading branch information
wsbrenk committed Apr 11, 2024
1 parent 5120f3e commit 47857d6
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 52 deletions.
12 changes: 4 additions & 8 deletions src/main/java/core/gui/comp/table/HOTableModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,8 @@ public int getColumnCount() {
/**
* return value
*
* @param row
* @param column
* @param row Row number
* @param column Column number
*
* @return Object
*/
Expand All @@ -176,12 +176,7 @@ public final int getRowCount() {
return (m_clData != null) ? m_clData.length : 0;
}

@Override
public boolean isCellEditable(int row, int col) {
return false;
}

@Override
@Override
public final Class<?> getColumnClass(int columnIndex) {
final Object obj = getValueAt(0, columnIndex);

Expand Down Expand Up @@ -218,6 +213,7 @@ public final Object getValue(int row, String columnName) {
@Override
public void setValueAt(Object value, int row, int column) {
m_clData[row][column] = value;
fireTableCellUpdated(row,column);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/core/gui/comp/table/TableSorter.java
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ public final module.transfer.scout.ScoutEintrag getScoutEintrag(int row) {
return null;
}

public final Player getSpieler(int row) {
public final Player getPlayerAtRow(int row) {
if (row > -1) {
try {
var entry = (ColorLabelEntry) getValueAt(row, idColumn);
Expand Down
57 changes: 30 additions & 27 deletions src/main/java/module/lineup/LineupPlayersTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public final class LineupPlayersTable extends JTable implements core.gui.Refresh
private LineupTableModel tableModel;
private TableSorter tableSorter;

protected LineupPlayersTable() {
LineupPlayersTable() {
super();
initModel();
setDefaultRenderer(Object.class, new HODefaultTableCellRenderer());
Expand All @@ -56,7 +56,7 @@ public void setPlayer(int iPlayerID) {

@Override
public @Nullable Player getPlayer(int row) {
return this.tableSorter.getSpieler(row);
return this.tableSorter.getPlayerAtRow(row);
}

@Override
Expand All @@ -78,7 +78,7 @@ public void refresh() {
/**
*Returns the column for sorting
*/
protected int getSortSpalte() {
private int getSortSpalte() {
return switch (UserParameter.instance().standardsortierung) {
case UserParameter.SORT_NAME -> tableModel.getPositionInArray(UserColumnFactory.NAME);
case UserParameter.SORT_AUFGESTELLT -> tableModel.getPositionInArray(UserColumnFactory.LINEUP);
Expand All @@ -88,12 +88,11 @@ protected int getSortSpalte() {
};
}

protected TableSorter getSorter() {
TableSorter getSorter() {
return tableSorter;
}


public final void saveColumnOrder() {
public void saveColumnOrder() {
final UserColumn[] columns = tableModel.getDisplayedColumns();
final TableColumnModel tableColumnModel = getColumnModel();
for (int i = 0; i < columns.length; i++) {
Expand Down Expand Up @@ -155,22 +154,40 @@ private void initModel() {
}

private void initListeners() {

this.tableSorter.addTableModelListener(e -> {
var r = e.getFirstRow();
var c = e.getColumn();
var player = tableSorter.getPlayerAtRow(r);
if (player != null) {
if (c == tableModel.getPositionInArray(UserColumnFactory.AUTO_LINEUP)) {
var autoLineup = tableSorter.getValueAt(r,c);
if (autoLineup != null){
player.setCanBeSelectedByAssistant((boolean) autoLineup);
if( player.getCanBeSelectedByAssistant()){
// this player has been made selectable from the Lineup tab, for consistency we set its position to undefined
player.setUserPosFlag(IMatchRoleID.UNKNOWN);
}
else {
player.setUserPosFlag(IMatchRoleID.UNSELECTABLE);
}
HOMainFrame.instance().getSpielerUebersichtPanel().update();
}
}
}
});

addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
int rowindex = getSelectedRow();
if (rowindex >= 0){
int colAUTO_LINEUP_ID = tableModel.getPositionInArray(UserColumnFactory.AUTO_LINEUP);

// Last match column
int viewColumn = columnAtPoint(e.getPoint());
int column = columnModel.getColumn(viewColumn).getModelIndex();
String columnName = tableSorter.getColumnName(viewColumn);
String lastMatchRating = (HOVerwaltung.instance().getLanguageString("LastMatchRating"));

Player selectedPlayer = tableSorter.getSpieler(rowindex);
Player selectedPlayer = tableSorter.getPlayerAtRow(rowindex);
if(selectedPlayer != null){
if(columnName.equalsIgnoreCase(lastMatchRating)){
if ( column == tableModel.getPositionInArray(UserColumnFactory.LAST_MATCH_RATING)){
if(e.isShiftDown()){
int matchId = selectedPlayer.getLastMatchId();
// TODO get the match type of last match from player. For the moment we hope, that going with no type will work
Expand All @@ -180,20 +197,6 @@ public void mouseReleased(MouseEvent e) {
HOMainFrame.instance().showMatch(selectedPlayer.getLastMatchId());
}
}
else if (column == colAUTO_LINEUP_ID){
var result = tableSorter.getValueAt(rowindex, colAUTO_LINEUP_ID);
if (result != null) {
boolean bSelected = (boolean) result;
selectedPlayer.setCanBeSelectedByAssistant(bSelected);
if (bSelected) {
// this player has been made selectable from the Lineup tab, for consistency we set its position to undefined
selectedPlayer.setUserPosFlag(IMatchRoleID.UNKNOWN);
} else {
selectedPlayer.setUserPosFlag(IMatchRoleID.UNSELECTABLE);
}
HOMainFrame.instance().getSpielerUebersichtPanel().update();
}
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public LineupPlayersTableNameColumn(TableSorter model) {
public void mouseReleased(MouseEvent e) {
int rowindex = getSelectedRow();
if (rowindex >= 0){
Player player = tableSorter.getSpieler(rowindex);
Player player = tableSorter.getPlayerAtRow(rowindex);
if(player!=null && e.isShiftDown()){
HattrickLink.showPlayer(player.getPlayerId());
}
Expand All @@ -45,7 +45,7 @@ public void mouseReleased(MouseEvent e) {

@Override
public @Nullable Player getPlayer(int row) {
return this.tableSorter.getSpieler(row);
return this.tableSorter.getPlayerAtRow(row);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public void setPlayer(Player player) {
}
if ( player == null) {
// at initialisation select first player to ensure clean display =====
player = m_playerOverviewTable.getSorter().getSpieler(0);
player = m_playerOverviewTable.getSorter().getPlayerAtRow(0);
}

m_clPlayer = player;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/module/playerOverview/PlayerOverviewPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public final void refresh() {
public final void refreshHRFComparison() {
playerOverviewTable.refreshHRFComparison();

Player player = playerOverviewTable.getSorter().getSpieler(playerOverviewTable.getSelectedRow());
Player player = playerOverviewTable.getSorter().getPlayerAtRow(playerOverviewTable.getSelectedRow());
playerDetailsPanel.setPlayer(player);
}

Expand Down Expand Up @@ -241,7 +241,7 @@ private void addTableSelectionListeners() {
selectRow(playerOverviewTable, row);

// Set player on HOMainFrame to notify other tabs.
Player player = playerOverviewTable.getSorter().getSpieler(row);
Player player = playerOverviewTable.getSorter().getPlayerAtRow(row);
if (player != null) HOMainFrame.instance().selectPlayer(player);
}
}
Expand Down
12 changes: 1 addition & 11 deletions src/main/java/module/playerOverview/PlayerOverviewTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public void mouseReleased(MouseEvent e) {
String columnName = PlayerOverviewTable.this.getColumnName(columnAtPoint);
String lastMatchRating = (HOVerwaltung.instance().getLanguageString("LastMatchRating"));

Player player = tableSorter.getSpieler(rowIndex);
Player player = tableSorter.getPlayerAtRow(rowIndex);
if (player != null) {
if (columnName.equalsIgnoreCase(lastMatchRating)) {
if (e.isShiftDown()) {
Expand All @@ -86,16 +86,6 @@ public void mouseReleased(MouseEvent e) {
});
}

/**
* Returns the width of the Best position column.
*/
public final int getBestPosWidth() {
return getColumnModel()
.getColumn(getColumnModel()
.getColumnIndex(tableModel.getPositionInArray(UserColumnFactory.BEST_POSITION)))
.getWidth();
}

public final TableSorter getSorter() {
return tableSorter;
}
Expand Down

0 comments on commit 47857d6

Please sign in to comment.