limit the size of the table based on the terminal size
This commit is contained in:
@@ -154,7 +154,7 @@ class CliLanterna {
|
||||
System.exit(1)
|
||||
}
|
||||
|
||||
window = new MainWindowView("MuWire "+MW_VERSION, core, textGUI)
|
||||
window = new MainWindowView("MuWire "+MW_VERSION, core, textGUI, screen)
|
||||
core.eventBus.publish(new UILoadedEvent())
|
||||
textGUI.addWindowAndWait(window)
|
||||
core.shutdown()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.muwire.clilanterna
|
||||
|
||||
import com.googlecode.lanterna.TerminalSize
|
||||
import com.googlecode.lanterna.gui2.BasicWindow
|
||||
import com.googlecode.lanterna.gui2.Button
|
||||
import com.googlecode.lanterna.gui2.GridLayout
|
||||
@@ -21,7 +22,7 @@ class DownloadsView extends BasicWindow {
|
||||
private final TextGUI textGUI
|
||||
private final Table table
|
||||
|
||||
DownloadsView(Core core, DownloadsModel model, TextGUI textGUI) {
|
||||
DownloadsView(Core core, DownloadsModel model, TextGUI textGUI, TerminalSize terminalSize) {
|
||||
this.core = core
|
||||
this.model = model
|
||||
this.textGUI = textGUI
|
||||
@@ -34,6 +35,7 @@ class DownloadsView extends BasicWindow {
|
||||
table.setCellSelection(false)
|
||||
table.setSelectAction({rowSelected()})
|
||||
table.setTableModel(model.model)
|
||||
table.setSize(terminalSize)
|
||||
contentPanel.addComponent(table, GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER))
|
||||
|
||||
Button closeButton = new Button("Close",{close()})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.muwire.clilanterna
|
||||
|
||||
|
||||
import com.googlecode.lanterna.TerminalSize
|
||||
import com.googlecode.lanterna.gui2.BasicWindow
|
||||
import com.googlecode.lanterna.gui2.Button
|
||||
import com.googlecode.lanterna.gui2.GridLayout
|
||||
@@ -23,7 +24,7 @@ class FilesView extends BasicWindow {
|
||||
private final Core core
|
||||
private final Table table
|
||||
|
||||
FilesView(FilesModel model, TextGUI textGUI, Core core) {
|
||||
FilesView(FilesModel model, TextGUI textGUI, Core core, TerminalSize terminalSize) {
|
||||
super("Shared Files")
|
||||
this.model = model
|
||||
this.core = core
|
||||
@@ -39,6 +40,7 @@ class FilesView extends BasicWindow {
|
||||
table.setCellSelection(false)
|
||||
table.setTableModel(model.model)
|
||||
table.setSelectAction({rowSelected()})
|
||||
table.setSize(terminalSize)
|
||||
contentPanel.addComponent(table, layoutData)
|
||||
|
||||
Panel buttonsPanel = new Panel()
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.googlecode.lanterna.gui2.Panel
|
||||
import com.googlecode.lanterna.gui2.Panels
|
||||
import com.googlecode.lanterna.gui2.TextGUI
|
||||
import com.googlecode.lanterna.gui2.Window
|
||||
import com.googlecode.lanterna.screen.Screen
|
||||
import com.googlecode.lanterna.gui2.TextBox
|
||||
import com.muwire.core.Core
|
||||
|
||||
@@ -18,6 +19,7 @@ class MainWindowView extends BasicWindow {
|
||||
|
||||
private final Core core
|
||||
private final TextGUI textGUI
|
||||
private final Screen screen
|
||||
|
||||
private final Label connectionCount
|
||||
private final TextBox searchTextBox
|
||||
@@ -26,11 +28,12 @@ class MainWindowView extends BasicWindow {
|
||||
private final UploadsModel uploadsModel
|
||||
private final FilesModel filesModel
|
||||
|
||||
public MainWindowView(String title, Core core, TextGUI textGUI) {
|
||||
public MainWindowView(String title, Core core, TextGUI textGUI, Screen screen) {
|
||||
super(title);
|
||||
|
||||
this.core = core
|
||||
this.textGUI = textGUI
|
||||
this.screen = screen
|
||||
|
||||
downloadsModel = new DownloadsModel(textGUI.getGUIThread(),core)
|
||||
uploadsModel = new UploadsModel(textGUI.getGUIThread(), core)
|
||||
@@ -92,21 +95,27 @@ class MainWindowView extends BasicWindow {
|
||||
connectionCount.setText(String.valueOf(core.connectionManager.connections.size()))
|
||||
}
|
||||
|
||||
private TerminalSize sizeForTables() {
|
||||
TerminalSize full = screen.getTerminalSize()
|
||||
return new TerminalSize(full.getColumns(), full.getRows() - 10)
|
||||
}
|
||||
|
||||
private void search() {
|
||||
String query = searchTextBox.getText()
|
||||
SearchModel model = new SearchModel(query, core)
|
||||
textGUI.addWindowAndWait(new SearchView(model,core, textGUI))
|
||||
textGUI.addWindowAndWait(new SearchView(model,core, textGUI, sizeForTables()))
|
||||
}
|
||||
|
||||
|
||||
private void download() {
|
||||
textGUI.addWindowAndWait(new DownloadsView(core, downloadsModel, textGUI))
|
||||
textGUI.addWindowAndWait(new DownloadsView(core, downloadsModel, textGUI, sizeForTables()))
|
||||
}
|
||||
|
||||
private void upload() {
|
||||
textGUI.addWindowAndWait(new UploadsView(uploadsModel))
|
||||
textGUI.addWindowAndWait(new UploadsView(uploadsModel, sizeForTables()))
|
||||
}
|
||||
|
||||
private void files() {
|
||||
textGUI.addWindowAndWait(new FilesView(filesModel, textGUI, core))
|
||||
textGUI.addWindowAndWait(new FilesView(filesModel, textGUI, core, sizeForTables()))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.muwire.clilanterna
|
||||
|
||||
import com.googlecode.lanterna.TerminalSize
|
||||
import com.googlecode.lanterna.gui2.BasicWindow
|
||||
import com.googlecode.lanterna.gui2.Button
|
||||
import com.googlecode.lanterna.gui2.GridLayout
|
||||
@@ -23,7 +24,7 @@ class ResultsView extends BasicWindow {
|
||||
private final Core core
|
||||
private final Table table
|
||||
|
||||
ResultsView(ResultsModel model, Core core, TextGUI textGUI) {
|
||||
ResultsView(ResultsModel model, Core core, TextGUI textGUI, TerminalSize terminalSize) {
|
||||
super(model.results.results[0].sender.getHumanReadableName() + " Results")
|
||||
this.model = model
|
||||
this.core = core
|
||||
@@ -38,6 +39,7 @@ class ResultsView extends BasicWindow {
|
||||
table.setCellSelection(false)
|
||||
table.setSelectAction({rowSelected()})
|
||||
table.setTableModel(model.model)
|
||||
table.setSize(terminalSize)
|
||||
contentPanel.addComponent(table, GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER))
|
||||
|
||||
Button closeButton = new Button("Close", {close()})
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.muwire.clilanterna
|
||||
|
||||
import com.googlecode.lanterna.TerminalSize
|
||||
import com.googlecode.lanterna.gui2.BasicWindow
|
||||
import com.googlecode.lanterna.gui2.Button
|
||||
import com.googlecode.lanterna.gui2.GridLayout
|
||||
@@ -16,8 +17,9 @@ class SearchView extends BasicWindow {
|
||||
private final SearchModel model
|
||||
private final Table table
|
||||
private final TextGUI textGUI
|
||||
private final TerminalSize terminalSize
|
||||
|
||||
SearchView(SearchModel model, Core core, TextGUI textGUI) {
|
||||
SearchView(SearchModel model, Core core, TextGUI textGUI, TerminalSize terminalSize) {
|
||||
super(model.query)
|
||||
this.core = core
|
||||
this.model = model
|
||||
@@ -32,6 +34,7 @@ class SearchView extends BasicWindow {
|
||||
table.setCellSelection(false)
|
||||
table.setSelectAction({rowSelected()})
|
||||
table.setTableModel(model.model)
|
||||
table.setSize(terminalSize)
|
||||
contentPanel.addComponent(table, GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER))
|
||||
|
||||
Button closeButton = new Button("Close", {
|
||||
@@ -72,7 +75,7 @@ class SearchView extends BasicWindow {
|
||||
private void showResults(String personaName) {
|
||||
def results = model.resultsPerSender.get(personaName)
|
||||
ResultsModel resultsModel = new ResultsModel(results)
|
||||
ResultsView resultsView = new ResultsView(resultsModel, core, textGUI)
|
||||
ResultsView resultsView = new ResultsView(resultsModel, core, textGUI, terminalSize)
|
||||
textGUI.addWindowAndWait(resultsView)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.muwire.clilanterna
|
||||
|
||||
import com.googlecode.lanterna.TerminalSize
|
||||
import com.googlecode.lanterna.gui2.BasicWindow
|
||||
import com.googlecode.lanterna.gui2.Button
|
||||
import com.googlecode.lanterna.gui2.GridLayout
|
||||
@@ -14,7 +15,7 @@ class UploadsView extends BasicWindow {
|
||||
private final UploadsModel model
|
||||
private final Table table
|
||||
|
||||
UploadsView(UploadsModel model) {
|
||||
UploadsView(UploadsModel model, TerminalSize terminalSize) {
|
||||
this.model = model
|
||||
|
||||
setHints([Window.Hint.EXPANDED])
|
||||
@@ -26,6 +27,7 @@ class UploadsView extends BasicWindow {
|
||||
table = new Table("Name","Progress","Downloader","Remote Pieces")
|
||||
table.setCellSelection(false)
|
||||
table.setTableModel(model.model)
|
||||
table.setSize(terminalSize)
|
||||
contentPanel.addComponent(table, layoutData)
|
||||
|
||||
Button closeButton = new Button("Close",{close()})
|
||||
|
||||
Reference in New Issue
Block a user