mirror of https://github.com/zlatinb/muwire
ability to remove files from collection in review
parent
040203cd58
commit
cd619a023a
|
@ -6,6 +6,8 @@ import static com.muwire.gui.Translator.trans
|
||||||
import java.awt.BorderLayout
|
import java.awt.BorderLayout
|
||||||
import java.awt.datatransfer.DataFlavor
|
import java.awt.datatransfer.DataFlavor
|
||||||
import java.awt.datatransfer.Transferable
|
import java.awt.datatransfer.Transferable
|
||||||
|
import java.awt.event.MouseAdapter
|
||||||
|
import java.awt.event.MouseEvent
|
||||||
import java.awt.event.WindowAdapter
|
import java.awt.event.WindowAdapter
|
||||||
import java.awt.event.WindowEvent
|
import java.awt.event.WindowEvent
|
||||||
|
|
||||||
|
@ -16,10 +18,13 @@ import net.i2p.data.DataHelper
|
||||||
import javax.swing.JComponent
|
import javax.swing.JComponent
|
||||||
import javax.swing.JDialog
|
import javax.swing.JDialog
|
||||||
import javax.swing.JFrame
|
import javax.swing.JFrame
|
||||||
|
import javax.swing.JMenuItem
|
||||||
import javax.swing.JOptionPane
|
import javax.swing.JOptionPane
|
||||||
import javax.swing.JPanel
|
import javax.swing.JPanel
|
||||||
|
import javax.swing.JPopupMenu
|
||||||
import javax.swing.JTable
|
import javax.swing.JTable
|
||||||
import javax.swing.JTree
|
import javax.swing.JTree
|
||||||
|
import javax.swing.ListSelectionModel
|
||||||
import javax.swing.SwingConstants
|
import javax.swing.SwingConstants
|
||||||
import javax.swing.TransferHandler
|
import javax.swing.TransferHandler
|
||||||
import javax.swing.border.TitledBorder
|
import javax.swing.border.TitledBorder
|
||||||
|
@ -38,6 +43,7 @@ class CollectionWizardView {
|
||||||
def nameTextField
|
def nameTextField
|
||||||
def commentTextArea
|
def commentTextArea
|
||||||
JTable filesTable
|
JTable filesTable
|
||||||
|
def lastFilesTableSortEvent
|
||||||
JTree jTree
|
JTree jTree
|
||||||
|
|
||||||
void initUI() {
|
void initUI() {
|
||||||
|
@ -132,6 +138,24 @@ class CollectionWizardView {
|
||||||
void mvcGroupInit(Map<String,String> args) {
|
void mvcGroupInit(Map<String,String> args) {
|
||||||
filesTable.setDefaultRenderer(Long.class, new SizeRenderer())
|
filesTable.setDefaultRenderer(Long.class, new SizeRenderer())
|
||||||
filesTable.setTransferHandler(new SFTransferHandler())
|
filesTable.setTransferHandler(new SFTransferHandler())
|
||||||
|
filesTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
|
||||||
|
filesTable.rowSorter.addRowSorterListener({evt -> lastFilesTableSortEvent = evt})
|
||||||
|
|
||||||
|
JPopupMenu filesMenu = new JPopupMenu()
|
||||||
|
JMenuItem removeItem = new JMenuItem(trans("REMOVE"))
|
||||||
|
removeItem.addActionListener({removeSelectedFiles()})
|
||||||
|
filesMenu.add(removeItem)
|
||||||
|
|
||||||
|
filesTable.addMouseListener(new MouseAdapter(){
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
if (e.isPopupTrigger() || e.getButton() == MouseEvent.BUTTON3)
|
||||||
|
filesMenu.show(e.getComponent(), e.getX(), e.getY())
|
||||||
|
}
|
||||||
|
public void mouseReleased(MouseEvent e) {
|
||||||
|
if (e.isPopupTrigger() || e.getButton() == MouseEvent.BUTTON3)
|
||||||
|
filesMenu.show(e.getComponent(), e.getX(), e.getY())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
window.addWindowListener(new WindowAdapter() {
|
window.addWindowListener(new WindowAdapter() {
|
||||||
public void windowClosed(WindowEvent e) {
|
public void windowClosed(WindowEvent e) {
|
||||||
|
@ -142,6 +166,23 @@ class CollectionWizardView {
|
||||||
window.setVisible(true)
|
window.setVisible(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void removeSelectedFiles() {
|
||||||
|
int[] selected = filesTable.getSelectedRows()
|
||||||
|
if (selected.length == 0)
|
||||||
|
return
|
||||||
|
if (lastFilesTableSortEvent != null) {
|
||||||
|
for (int i = 0; i < selected.length; i++)
|
||||||
|
selected[i] = filesTable.rowSorter.convertRowIndexToModel(selected[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
Arrays.sort(selected)
|
||||||
|
for(int i = selected.length - 1; i >= 0; i--) {
|
||||||
|
def sf = model.files.remove(selected[i])
|
||||||
|
model.uniqueFiles.remove(sf)
|
||||||
|
}
|
||||||
|
filesTable.model.fireTableDataChanged()
|
||||||
|
}
|
||||||
|
|
||||||
private class SFTransferHandler extends TransferHandler {
|
private class SFTransferHandler extends TransferHandler {
|
||||||
@Override
|
@Override
|
||||||
public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) {
|
public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) {
|
||||||
|
|
Loading…
Reference in New Issue