disable buttons if no row is selected

This commit is contained in:
Zlatin Balevsky
2019-06-01 12:23:20 +01:00
parent 4bb27b84de
commit 7e3b0795af
4 changed files with 19 additions and 7 deletions

View File

@@ -49,7 +49,8 @@ class MainFrameController {
def group = selected.getClientProperty("mvc-group")
def table = selected.getClientProperty("results-table")
int row = table.getSelectedRow()
if (row == -1)
return
group.model.results[row]
}

View File

@@ -37,11 +37,13 @@ class MainFrameModel {
@Observable boolean coreInitialized = false
def results = new ConcurrentHashMap<>()
@Observable def downloads = []
@Observable def uploads = []
@Observable def shared = []
def downloads = []
def uploads = []
def shared = []
@Observable int connections
@Observable String me
@Observable boolean searchButtonsEnabled
private final Set<InfoHash> infoHashes = new HashSet<>()

View File

@@ -69,9 +69,9 @@ class MainFrameView {
borderLayout()
tabbedPane(id : "result-tabs", constraints: BorderLayout.CENTER)
panel(constraints : BorderLayout.SOUTH) {
button(text : "Download", downloadAction)
button(text : "Trust", trustAction)
button(text : "Distrust", distrustAction)
button(text : "Download", enabled : bind {model.searchButtonsEnabled}, downloadAction)
button(text : "Trust", enabled: bind {model.searchButtonsEnabled }, trustAction)
button(text : "Distrust", enabled : bind {model.searchButtonsEnabled}, distrustAction)
}
}
panel (constraints : JSplitPane.BOTTOM) {

View File

@@ -4,6 +4,8 @@ import griffon.core.artifact.GriffonView
import griffon.core.mvc.MVCGroup
import griffon.inject.MVCMember
import griffon.metadata.ArtifactProviderFor
import javax.swing.ListSelectionModel
import javax.swing.SwingConstants
import java.awt.BorderLayout
@@ -39,6 +41,12 @@ class SearchTabView {
this.pane = pane
this.pane.putClientProperty("mvc-group", mvcGroup)
this.pane.putClientProperty("results-table",resultsTable)
def selectionModel = resultsTable.getSelectionModel()
selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION)
selectionModel.addListSelectionListener( {
mvcGroup.parentGroup.model.searchButtonsEnabled = true
})
}
}
@@ -66,6 +74,7 @@ class SearchTabView {
def closeTab = {
int index = parent.indexOfTab(searchTerms)
parent.removeTabAt(index)
mvcGroup.parentGroup.model.searchButtonsEnabled = false
mvcGroup.destroy()
}
}