📄 serverlisttable.java
字号:
ip.setComparator(new GeneralComparator("getAddressAsInt")); table_columns.add(ip); //server_tab_column_model.addColumn( ip ); TableColumnExt desc = new TableColumnExt(); desc.setModelIndex(ServerListTableModel.DESCRIPTION); desc.setIdentifier(UIConstants.SERVER_LIST_DESCRIPTION_COLUMN_ID); desc.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_DESCRIPTION_COLUMN_ID)); desc.setHeaderValue("Description"); desc.setCellRenderer(new DescTableCellRenderer()); desc.setComparator(new GeneralComparator("getDesc")); table_columns.add(desc); //server_tab_column_model.addColumn( desc ); TableColumnExt ping = new TableColumnExt(); ping.setModelIndex(ServerListTableModel.PING); ping.setIdentifier(UIConstants.SERVER_LIST_PING_COLUMN_ID); ping.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_PING_COLUMN_ID)); ping.setHeaderValue("Ping"); ping.setCellRenderer(new PingTableCellRenderer()); ping.setComparator(new GeneralComparator("getPing")); table_columns.add(ping); //server_tab_column_model.addColumn( ping ); TableColumnExt users = new TableColumnExt(); users.setModelIndex(ServerListTableModel.USERS); users.setIdentifier(UIConstants.SERVER_LIST_USERS_COLUMN_ID); users.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_USERS_COLUMN_ID)); users.setHeaderValue("Users"); users.setCellRenderer(new UsersTableCellRenderer()); users.setComparator(new GeneralComparator("getNumUsers")); table_columns.add(users); //server_tab_column_model.addColumn( users ); TableColumnExt max_users = new TableColumnExt(); max_users.setModelIndex(ServerListTableModel.MAX_USERS); max_users.setIdentifier(UIConstants.SERVER_LIST_MAX_USERS_COLUMN_ID); max_users.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_MAX_USERS_COLUMN_ID)); max_users.setHeaderValue("Max users"); max_users.setCellRenderer(new MaxUsersTableCellRenderer()); max_users.setComparator(new GeneralComparator("getMaxUsers")); table_columns.add(max_users); //server_tab_column_model.addColumn(max_users); TableColumnExt files = new TableColumnExt(); files.setModelIndex(ServerListTableModel.FILES); files.setIdentifier(UIConstants.SERVER_LIST_FILES_COLUMN_ID); files.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_FILES_COLUMN_ID)); files.setHeaderValue("Files"); files.setCellRenderer(new FilesTableCellRenderer()); files.setComparator(new GeneralComparator("getNumFiles")); table_columns.add(files); //server_tab_column_model.addColumn(files); TableColumnExt soft_limit = new TableColumnExt(); soft_limit.setModelIndex(ServerListTableModel.SOFT_LIMIT); soft_limit.setIdentifier(UIConstants.SERVER_LIST_SOFT_LIMIT_COLUMN_ID); soft_limit.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_SOFT_LIMIT_COLUMN_ID)); soft_limit.setHeaderValue("Soft limit"); soft_limit.setCellRenderer(new SoftLimitTableCellRenderer()); soft_limit.setComparator(new GeneralComparator("getSoftLimit")); table_columns.add(soft_limit); //server_tab_column_model.addColumn(soft_limit); TableColumnExt hard_limit = new TableColumnExt(); hard_limit.setModelIndex(ServerListTableModel.HARD_LIMIT); hard_limit.setIdentifier(UIConstants.SERVER_LIST_HARD_LIMIT_COLUMN_ID); hard_limit.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_HARD_LIMIT_COLUMN_ID)); hard_limit.setHeaderValue("Hard limit"); hard_limit.setCellRenderer(new HardLimitTableCellRenderer()); hard_limit.setComparator(new GeneralComparator("getHardLimit")); table_columns.add(hard_limit); //server_tab_column_model.addColumn(hard_limit); TableColumnExt version = new TableColumnExt(); version.setModelIndex(ServerListTableModel.VERSION); version.setIdentifier(UIConstants.SERVER_LIST_VERSION_COLUMN_ID); version.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_VERSION_COLUMN_ID)); version.setHeaderValue("Version"); version.setCellRenderer(new VersionTableCellRenderer()); version.setComparator(new GeneralComparator("getVersion")); //version.setVisible(false); table_columns.add(version); //server_tab_column_model.addColumn(version); TableColumnExt static_col = new TableColumnExt(); static_col.setModelIndex(ServerListTableModel.STATIC); static_col.setIdentifier(UIConstants.SERVER_LIST_STATIC_COLUMN_ID); static_col.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_STATIC_COLUMN_ID)); static_col.setHeaderValue("Static"); static_col.setCellRenderer(new StaticTableCellRenderer()); static_col.setComparator(new GeneralComparator("isStatic")); table_columns.add(static_col); TableColumnExt down = new TableColumnExt(); down.setModelIndex(ServerListTableModel.DOWN); down.setIdentifier(UIConstants.SERVER_LIST_DOWN_COLUMN_ID); down.setVisible(_pref.isColumnVisible(UIConstants.SERVER_LIST_DOWN_COLUMN_ID)); down.setHeaderValue("Down"); down.setCellRenderer(new DownTableCellRenderer()); down.setComparator(new GeneralComparator("isDown")); table_columns.add(down); super.buildColumns(new ServerListTableModel()); //TableColumnModel server_tab_column_model = new DefaultTableColumnModel(); //for(TableColumnExt column : table_columns) { // server_tab_column_model.addColumn(column); //} //server_list_model = new ServerListTableModel(); //this.setModel(server_list_model); //this.setColumnModel(server_tab_column_model); //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) { Server server = new Server(server_dialog.getServerIP(), server_dialog.getServerPort()); _server_manager.addServer(server); } } }); 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.addServer(new Server(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); } } }); col_set_frame.setVisible(true); } }); } public void mousePressed(MouseEvent e) { showPopup(e); } public void mouseReleased(MouseEvent e) { showPopup(e); } private void showPopup(MouseEvent e) { if (e.isPopupTrigger()) { //ServerManager _server_manager = ServerManagerFactory.getInstance(); // Server connected_server = _server_manager.getConnectedServer();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -