fix buttons when tables are sorted
This commit is contained in:
@@ -82,11 +82,18 @@ class MainFrameController {
|
|||||||
int row = table.getSelectedRow()
|
int row = table.getSelectedRow()
|
||||||
if (row == -1)
|
if (row == -1)
|
||||||
return
|
return
|
||||||
|
def sortEvt = group.view.lastSortEvent
|
||||||
|
if (sortEvt != null) {
|
||||||
|
row = sortEvt.convertPreviousRowIndexToModel(row)
|
||||||
|
}
|
||||||
group.model.results[row]
|
group.model.results[row]
|
||||||
}
|
}
|
||||||
|
|
||||||
private def selectedDownload() {
|
private def selectedDownload() {
|
||||||
def selected = builder.getVariable("downloads-table").getSelectedRow()
|
def selected = builder.getVariable("downloads-table").getSelectedRow()
|
||||||
|
def sortEvt = mvcGroup.view.lastDownloadSortEvent
|
||||||
|
if (sortEvt != null)
|
||||||
|
selected = sortEvt.convertPreviousRowIndexToModel(selected)
|
||||||
model.downloads[selected].downloader
|
model.downloads[selected].downloader
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -37,6 +37,9 @@ class MainFrameView {
|
|||||||
@MVCMember @Nonnull
|
@MVCMember @Nonnull
|
||||||
MainFrameModel model
|
MainFrameModel model
|
||||||
|
|
||||||
|
def downloadsTable
|
||||||
|
def lastDownloadSortEvent
|
||||||
|
|
||||||
void initUI() {
|
void initUI() {
|
||||||
builder.with {
|
builder.with {
|
||||||
application(size : [1024,768], id: 'main-frame',
|
application(size : [1024,768], id: 'main-frame',
|
||||||
@@ -105,7 +108,7 @@ class MainFrameView {
|
|||||||
panel (constraints : JSplitPane.BOTTOM) {
|
panel (constraints : JSplitPane.BOTTOM) {
|
||||||
borderLayout()
|
borderLayout()
|
||||||
scrollPane (constraints : BorderLayout.CENTER) {
|
scrollPane (constraints : BorderLayout.CENTER) {
|
||||||
table(id : "downloads-table", autoCreateRowSorter : true) {
|
downloadsTable = table(id : "downloads-table", autoCreateRowSorter : true) {
|
||||||
tableModel(list: model.downloads) {
|
tableModel(list: model.downloads) {
|
||||||
closureColumn(header: "Name", preferredWidth: 350, type: String, read : {row -> row.downloader.file.getName()})
|
closureColumn(header: "Name", preferredWidth: 350, type: String, read : {row -> row.downloader.file.getName()})
|
||||||
closureColumn(header: "Status", preferredWidth: 50, type: String, read : {row -> row.downloader.getCurrentState()})
|
closureColumn(header: "Status", preferredWidth: 50, type: String, read : {row -> row.downloader.getCurrentState()})
|
||||||
@@ -280,7 +283,9 @@ class MainFrameView {
|
|||||||
|
|
||||||
def centerRenderer = new DefaultTableCellRenderer()
|
def centerRenderer = new DefaultTableCellRenderer()
|
||||||
centerRenderer.setHorizontalAlignment(JLabel.CENTER)
|
centerRenderer.setHorizontalAlignment(JLabel.CENTER)
|
||||||
builder.getVariable("downloads-table").setDefaultRenderer(Integer.class, centerRenderer)
|
downloadsTable.setDefaultRenderer(Integer.class, centerRenderer)
|
||||||
|
|
||||||
|
downloadsTable.rowSorter.addRowSorterListener({evt -> lastDownloadSortEvent = evt})
|
||||||
}
|
}
|
||||||
|
|
||||||
def showSearchWindow = {
|
def showSearchWindow = {
|
||||||
|
@@ -26,6 +26,7 @@ class SearchTabView {
|
|||||||
def parent
|
def parent
|
||||||
def searchTerms
|
def searchTerms
|
||||||
def resultsTable
|
def resultsTable
|
||||||
|
def lastSortEvent
|
||||||
|
|
||||||
void initUI() {
|
void initUI() {
|
||||||
builder.with {
|
builder.with {
|
||||||
@@ -84,6 +85,8 @@ class SearchTabView {
|
|||||||
resultsTable.columnModel.getColumn(1).setCellRenderer(centerRenderer)
|
resultsTable.columnModel.getColumn(1).setCellRenderer(centerRenderer)
|
||||||
resultsTable.setDefaultRenderer(Integer.class,centerRenderer)
|
resultsTable.setDefaultRenderer(Integer.class,centerRenderer)
|
||||||
resultsTable.columnModel.getColumn(4).setCellRenderer(centerRenderer)
|
resultsTable.columnModel.getColumn(4).setCellRenderer(centerRenderer)
|
||||||
|
|
||||||
|
resultsTable.rowSorter.addRowSorterListener({ evt -> lastSortEvent = evt})
|
||||||
}
|
}
|
||||||
|
|
||||||
def closeTab = {
|
def closeTab = {
|
||||||
|
Reference in New Issue
Block a user