//TableColumnExt column = (TableColumnExt)this.getColumnModel().getColumn(1);
//column.setVisible(false);
//this.setColumnControlVisible(true);
//this.getColumnExt((Object)UIConstants.SERVER_LIST_VERSION_COLUMN_ID).setVisible(false);
//this.getColumnExt(2).setVisible(false);
final TableColumnModel column_model = this.getColumnModel();
class PopupListener extends MouseAdapter {
JMenuItem connect_to, disconnect, add, remove_selected, remove_all, properties,
add_to_static_list, remove_from_static_list,
paste_ed2k_links, copy_ed2k_links, column_setup;
public PopupListener() {
connect_to = new JMenuItem("Connect to",ImgRep.getIcon("server_connect2.png"));
connect_to.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
executeSelectedServersOp(ServersOp.CONNECT_TO);
}
});
disconnect = new JMenuItem("Disconnect",ImgRep.getIcon("server_connect2.png"));
disconnect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Disconnect to selected");
}
});
add = new JMenuItem("Add",ImgRep.getIcon("server_add.png"));
add.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
INewServerDialog<String, Integer> server_dialog = new SNewServerDialog(parent);
SwingUtils.setWindowLocationRelativeTo((JDialog)server_dialog,parent);
server_dialog.setVisible(true);
if(server_dialog.getDialogAction()==IDialog.DialogAction.OK) {
try {
_server_manager.newServer(server_dialog.getServerIP(),
server_dialog.getServerPort());
}catch(Throwable cause) {
cause.printStackTrace();
}
}
}
});
remove_selected = new JMenuItem("Remove selected",ImgRep.getIcon("server_delete.png"));
remove_selected.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
executeSelectedServersOp(ServersOp.REMOVE_SELECTED_FROM_LIST);
}
});
remove_all = new JMenuItem("Remove all", ImgRep.getIcon("remove_all.png"));
remove_all.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
executeSelectedServersOp(ServersOp.REMOVE_ALL_FROM_LIST);
}
});
add_to_static_list = new JMenuItem(_._("mainwindow.serverlisttab.serverlist.popupmenu.add_to_static_list"),
ImgRep.getIcon("list_add.png"));
add_to_static_list.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
executeSelectedServersOp(ServersOp.MAKE_SELECTED_STATIC);
}
});
remove_from_static_list = new JMenuItem(_._("mainwindow.serverlisttab.serverlist.popupmenu.remove_from_static_list"),
ImgRep.getIcon("list_remove.png"));
remove_from_static_list.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
executeSelectedServersOp(ServersOp.MAKE_SELECTED_NON_STATIC);
}
});
properties = new JMenuItem("Properties", ImgRep.getIcon("properties.png"));
properties.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Server[] servers = getSelectedServers();
server_details = new ServerDetailsDialog(parent, servers[0]);
SwingUtils.setWindowLocationRelativeTo(server_details, parent);
server_details.setVisible(true);
}
});
paste_ed2k_links = new JMenuItem("Paste ED2K links", ImgRep.getIcon("ed2k_link_paste.png"));
paste_ed2k_links.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Object clipboard_contents = clipboard.getData(DataFlavor.stringFlavor);
//System.out.println(clipboard_contents);
List<ED2KServerLink> server_links = ED2KServerLink.extractLinks(clipboard_contents.toString());
for(ED2KServerLink server_link : server_links) {
//System.out.println(server_link);
_server_manager.newServer(server_link);
}
}catch(Throwable t) {
t.printStackTrace();
}
}
});
copy_ed2k_links = new JMenuItem("Copy ED2K links", ImgRep.getIcon("ed2k_link.png"));
copy_ed2k_links.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clipboard.setContents(new Transferable() {
public Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException,
IOException {
String ed2k_links = "";
Server[] selected_servers = getSelectedServers();
for(Server server : selected_servers) {
ed2k_links += server.getServerLink().getAsString() + System.getProperty("line.separator");
}
return ed2k_links;
}
public DataFlavor[] getTransferDataFlavors() {
DataFlavor[] data_flavours = new DataFlavor[1];
data_flavours[0] = DataFlavor.stringFlavor;
return data_flavours;
}
public boolean isDataFlavorSupported(
DataFlavor flavor) {
return flavor.isFlavorTextType();
}
}, new ClipboardOwner() {
public void lostOwnership(Clipboard clipboard, Transferable contents) {
}
});
}
});
// -------------------- Column setup ----------------------------------------------
column_setup = new JMenuItem("Column setup", ImgRep.getIcon("columns_setup.png"));
column_setup.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog col_set_frame = new JDialog(parent,"Column setup",true);
JPanel right_panel = new JPanel(); // where the up & down buttons are located
JPanel bottom_panel = new JPanel(); // Cancel, Defaults, Ok buttons
JPanel center_panel = new JPanel(); // the jtable
JButton up_button = new JButton("Up");
JButton down_button = new JButton("Down");
JButton ok_button = new JButton("OK");
JButton cancel_button = new JButton("Cancel");
JButton apply_button = new JButton("Apply");
right_panel.setLayout(new GridLayout(2,1));
right_panel.add(up_button);
right_panel.add(down_button);
bottom_panel.setLayout(new GridLayout(1,3));
bottom_panel.add(ok_button);
bottom_panel.add(apply_button);
bottom_panel.add(cancel_button);
center_panel.setLayout(new GridLayout(1,1));
col_set_frame.setSize(400, 300);
col_set_frame.setLayout(new BorderLayout());
col_set_frame.add(center_panel,BorderLayout.CENTER);
col_set_frame.add(right_panel, BorderLayout.EAST);
col_set_frame.add(bottom_panel, BorderLayout.SOUTH);
final JTable col_set_table = new JTable();
//DefaultTableModel col_set_table_model = new DefaultTableModel();
Object[][] col_set_rows_cols = new Object[14][3];
int i = 0;
// col name -> col obj mapping (easy way to map col names to master cols)
final Map<String,TableColumnExt> cols = new Hashtable<String,TableColumnExt>();
for(TableColumnExt column : table_columns) {
if(column.isVisible()) col_set_rows_cols[i][0] = true;
else col_set_rows_cols[i][0] = false;
col_set_rows_cols[i][1] = column.getHeaderValue();
cols.put(column.getHeaderValue().toString(), column);
++i;
}
col_set_table.setModel(new DefaultTableModel(col_set_rows_cols,
new String[] {
"Visibility", "Name", "Description"
})
{
Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.String.class, java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
JScrollPane scroll_pane = new JScrollPane();
scroll_pane.setViewportView(col_set_table);
center_panel.add(scroll_pane);
SwingUtils.setWindowLocationRelativeTo(col_set_frame, parent);
apply_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
for(int i=0; i<14; i++) {
boolean visibility = Boolean.parseBoolean(col_set_table.getModel().getValueAt(i, 0).toString());
String column_name = col_set_table.getModel().getValueAt(i, 1).toString();
//cols.get(column_name).setVisible(visibility);
if(visibility == false) column_model.removeColumn(cols.get(column_name));
System.out.println("Column from set " + cols.get(column_name).getHeaderValue());
System.out.println("<--->" + column_name + "<---->" + visibility);
}
}
});