mirror of https://github.com/zlatinb/muwire
implement adding comments to shared files
parent
804113bb1b
commit
546b71b632
|
@ -0,0 +1,64 @@
|
||||||
|
package com.muwire.clilanterna
|
||||||
|
|
||||||
|
import com.googlecode.lanterna.gui2.TextBox
|
||||||
|
import com.googlecode.lanterna.gui2.TextGUI
|
||||||
|
import com.googlecode.lanterna.gui2.Window
|
||||||
|
import com.googlecode.lanterna.TerminalSize
|
||||||
|
import com.googlecode.lanterna.gui2.BasicWindow
|
||||||
|
import com.googlecode.lanterna.gui2.Button
|
||||||
|
import com.googlecode.lanterna.gui2.GridLayout
|
||||||
|
import com.googlecode.lanterna.gui2.GridLayout.Alignment
|
||||||
|
import com.googlecode.lanterna.gui2.LayoutData
|
||||||
|
import com.googlecode.lanterna.gui2.Panel
|
||||||
|
import com.muwire.core.Core
|
||||||
|
import com.muwire.core.SharedFile
|
||||||
|
import com.muwire.core.files.UICommentEvent
|
||||||
|
import com.muwire.core.util.DataUtil
|
||||||
|
|
||||||
|
import net.i2p.data.Base64
|
||||||
|
|
||||||
|
class AddCommentView extends BasicWindow {
|
||||||
|
private final TextGUI textGUI
|
||||||
|
private final Core core
|
||||||
|
private final TextBox textBox
|
||||||
|
private final LayoutData layoutData = GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER)
|
||||||
|
|
||||||
|
AddCommentView(TextGUI textGUI, Core core, SharedFile sharedFile, TerminalSize terminalSize) {
|
||||||
|
super("Add Comment To "+sharedFile.getFile().getName())
|
||||||
|
this.textGUI = textGUI
|
||||||
|
this.core = core
|
||||||
|
|
||||||
|
setHints([Window.Hint.CENTERED])
|
||||||
|
|
||||||
|
Panel contentPanel = new Panel()
|
||||||
|
contentPanel.setLayoutManager(new GridLayout(1))
|
||||||
|
|
||||||
|
String oldComment = sharedFile.getComment()
|
||||||
|
if (oldComment == null)
|
||||||
|
oldComment = ""
|
||||||
|
else
|
||||||
|
oldComment = DataUtil.readi18nString(Base64.decode(oldComment))
|
||||||
|
|
||||||
|
TerminalSize boxSize = new TerminalSize((terminalSize.getColumns() / 2).toInteger(), (terminalSize.getRows() / 2).toInteger())
|
||||||
|
textBox = new TextBox(boxSize,oldComment,TextBox.Style.MULTI_LINE)
|
||||||
|
contentPanel.addComponent(textBox, layoutData)
|
||||||
|
|
||||||
|
Panel buttonsPanel = new Panel()
|
||||||
|
buttonsPanel.setLayoutManager(new GridLayout(2))
|
||||||
|
contentPanel.addComponent(buttonsPanel, layoutData)
|
||||||
|
|
||||||
|
Button saveButton = new Button("Save", {
|
||||||
|
String newComment = textBox.getText()
|
||||||
|
newComment = Base64.encode(DataUtil.encodei18nString(newComment))
|
||||||
|
sharedFile.setComment(newComment)
|
||||||
|
core.eventBus.publish(new UICommentEvent(sharedFile : sharedFile, oldComment : oldComment))
|
||||||
|
close()
|
||||||
|
})
|
||||||
|
Button cancelButton = new Button("Cancel", {close()})
|
||||||
|
|
||||||
|
buttonsPanel.addComponent(saveButton, layoutData)
|
||||||
|
buttonsPanel.addComponent(cancelButton, layoutData)
|
||||||
|
|
||||||
|
setComponent(contentPanel)
|
||||||
|
}
|
||||||
|
}
|
|
@ -84,7 +84,10 @@ class FilesView extends BasicWindow {
|
||||||
core.eventBus.publish(new UIPersistFilesEvent())
|
core.eventBus.publish(new UIPersistFilesEvent())
|
||||||
MessageDialog.showMessageDialog(textGUI, "File Unshared", "Unshared "+sf.getFile().getName(), MessageDialogButton.OK)
|
MessageDialog.showMessageDialog(textGUI, "File Unshared", "Unshared "+sf.getFile().getName(), MessageDialogButton.OK)
|
||||||
} )
|
} )
|
||||||
Button addCommentButton = new Button("Add comment", {})
|
Button addCommentButton = new Button("Add Comment", {
|
||||||
|
AddCommentView view = new AddCommentView(textGUI, core, sf, terminalSize)
|
||||||
|
textGUI.addWindowAndWait(view)
|
||||||
|
})
|
||||||
Button closeButton = new Button("Close", {prompt.close()})
|
Button closeButton = new Button("Close", {prompt.close()})
|
||||||
|
|
||||||
LayoutData layoutData = GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER)
|
LayoutData layoutData = GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER)
|
||||||
|
|
Loading…
Reference in New Issue