add cancel and retry buttons, not hooked up yet

This commit is contained in:
Zlatin Balevsky
2019-06-01 17:30:29 +01:00
parent 15a0eda713
commit 70078c309b
2 changed files with 32 additions and 0 deletions

View File

@@ -48,6 +48,8 @@ class MainFrameModel {
@Observable int connections @Observable int connections
@Observable String me @Observable String me
@Observable boolean searchButtonsEnabled @Observable boolean searchButtonsEnabled
@Observable boolean cancelButtonEnabled
@Observable boolean retryButtonEnabled
private final Set<InfoHash> infoHashes = new HashSet<>() private final Set<InfoHash> infoHashes = new HashSet<>()

View File

@@ -9,9 +9,11 @@ import javax.swing.Box
import javax.swing.BoxLayout import javax.swing.BoxLayout
import javax.swing.JFileChooser import javax.swing.JFileChooser
import javax.swing.JSplitPane import javax.swing.JSplitPane
import javax.swing.ListSelectionModel
import javax.swing.SwingConstants import javax.swing.SwingConstants
import javax.swing.border.Border import javax.swing.border.Border
import com.muwire.core.download.Downloader
import com.muwire.core.files.FileSharedEvent import com.muwire.core.files.FileSharedEvent
import java.awt.BorderLayout import java.awt.BorderLayout
@@ -95,6 +97,10 @@ class MainFrameView {
} }
} }
} }
panel (constraints : BorderLayout.SOUTH) {
button("Cancel", enabled : bind {model.cancelButtonEnabled } )
button("Retry", enabled : bind {model.retryButtonEnabled})
}
} }
} }
} }
@@ -178,6 +184,30 @@ class MainFrameView {
} }
} }
void mvcGroupInit(Map<String, String> args) {
def downloadsTable = builder.getVariable("downloads-table")
def selectionModel = downloadsTable.getSelectionModel()
selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION)
selectionModel.addListSelectionListener({
int selectedRow = downloadsTable.getSelectedRow()
def downloader = model.downloads[selectedRow].downloader
switch(downloader.getCurrentState()) {
case Downloader.DownloadState.CONNECTING :
case Downloader.DownloadState.DOWNLOADING :
model.cancelButtonEnabled = true
model.retryButtonEnabled = false
break
case Downloader.DownloadState.FAILED:
model.cancelButtonEnabled = false
model.retryButtonEnabled = true
break
default:
model.cancelButtonEnabled = false
model.retryButtonEnabled = false
}
})
}
def showSearchWindow = { def showSearchWindow = {
def cardsPanel = builder.getVariable("cards-panel") def cardsPanel = builder.getVariable("cards-panel")
cardsPanel.getLayout().show(cardsPanel, "search window") cardsPanel.getLayout().show(cardsPanel, "search window")