List of usage examples for java.awt.event KeyEvent VK_C
int VK_C
To view the source code for java.awt.event KeyEvent VK_C.
Click Source Link
From source file:org.domainmath.gui.MainFrame.java
/** This method is called from within the constructor to * initialize the form./*from w w w . j a v a 2 s . c om*/ * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); jToolBar1 = new javax.swing.JToolBar(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jSeparator4 = new javax.swing.JToolBar.Separator(); connectButton = new javax.swing.JButton(); disconnectButton = new javax.swing.JButton(); jSeparator9 = new javax.swing.JToolBar.Separator(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jSeparator15 = new javax.swing.JToolBar.Separator(); jButton6 = new javax.swing.JButton(); jButton7 = new javax.swing.JButton(); jButton8 = new javax.swing.JButton(); jSeparator13 = new javax.swing.JToolBar.Separator(); jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); dirComboBox = new javax.swing.JComboBox(); folderUpButton = new javax.swing.JButton(); browseButton = new javax.swing.JButton(); addButton = new javax.swing.JButton(); jMenuBar1 = new javax.swing.JMenuBar(); fileMenu = new javax.swing.JMenu(); newFileItem = new javax.swing.JMenuItem(); openItem = new javax.swing.JMenuItem(); jSeparator17 = new javax.swing.JPopupMenu.Separator(); saveFileItem = new javax.swing.JMenuItem(); saveAsItem = new javax.swing.JMenuItem(); savePlotItem = new javax.swing.JMenuItem(); saveAllItem = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JPopupMenu.Separator(); printFileItem = new javax.swing.JMenuItem(); printItem = new javax.swing.JMenuItem(); jSeparator19 = new javax.swing.JPopupMenu.Separator(); preferencesItem = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); connectItem = new javax.swing.JMenuItem(); disconnectItem = new javax.swing.JMenuItem(); jSeparator3 = new javax.swing.JPopupMenu.Separator(); exitItem = new javax.swing.JMenuItem(); editMenu = new javax.swing.JMenu(); undoItem = new javax.swing.JMenuItem(); redoItem = new javax.swing.JMenuItem(); jSeparator20 = new javax.swing.JPopupMenu.Separator(); cutItem = new javax.swing.JMenuItem(); copyItem = new javax.swing.JMenuItem(); pasteItem = new javax.swing.JMenuItem(); jSeparator21 = new javax.swing.JPopupMenu.Separator(); deleteItem = new javax.swing.JMenuItem(); selectAllItem = new javax.swing.JMenuItem(); jSeparator22 = new javax.swing.JPopupMenu.Separator(); jMenuItem2 = new javax.swing.JMenuItem(); jMenuItem3 = new javax.swing.JMenuItem(); jSeparator23 = new javax.swing.JPopupMenu.Separator(); jMenuItem4 = new javax.swing.JMenuItem(); jMenuItem5 = new javax.swing.JMenuItem(); jSeparator24 = new javax.swing.JPopupMenu.Separator(); jMenuItem6 = new javax.swing.JMenuItem(); jMenuItem1 = new javax.swing.JMenuItem(); jSeparator11 = new javax.swing.JPopupMenu.Separator(); clearOutWindowItem = new javax.swing.JMenuItem(); jMenu3 = new javax.swing.JMenu(); consoleItem = new javax.swing.JMenuItem(); historyItem = new javax.swing.JMenuItem(); filesItem = new javax.swing.JMenuItem(); workspaceItem = new javax.swing.JMenuItem(); codeEditorItem = new javax.swing.JMenuItem(); pathsItem = new javax.swing.JMenuItem(); pkgsItem = new javax.swing.JMenuItem(); arrayEditItem = new javax.swing.JMenuItem(); jMenuItem7 = new javax.swing.JMenuItem(); jMenu1 = new javax.swing.JMenu(); findItem = new javax.swing.JMenuItem(); replaceItem = new javax.swing.JMenuItem(); gotoItem = new javax.swing.JMenuItem(); jSeparator25 = new javax.swing.JPopupMenu.Separator(); googleItem = new javax.swing.JMenuItem(); wikiItem = new javax.swing.JMenuItem(); pkgMenu = new javax.swing.JMenu(); debugMenu = new javax.swing.JMenu(); runScriptItem = new javax.swing.JMenuItem(); runScriptCItem = new javax.swing.JMenuItem(); jMenuItem8 = new javax.swing.JMenuItem(); jSeparator8 = new javax.swing.JPopupMenu.Separator(); debugScriptMenuItem = new javax.swing.JMenuItem(); testScriptMenuItem = new javax.swing.JMenuItem(); toggleBreakpointItem = new javax.swing.JMenuItem(); removeToggleBreakpointItem = new javax.swing.JMenuItem(); clearAllBreakpointsItem = new javax.swing.JMenuItem(); jSeparator10 = new javax.swing.JPopupMenu.Separator(); stepItem = new javax.swing.JMenuItem(); stepInItem = new javax.swing.JMenuItem(); stepOutItem = new javax.swing.JMenuItem(); continueItem = new javax.swing.JMenuItem(); jSeparator5 = new javax.swing.JPopupMenu.Separator(); finishDebugItem = new javax.swing.JMenuItem(); toolsMenu = new javax.swing.JMenu(); fltkplotItem = new javax.swing.JMenuItem(); octaveCmdItem = new javax.swing.JMenuItem(); jMenu2 = new javax.swing.JMenu(); previousWindowItem = new javax.swing.JMenuItem(); nextWindowItem = new javax.swing.JMenuItem(); jSeparator29 = new javax.swing.JPopupMenu.Separator(); closeItem = new javax.swing.JMenuItem(); closeAllItem = new javax.swing.JMenuItem(); jSeparator18 = new javax.swing.JPopupMenu.Separator(); windowsItem = new javax.swing.JMenuItem(); helpMenu = new javax.swing.JMenu(); forumItem = new javax.swing.JMenuItem(); octaveInfoItem = new javax.swing.JMenuItem(); jSeparator12 = new javax.swing.JPopupMenu.Separator(); quickHelpItem = new javax.swing.JMenuItem(); jMenuItem9 = new javax.swing.JMenuItem(); docPkgItem = new javax.swing.JMenuItem(); referenceMenu = new javax.swing.JMenu(); referenceItem = new javax.swing.JMenuItem(); jSeparator6 = new javax.swing.JPopupMenu.Separator(); checkForUpdatesMenuItem = new javax.swing.JMenuItem(); onlineHelpItem = new javax.swing.JMenuItem(); faqItem = new javax.swing.JMenuItem(); jSeparator14 = new javax.swing.JPopupMenu.Separator(); reportBugItem = new javax.swing.JMenuItem(); feedBackItem = new javax.swing.JMenuItem(); jSeparator7 = new javax.swing.JPopupMenu.Separator(); AboutItem = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); java.util.ResourceBundle bundle = java.util.ResourceBundle .getBundle("org/domainmath/gui/resources/DomainMath_en"); // NOI18N setTitle(bundle.getString("DomainMath.title")); // NOI18N addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { formWindowClosing(evt); } public void windowOpened(java.awt.event.WindowEvent evt) { formWindowOpened(evt); } }); jToolBar1.setRollover(true); jToolBar1.setName("Standard"); // NOI18N jButton1.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/document-new.png"))); // NOI18N jButton1.setFocusable(false); jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jToolBar1.add(jButton1); jButton2.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/document-open.png"))); // NOI18N jButton2.setFocusable(false); jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jToolBar1.add(jButton2); jButton3.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/document-save-all.png"))); // NOI18N jButton3.setFocusable(false); jButton3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton3.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jToolBar1.add(jButton3); jToolBar1.add(jSeparator4); connectButton.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/connect.png"))); // NOI18N connectButton.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("connectItem.mnemonic").charAt(0)); connectButton.setToolTipText(bundle.getString("connectItem.tooltip")); // NOI18N connectButton.setFocusable(false); connectButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); connectButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); connectButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { connectButtonActionPerformed(evt); } }); jToolBar1.add(connectButton); disconnectButton.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/disconnect.png"))); // NOI18N disconnectButton .setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("disconnectItem.mnemonic").charAt(0)); disconnectButton.setToolTipText(bundle.getString("disconnectItem.tooltip")); // NOI18N disconnectButton.setFocusable(false); disconnectButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); disconnectButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); disconnectButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { disconnectButtonActionPerformed(evt); } }); jToolBar1.add(disconnectButton); jToolBar1.add(jSeparator9); jButton4.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/edit-undo.png"))); // NOI18N jButton4.setFocusable(false); jButton4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton4.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jToolBar1.add(jButton4); jButton5.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/edit-redo.png"))); // NOI18N jButton5.setFocusable(false); jButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt); } }); jToolBar1.add(jButton5); jToolBar1.add(jSeparator15); jButton6.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/edit-cut.png"))); // NOI18N jButton6.setFocusable(false); jButton6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton6.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton6ActionPerformed(evt); } }); jToolBar1.add(jButton6); jButton7.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/edit-copy.png"))); // NOI18N jButton7.setFocusable(false); jButton7.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton7.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton7ActionPerformed(evt); } }); jToolBar1.add(jButton7); jButton8.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/edit-paste.png"))); // NOI18N jButton8.setFocusable(false); jButton8.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButton8.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton8.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton8ActionPerformed(evt); } }); jToolBar1.add(jButton8); jToolBar1.add(jSeparator13); jLabel1.setText("Current Directory:"); dirComboBox.setEditable(true); dirComboBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { dirComboBoxItemStateChanged(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout .setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(1, 1, 1).addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(dirComboBox, 0, 112, Short.MAX_VALUE).addGap(1, 1, 1))); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(5, 5, 5).addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1) .addComponent(dirComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(3, 3, 3))); jToolBar1.add(jPanel1); folderUpButton.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/size22x22/go-up.png"))); // NOI18N folderUpButton.setToolTipText("Up"); folderUpButton.setFocusable(false); folderUpButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); folderUpButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); folderUpButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { folderUpButtonActionPerformed(evt); } }); jToolBar1.add(folderUpButton); browseButton.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/document-open.png"))); // NOI18N browseButton.setToolTipText(bundle.getString("browseButton.title")); // NOI18N browseButton.setFocusable(false); browseButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); browseButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); browseButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { browseButtonActionPerformed(evt); } }); jToolBar1.add(browseButton); addButton.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/size22x22/edit-add.png"))); // NOI18N addButton.setToolTipText(bundle.getString("addButton.title")); // NOI18N addButton.setFocusable(false); addButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); addButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); addButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addButtonActionPerformed(evt); } }); jToolBar1.add(addButton); getContentPane().add(jToolBar1, java.awt.BorderLayout.PAGE_START); fileMenu.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("fileMenu.mnemonic").charAt(0)); fileMenu.setText(bundle.getString("fileMenu.name")); // NOI18N newFileItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK)); newFileItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/document-new.png"))); // NOI18N newFileItem.setText("New"); newFileItem.setToolTipText(bundle.getString("newMenuItem.tooltip")); // NOI18N newFileItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { newFileItemActionPerformed(evt); } }); fileMenu.add(newFileItem); openItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK)); openItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/document-open.png"))); // NOI18N openItem.setText("Open..."); openItem.setToolTipText("Open File"); openItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { openItemActionPerformed(evt); } }); fileMenu.add(openItem); fileMenu.add(jSeparator17); saveFileItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK)); saveFileItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/document-save.png"))); // NOI18N saveFileItem.setText("Save "); saveFileItem.setToolTipText(bundle.getString("saveMenuItem.tooltp")); // NOI18N saveFileItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveFileItemActionPerformed(evt); } }); fileMenu.add(saveFileItem); saveAsItem.setText("Save As..."); saveAsItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveAsItemActionPerformed(evt); } }); fileMenu.add(saveAsItem); savePlotItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("savePlotItem.mnemonic").charAt(0)); savePlotItem.setText(bundle.getString("savePlotItem.name")); // NOI18N savePlotItem.setToolTipText(bundle.getString("savePlotItem.tooltip")); // NOI18N savePlotItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { savePlotItemActionPerformed(evt); } }); fileMenu.add(savePlotItem); saveAllItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); saveAllItem.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/document-save-all.png"))); // NOI18N saveAllItem.setText(bundle.getString("saveAllMenuItem.text")); // NOI18N saveAllItem.setToolTipText(bundle.getString("saveAllMenuItem.tooltip")); // NOI18N saveAllItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveAllItemActionPerformed(evt); } }); fileMenu.add(saveAllItem); fileMenu.add(jSeparator1); printFileItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK)); printFileItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/document-print2.png"))); // NOI18N printFileItem.setText("Print"); printFileItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { printFileItemActionPerformed(evt); } }); fileMenu.add(printFileItem); printItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); printItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("printItem.mnemonic").charAt(0)); printItem.setText(bundle.getString("printItem.name")); // NOI18N printItem.setToolTipText(bundle.getString("printItem.tooltip")); // NOI18N printItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { printItemActionPerformed(evt); } }); fileMenu.add(printItem); fileMenu.add(jSeparator19); preferencesItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/preferences.png"))); // NOI18N preferencesItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("preferecesItem.mnemonic").charAt(0)); preferencesItem.setText(bundle.getString("preferencesItem.name")); // NOI18N preferencesItem.setToolTipText(bundle.getString("preferencesItem.tooltip")); // NOI18N preferencesItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { preferencesItemActionPerformed(evt); } }); fileMenu.add(preferencesItem); fileMenu.add(jSeparator2); connectItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/connect.png"))); // NOI18N connectItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("connectItem.mnemonic").charAt(0)); connectItem.setText(bundle.getString("connectItem.name")); // NOI18N connectItem.setToolTipText(bundle.getString("connectItem.tooltip")); // NOI18N connectItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { connectItemActionPerformed(evt); } }); fileMenu.add(connectItem); disconnectItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/disconnect.png"))); // NOI18N disconnectItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("disconnectItem.mnemonic").charAt(0)); disconnectItem.setText(bundle.getString("disconnectItem.name")); // NOI18N disconnectItem.setToolTipText(bundle.getString("disconnectItem.tooltip")); // NOI18N disconnectItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { disconnectItemActionPerformed(evt); } }); fileMenu.add(disconnectItem); fileMenu.add(jSeparator3); exitItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("exitItem.mnemonic").charAt(0)); exitItem.setText(bundle.getString("exitItem.name")); // NOI18N exitItem.setToolTipText(bundle.getString("exitItem.tooltip")); // NOI18N exitItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exitItemActionPerformed(evt); } }); fileMenu.add(exitItem); jMenuBar1.add(fileMenu); editMenu.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("editMenu.mnemonic").charAt(0)); editMenu.setText("Edit"); undoItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, java.awt.event.InputEvent.CTRL_MASK)); undoItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-undo.png"))); // NOI18N undoItem.setText("Undo"); undoItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { undoItemActionPerformed(evt); } }); editMenu.add(undoItem); redoItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Y, java.awt.event.InputEvent.CTRL_MASK)); redoItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-redo.png"))); // NOI18N redoItem.setText("Redo"); redoItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { redoItemActionPerformed(evt); } }); editMenu.add(redoItem); editMenu.add(jSeparator20); cutItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK)); cutItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-cut.png"))); // NOI18N cutItem.setText("Cut"); cutItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cutItemActionPerformed(evt); } }); editMenu.add(cutItem); copyItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK)); copyItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-copy.png"))); // NOI18N copyItem.setText("Copy"); copyItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { copyItemActionPerformed(evt); } }); editMenu.add(copyItem); pasteItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK)); pasteItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-paste.png"))); // NOI18N pasteItem.setText("Paste"); pasteItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pasteItemActionPerformed(evt); } }); editMenu.add(pasteItem); editMenu.add(jSeparator21); deleteItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-delete.png"))); // NOI18N deleteItem.setText("Delete"); deleteItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteItemActionPerformed(evt); } }); editMenu.add(deleteItem); selectAllItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK)); selectAllItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-select-all.png"))); // NOI18N selectAllItem.setText("Select All"); selectAllItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { selectAllItemActionPerformed(evt); } }); editMenu.add(selectAllItem); editMenu.add(jSeparator22); jMenuItem2.setAction(new RSyntaxTextAreaEditorKit.InsertTabAction()); jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_TAB, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem2.setText("Increase Indent"); editMenu.add(jMenuItem2); jMenuItem3.setAction(new RSyntaxTextAreaEditorKit.DecreaseIndentAction()); jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_TAB, java.awt.event.InputEvent.SHIFT_MASK)); jMenuItem3.setText("Decrease Indent"); editMenu.add(jMenuItem3); editMenu.add(jSeparator23); jMenuItem4.setAction(new RTextAreaEditorKit.UpperSelectionCaseAction()); jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem4.setText("Make Uppercase"); editMenu.add(jMenuItem4); jMenuItem5.setAction(new RTextAreaEditorKit.LowerSelectionCaseAction()); jMenuItem5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); jMenuItem5.setText("Make Lowercase"); editMenu.add(jMenuItem5); editMenu.add(jSeparator24); jMenuItem6.setText("Clear All Marks..."); jMenuItem6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem6ActionPerformed(evt); } }); editMenu.add(jMenuItem6); jMenuItem1.setAction(new RSyntaxTextAreaEditorKit.ToggleCommentAction()); jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_SLASH, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem1.setText("Toggle Comment"); jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem1ActionPerformed(evt); } }); editMenu.add(jMenuItem1); editMenu.add(jSeparator11); clearOutWindowItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK)); clearOutWindowItem .setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("clearOutputWindowItem.mnemonic").charAt(0)); clearOutWindowItem.setText(bundle.getString("clearOutputWindowItem.name")); // NOI18N clearOutWindowItem.setToolTipText(bundle.getString("clearOutputWindowItem.tooltip")); // NOI18N clearOutWindowItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clearOutWindowItemActionPerformed(evt); } }); editMenu.add(clearOutWindowItem); jMenuBar1.add(editMenu); jMenu3.setText(bundle.getString("viewMenu.title")); // NOI18N consoleItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_0, java.awt.event.InputEvent.CTRL_MASK)); consoleItem.setText(bundle.getString("consoleItem.title")); // NOI18N consoleItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { consoleItemActionPerformed(evt); } }); jMenu3.add(consoleItem); historyItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_1, java.awt.event.InputEvent.CTRL_MASK)); historyItem.setText(bundle.getString("historyItem.title")); // NOI18N historyItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { historyItemActionPerformed(evt); } }); jMenu3.add(historyItem); filesItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_2, java.awt.event.InputEvent.CTRL_MASK)); filesItem.setText(bundle.getString("filesItem.title")); // NOI18N filesItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { filesItemActionPerformed(evt); } }); jMenu3.add(filesItem); workspaceItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_3, java.awt.event.InputEvent.CTRL_MASK)); workspaceItem.setText(bundle.getString("worksaceItem.title")); // NOI18N workspaceItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { workspaceItemActionPerformed(evt); } }); jMenu3.add(workspaceItem); codeEditorItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_4, java.awt.event.InputEvent.CTRL_MASK)); codeEditorItem.setText(bundle.getString("codeEditorItem.title")); // NOI18N codeEditorItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { codeEditorItemActionPerformed(evt); } }); jMenu3.add(codeEditorItem); pathsItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_5, java.awt.event.InputEvent.CTRL_MASK)); pathsItem.setText(bundle.getString("setPathsItem.title")); // NOI18N pathsItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pathsItemActionPerformed(evt); } }); jMenu3.add(pathsItem); pkgsItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_6, java.awt.event.InputEvent.CTRL_MASK)); pkgsItem.setText(bundle.getString("pkgsItem.title")); // NOI18N pkgsItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pkgsItemActionPerformed(evt); } }); jMenu3.add(pkgsItem); arrayEditItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_7, java.awt.event.InputEvent.CTRL_MASK)); arrayEditItem.setText(bundle.getString("arrayEidtorItem.title")); // NOI18N arrayEditItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { arrayEditItemActionPerformed(evt); } }); jMenu3.add(arrayEditItem); jMenuItem7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_8, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem7.setText("Debugger Window"); jMenuItem7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem7ActionPerformed(evt); } }); jMenu3.add(jMenuItem7); jMenuBar1.add(jMenu3); jMenu1.setMnemonic('S'); jMenu1.setText("Search"); findItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_MASK)); findItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/edit-find.png"))); // NOI18N findItem.setMnemonic('F'); findItem.setText("Find..."); findItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { findItemActionPerformed(evt); } }); jMenu1.add(findItem); replaceItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.CTRL_MASK)); replaceItem.setIcon(new javax.swing.ImageIcon( getClass().getResource("/org/domainmath/gui/icons/edit-find-replace.png"))); // NOI18N replaceItem.setText("Replace..."); replaceItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { replaceItemActionPerformed(evt); } }); jMenu1.add(replaceItem); gotoItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); gotoItem.setText("Go To..."); gotoItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { gotoItemActionPerformed(evt); } }); jMenu1.add(gotoItem); jMenu1.add(jSeparator25); googleItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.CTRL_MASK)); googleItem.setText("Google Search"); googleItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { googleItemActionPerformed(evt); } }); jMenu1.add(googleItem); wikiItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); wikiItem.setText("Wikipedia Search"); wikiItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { wikiItemActionPerformed(evt); } }); jMenu1.add(wikiItem); jMenuBar1.add(jMenu1); pkgMenu.setText(bundle.getString("pkgMenu.name")); // NOI18N jMenuBar1.add(pkgMenu); debugMenu.setText("Debug"); runScriptItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F6, 0)); runScriptItem .setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/Run.png"))); // NOI18N runScriptItem.setText("Run Script"); runScriptItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { runScriptItemActionPerformed(evt); } }); debugMenu.add(runScriptItem); runScriptCItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F6, java.awt.event.InputEvent.SHIFT_MASK)); runScriptCItem.setText("Run Script from Console"); runScriptCItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { runScriptCItemActionPerformed(evt); } }); debugMenu.add(runScriptCItem); jMenuItem8.setText("Edit Run Configuration"); jMenuItem8.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem8ActionPerformed(evt); } }); debugMenu.add(jMenuItem8); debugMenu.add(jSeparator8); debugScriptMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, java.awt.event.InputEvent.CTRL_MASK)); debugScriptMenuItem.setText("Debug Script"); debugScriptMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { debugScriptMenuItemActionPerformed(evt); } }); debugMenu.add(debugScriptMenuItem); testScriptMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); testScriptMenuItem.setText("Test Script"); testScriptMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { testScriptMenuItemActionPerformed(evt); } }); debugMenu.add(testScriptMenuItem); toggleBreakpointItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F9, 0)); toggleBreakpointItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/resources/stop.png"))); // NOI18N toggleBreakpointItem.setText("Toggle Breakpoint"); toggleBreakpointItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { toggleBreakpointItemActionPerformed(evt); } }); debugMenu.add(toggleBreakpointItem); removeToggleBreakpointItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F9, java.awt.event.InputEvent.SHIFT_MASK)); removeToggleBreakpointItem.setText("Remove Toggle Breakpoint"); removeToggleBreakpointItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { removeToggleBreakpointItemActionPerformed(evt); } }); debugMenu.add(removeToggleBreakpointItem); clearAllBreakpointsItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F9, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); clearAllBreakpointsItem.setText("Clear All Breakpoints..."); clearAllBreakpointsItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { clearAllBreakpointsItemActionPerformed(evt); } }); debugMenu.add(clearAllBreakpointsItem); debugMenu.add(jSeparator10); stepItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F10, java.awt.event.InputEvent.SHIFT_MASK)); stepItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/step.png"))); // NOI18N stepItem.setText("Step"); stepItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { stepItemActionPerformed(evt); } }); debugMenu.add(stepItem); stepInItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F11, 0)); stepInItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/step-in.png"))); // NOI18N stepInItem.setText("Step in"); stepInItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { stepInItemActionPerformed(evt); } }); debugMenu.add(stepInItem); stepOutItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F11, java.awt.event.InputEvent.SHIFT_MASK)); stepOutItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/step-out.png"))); // NOI18N stepOutItem.setText("Step out"); stepOutItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { stepOutItemActionPerformed(evt); } }); debugMenu.add(stepOutItem); continueItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F8, 0)); continueItem.setText("Continue"); continueItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { continueItemActionPerformed(evt); } }); debugMenu.add(continueItem); debugMenu.add(jSeparator5); finishDebugItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, java.awt.event.InputEvent.SHIFT_MASK)); finishDebugItem .setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/finish.png"))); // NOI18N finishDebugItem.setText("Finish Debugger Session"); finishDebugItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { finishDebugItemActionPerformed(evt); } }); debugMenu.add(finishDebugItem); jMenuBar1.add(debugMenu); toolsMenu.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("ToolsMenu.mnemonic").charAt(0)); toolsMenu.setText(bundle.getString("ToolsMenu.name")); // NOI18N fltkplotItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); fltkplotItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("fltkPlotItem.mnemonic").charAt(0)); fltkplotItem.setText(bundle.getString("fltkPlotItem.name")); // NOI18N fltkplotItem.setToolTipText(bundle.getString("fltkPlotItem.tooltip")); // NOI18N fltkplotItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fltkplotItemActionPerformed(evt); } }); toolsMenu.add(fltkplotItem); octaveCmdItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("octaveCmdItem.mnemonic").charAt(0)); octaveCmdItem.setText(bundle.getString("octaveCmdItem.name")); // NOI18N octaveCmdItem.setToolTipText(bundle.getString("octaveCmdItem.tooltip")); // NOI18N octaveCmdItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { octaveCmdItemActionPerformed(evt); } }); toolsMenu.add(octaveCmdItem); jMenuBar1.add(toolsMenu); jMenu2.setText(bundle.getString("windowMenu.title")); // NOI18N previousWindowItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.InputEvent.CTRL_MASK)); previousWindowItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/go-previous.png"))); // NOI18N previousWindowItem.setText(bundle.getString("previousWindowItem.title")); // NOI18N previousWindowItem.setToolTipText(bundle.getString("previousWindowItem.tooltip")); // NOI18N previousWindowItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { previousWindowItemActionPerformed(evt); } }); jMenu2.add(previousWindowItem); nextWindowItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.InputEvent.CTRL_MASK)); nextWindowItem.setIcon( new javax.swing.ImageIcon(getClass().getResource("/org/domainmath/gui/icons/go-next.png"))); // NOI18N nextWindowItem.setText(bundle.getString("nextWindowItem.title")); // NOI18N nextWindowItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { nextWindowItemActionPerformed(evt); } }); jMenu2.add(nextWindowItem); jMenu2.add(jSeparator29); closeItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.ALT_MASK)); closeItem.setText(bundle.getString("closeMenuItem.name")); // NOI18N closeItem.setToolTipText(bundle.getString("closeItem.tooltip")); // NOI18N closeItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { closeItemActionPerformed(evt); } }); jMenu2.add(closeItem); closeAllItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.SHIFT_MASK)); closeAllItem.setText(bundle.getString("closeAllItem.name")); // NOI18N closeAllItem.setToolTipText(bundle.getString("closeAllItem.tooltip")); // NOI18N closeAllItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { closeAllItemActionPerformed(evt); } }); jMenu2.add(closeAllItem); jMenu2.add(jSeparator18); windowsItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F4, java.awt.event.InputEvent.SHIFT_MASK)); windowsItem.setText(bundle.getString("windowsItem.title")); // NOI18N windowsItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { windowsItemActionPerformed(evt); } }); jMenu2.add(windowsItem); jMenuBar1.add(jMenu2); helpMenu.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("helpMenu.mnemonic").charAt(0)); helpMenu.setText(bundle.getString("helpMenu.name")); // NOI18N forumItem.setText("Forum"); forumItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { forumItemActionPerformed(evt); } }); helpMenu.add(forumItem); octaveInfoItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("octInfoItem.mnemonic").charAt(0)); octaveInfoItem.setText(bundle.getString("octInfoItem.name")); // NOI18N octaveInfoItem.setToolTipText(bundle.getString("octInfoItem.tooltip")); // NOI18N octaveInfoItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { octaveInfoItemActionPerformed(evt); } }); helpMenu.add(octaveInfoItem); helpMenu.add(jSeparator12); quickHelpItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0)); quickHelpItem.setText(bundle.getString("quickHelpItem.name")); // NOI18N quickHelpItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { quickHelpItemActionPerformed(evt); } }); helpMenu.add(quickHelpItem); jMenuItem9.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, java.awt.event.InputEvent.SHIFT_MASK)); jMenuItem9.setText("Package Documentation"); jMenuItem9.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem9ActionPerformed(evt); } }); helpMenu.add(jMenuItem9); docPkgItem.setText("Package Online Documentation"); docPkgItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { docPkgItemActionPerformed(evt); } }); helpMenu.add(docPkgItem); referenceMenu.setText(bundle.getString("referencesMenu.name")); // NOI18N helpMenu.add(referenceMenu); referenceItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("addReferencesItem.mnemonic").charAt(0)); referenceItem.setText(bundle.getString("addReferencesItem.name")); // NOI18N referenceItem.setToolTipText(bundle.getString("addReferencesItem.tooltip")); // NOI18N referenceItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { referenceItemActionPerformed(evt); } }); helpMenu.add(referenceItem); helpMenu.add(jSeparator6); checkForUpdatesMenuItem.setText(bundle.getString("checkForUpdatesMenuItem.text")); // NOI18N checkForUpdatesMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { checkForUpdatesMenuItemActionPerformed(evt); } }); helpMenu.add(checkForUpdatesMenuItem); onlineHelpItem.setText("Help and Support"); onlineHelpItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { onlineHelpItemActionPerformed(evt); } }); helpMenu.add(onlineHelpItem); faqItem.setText("Online FAQ"); faqItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { faqItemActionPerformed(evt); } }); helpMenu.add(faqItem); helpMenu.add(jSeparator14); reportBugItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("reportBugItem.mnemonic").charAt(0)); reportBugItem.setText(bundle.getString("reportBugItem.name")); // NOI18N reportBugItem.setToolTipText(bundle.getString("reportBugItem.tooltip")); // NOI18N reportBugItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { reportBugItemActionPerformed(evt); } }); helpMenu.add(reportBugItem); feedBackItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("yourFeedbackItem.mnemonic").charAt(0)); feedBackItem.setText(bundle.getString("yourFeedbackItem.name")); // NOI18N feedBackItem.setToolTipText(bundle.getString("yourFeedbackItem.tooltip")); // NOI18N feedBackItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { feedBackItemActionPerformed(evt); } }); helpMenu.add(feedBackItem); helpMenu.add(jSeparator7); AboutItem.setMnemonic(java.util.ResourceBundle.getBundle("org/domainmath/gui/resources/DomainMath_en") .getString("aboutItem.mnemonic").charAt(0)); AboutItem.setText(bundle.getString("aboutItem.name")); // NOI18N AboutItem.setToolTipText(bundle.getString("aboutItem.tooltip")); // NOI18N AboutItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AboutItemActionPerformed(evt); } }); helpMenu.add(AboutItem); jMenuBar1.add(helpMenu); setJMenuBar(jMenuBar1); pack(); }
From source file:com.virtusa.isq.rft.runtime.RFTCommandBase.java
/** * Get the selected text in webpage to the clipboard and compare the value * with the given input./* w ww .ja v a 2s .c om*/ * * @param value * the value * @throws Exception * the exception */ private void fireEventVerifyValue(final String value) throws Exception { String clipBoardText = ""; Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_C); robot.keyRelease(KeyEvent.VK_C); robot.keyRelease(KeyEvent.VK_CONTROL); Utils.pause(retryInterval); Transferable trans = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); try { if (trans != null) { clipBoardText = (String) trans.getTransferData(DataFlavor.stringFlavor); } } catch (Exception e) { e.printStackTrace(); } if (clipBoardText.equals(value)) { reportResults(ReportLogger.ReportLevel.SUCCESS, "Fire Event", "Success", "Verify value passed. Value : " + value); } else { reportResults(true, ReportLogger.ReportLevel.FAILURE, "Fire Event", "Error", "Verify value match expected. ::: " + "Expected value : " + value + " Actual value : " + clipBoardText); } }
From source file:org.forester.archaeopteryx.TreePanel.java
final private void keyPressedCalls(final KeyEvent e) { if (isOvOn() && (getMousePosition() != null) && (getMousePosition().getLocation() != null)) { if (inOvVirtualRectangle(getMousePosition().x, getMousePosition().y)) { if (!isInOvRect()) { setInOvRect(true);/*from w ww . jav a 2 s .c o m*/ } } else if (isInOvRect()) { setInOvRect(false); } } if (e.getModifiersEx() == InputEvent.CTRL_DOWN_MASK) { if ((e.getKeyCode() == KeyEvent.VK_DELETE) || (e.getKeyCode() == KeyEvent.VK_HOME) || (e.getKeyCode() == KeyEvent.VK_F)) { getMainPanel().getTreeFontSet().mediumFonts(); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(true); } else if ((e.getKeyCode() == KeyEvent.VK_SUBTRACT) || (e.getKeyCode() == KeyEvent.VK_MINUS)) { getMainPanel().getTreeFontSet().decreaseFontSize(); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(true); } else if (plusPressed(e.getKeyCode())) { getMainPanel().getTreeFontSet().increaseFontSize(); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(true); } } else { if ((e.getKeyCode() == KeyEvent.VK_DELETE) || (e.getKeyCode() == KeyEvent.VK_HOME) || (e.getKeyCode() == KeyEvent.VK_F)) { getControlPanel().showWhole(); } else if ((e.getKeyCode() == KeyEvent.VK_UP) || (e.getKeyCode() == KeyEvent.VK_DOWN) || (e.getKeyCode() == KeyEvent.VK_LEFT) || (e.getKeyCode() == KeyEvent.VK_RIGHT)) { if (e.getModifiersEx() == InputEvent.SHIFT_DOWN_MASK) { if (e.getKeyCode() == KeyEvent.VK_UP) { getMainPanel().getControlPanel().zoomInY(Constants.WHEEL_ZOOM_IN_FACTOR); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(false); } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { getMainPanel().getControlPanel().zoomOutY(Constants.WHEEL_ZOOM_OUT_FACTOR); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(false); } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { getMainPanel().getControlPanel().zoomOutX(Constants.WHEEL_ZOOM_OUT_FACTOR, Constants.WHEEL_ZOOM_OUT_X_CORRECTION_FACTOR); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(false); } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { getMainPanel().getControlPanel().zoomInX(Constants.WHEEL_ZOOM_IN_FACTOR, Constants.WHEEL_ZOOM_IN_FACTOR); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(false); } } else { final int d = 80; int dx = 0; int dy = -d; if (e.getKeyCode() == KeyEvent.VK_DOWN) { dy = d; } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { dx = -d; dy = 0; } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { dx = d; dy = 0; } final Point scroll_position = getMainPanel().getCurrentScrollPane().getViewport() .getViewPosition(); scroll_position.x = scroll_position.x + dx; scroll_position.y = scroll_position.y + dy; if (scroll_position.x <= 0) { scroll_position.x = 0; } else { final int max_x = getMainPanel().getCurrentScrollPane().getHorizontalScrollBar() .getMaximum() - getMainPanel().getCurrentScrollPane().getHorizontalScrollBar().getVisibleAmount(); if (scroll_position.x >= max_x) { scroll_position.x = max_x; } } if (scroll_position.y <= 0) { scroll_position.y = 0; } else { final int max_y = getMainPanel().getCurrentScrollPane().getVerticalScrollBar().getMaximum() - getMainPanel().getCurrentScrollPane().getVerticalScrollBar().getVisibleAmount(); if (scroll_position.y >= max_y) { scroll_position.y = max_y; } } repaint(); getMainPanel().getCurrentScrollPane().getViewport().setViewPosition(scroll_position); } } else if ((e.getKeyCode() == KeyEvent.VK_SUBTRACT) || (e.getKeyCode() == KeyEvent.VK_MINUS)) { getMainPanel().getControlPanel().zoomOutY(Constants.WHEEL_ZOOM_OUT_FACTOR); getMainPanel().getControlPanel().zoomOutX(Constants.WHEEL_ZOOM_OUT_FACTOR, Constants.WHEEL_ZOOM_OUT_X_CORRECTION_FACTOR); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(false); } else if (plusPressed(e.getKeyCode())) { getMainPanel().getControlPanel().zoomInX(Constants.WHEEL_ZOOM_IN_FACTOR, Constants.WHEEL_ZOOM_IN_FACTOR); getMainPanel().getControlPanel().zoomInY(Constants.WHEEL_ZOOM_IN_FACTOR); getMainPanel().getControlPanel().displayedPhylogenyMightHaveChanged(false); } else if (e.getKeyCode() == KeyEvent.VK_S) { if ((getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED) || (getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR)) { setStartingAngle((getStartingAngle() % TWO_PI) + ANGLE_ROTATION_UNIT); getControlPanel().displayedPhylogenyMightHaveChanged(false); } } else if (e.getKeyCode() == KeyEvent.VK_A) { if ((getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED) || (getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR)) { setStartingAngle((getStartingAngle() % TWO_PI) - ANGLE_ROTATION_UNIT); if (getStartingAngle() < 0) { setStartingAngle(TWO_PI + getStartingAngle()); } getControlPanel().displayedPhylogenyMightHaveChanged(false); } } else if (e.getKeyCode() == KeyEvent.VK_D) { boolean selected = false; if (getOptions().getNodeLabelDirection() == NODE_LABEL_DIRECTION.HORIZONTAL) { getOptions().setNodeLabelDirection(NODE_LABEL_DIRECTION.RADIAL); selected = true; } else { getOptions().setNodeLabelDirection(NODE_LABEL_DIRECTION.HORIZONTAL); } if (getMainPanel().getMainFrame() == null) { // Must be "E" applet version. final ArchaeopteryxE ae = (ArchaeopteryxE) ((MainPanelApplets) getMainPanel()).getApplet(); if (ae.getlabelDirectionCbmi() != null) { ae.getlabelDirectionCbmi().setSelected(selected); } } else { getMainPanel().getMainFrame().getlabelDirectionCbmi().setSelected(selected); } repaint(); } else if (e.getKeyCode() == KeyEvent.VK_X) { switchDisplaygetPhylogenyGraphicsType(); repaint(); } else if (e.getKeyCode() == KeyEvent.VK_C) { cycleColors(); repaint(); } else if (getOptions().isShowOverview() && isOvOn() && (e.getKeyCode() == KeyEvent.VK_O)) { MainFrame.cycleOverview(getOptions(), this); repaint(); } else if (getOptions().isShowOverview() && isOvOn() && (e.getKeyCode() == KeyEvent.VK_I)) { increaseOvSize(); } else if (getOptions().isShowOverview() && isOvOn() && (e.getKeyCode() == KeyEvent.VK_U)) { decreaseOvSize(); } e.consume(); } }
From source file:savant.view.swing.Savant.java
private void initMenu() { loadGenomeItem.setAccelerator(// w w w.j a v a2 s . co m javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, MiscUtils.MENU_MASK)); loadFromFileItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, MiscUtils.MENU_MASK)); loadFromURLItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, MiscUtils.MENU_MASK)); loadFromDataSourcePluginItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, MiscUtils.MENU_MASK)); openProjectItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, MiscUtils.MENU_MASK)); saveProjectItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, MiscUtils.MENU_MASK)); saveProjectAsItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, MiscUtils.MENU_MASK | java.awt.event.InputEvent.SHIFT_MASK)); formatItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, MiscUtils.MENU_MASK)); exitItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, MiscUtils.MENU_MASK)); undoItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, MiscUtils.MENU_MASK)); redoItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Y, MiscUtils.MENU_MASK)); bookmarkItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, MiscUtils.MENU_MASK)); navigationItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_MASK | MiscUtils.MENU_MASK)); panLeftItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_LEFT, java.awt.event.InputEvent.SHIFT_MASK)); panRightItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_RIGHT, java.awt.event.InputEvent.SHIFT_MASK)); zoomInItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_UP, java.awt.event.InputEvent.SHIFT_MASK)); zoomOutItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_DOWN, java.awt.event.InputEvent.SHIFT_MASK)); toStartItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_HOME, java.awt.event.InputEvent.SHIFT_MASK)); toEndItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_END, java.awt.event.InputEvent.SHIFT_MASK)); preferencesItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, MiscUtils.MENU_MASK)); crosshairItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_J, MiscUtils.MENU_MASK)); plumblineItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_K, MiscUtils.MENU_MASK)); spotlightItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, MiscUtils.MENU_MASK)); bookmarksItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, MiscUtils.MENU_MASK | java.awt.event.InputEvent.SHIFT_MASK)); genomeItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, MiscUtils.MENU_MASK | java.awt.event.InputEvent.SHIFT_MASK)); rulerItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, MiscUtils.MENU_MASK | java.awt.event.InputEvent.SHIFT_MASK)); statusBarItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, MiscUtils.MENU_MASK | java.awt.event.InputEvent.SHIFT_MASK)); pluginToolbarItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, MiscUtils.MENU_MASK | java.awt.event.InputEvent.SHIFT_MASK)); exportItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, MiscUtils.MENU_MASK)); if (!Desktop.isDesktopSupported() || !Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { tutorialsItem.setEnabled(false); userManualItem.setEnabled(false); websiteItem.setEnabled(false); } initBrowseMenu(); try { RecentTracksController.getInstance().populateMenu(recentTrackMenu); RecentProjectsController.getInstance().populateMenu(recentProjectMenu); } catch (IOException ex) { LOG.error("Unable to populate Recent Items menu.", ex); } }
From source file:edu.ku.brc.ui.UIRegistry.java
public JMenu createEditMenu() { JMenu menu = new JMenu(getResourceString("EDIT")); menu.setMnemonic(KeyEvent.VK_E); // Undo and redo are actions of our own creation. undoAction = (UndoAction) makeAction(UndoAction.class, this, "Undo", null, null, new Integer(KeyEvent.VK_Z), KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); register(UNDO, menu.add(undoAction)); actionMap.put(UNDO, undoAction);/*from w w w .j ava2s . c o m*/ redoAction = (RedoAction) makeAction(RedoAction.class, this, "Redo", null, null, new Integer(KeyEvent.VK_Y), KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); register(REDO, menu.add(redoAction)); actionMap.put(REDO, redoAction); menu.addSeparator(); // These actions come from the default editor kit. Get the ones we want // and stick them in the menu. Action cutAction = makeAction(DefaultEditorKit.CutAction.class, null, "Cut", null, "Cut selection to clipboard", // I18N ???? new Integer(KeyEvent.VK_X), KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); register(CUT, menu.add(cutAction)); cutAction.setEnabled(false); actionMap.put(CUT, cutAction); Action copyAction = makeAction(DefaultEditorKit.CopyAction.class, null, "Copy", null, "Copy selection to clipboard", new Integer(KeyEvent.VK_C), KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); register(COPY, menu.add(copyAction)); copyAction.setEnabled(false); actionMap.put(COPY, copyAction); Action pasteAction = makeAction(DefaultEditorKit.PasteAction.class, null, "Paste", null, "Paste contents of clipboard", new Integer(KeyEvent.VK_V), KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); pasteAction.setEnabled(false); register(PASTE, menu.add(pasteAction)); actionMap.put(PASTE, pasteAction); /* menu.addSeparator(); Action selectAllAction = makeAction(SelectAllAction.class, this, "Select All", null, "Select all text", new Integer(KeyEvent.VK_A), KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); menu.add(selectAllAction); */ launchFindReplaceAction = (LaunchFindReplaceAction) makeAction(LaunchFindReplaceAction.class, this, "Find", null, null, new Integer(KeyEvent.VK_F), KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); //menu.add(launchFindReplaceAction); // launchFindReplaceAction.setEnabled(false); // register(FIND, menu.add(launchFindReplaceAction)); // actionMap.put(FIND, launchFindReplaceAction); launchFindReplaceAction.setEnabled(false); register(FIND, menu.add(launchFindReplaceAction)); actionMap.put(FIND, launchFindReplaceAction); return menu; }
From source file:com.monead.semantic.workbench.SemanticWorkbench.java
/** * Configures the SPARQL file menu. Called at startup * and whenever an SPARQL file is opened or saved since * the list of recent SPARQL files is presented on the * file menu./*from w w w. j a va 2 s.c om*/ */ private void setupSparqlFileMenu() { fileSparqlMenu.removeAll(); fileOpenSparqlFile = new JMenuItem("Open SPARQL File"); fileOpenSparqlFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.ALT_MASK)); fileOpenSparqlFile.setMnemonic(KeyEvent.VK_S); fileOpenSparqlFile.setToolTipText("Open a SPARQL query file"); fileOpenSparqlFile.addActionListener(new FileSparqlOpenListener()); fileSparqlMenu.add(fileOpenSparqlFile); fileSparqlMenu.addSeparator(); // Create menu options to open recently accessed SPARQL files fileOpenRecentSparqlFile = new JMenuItem[recentSparqlFiles.size()]; for (int recentFileNumber = 0; recentFileNumber < recentSparqlFiles.size(); ++recentFileNumber) { fileOpenRecentSparqlFile[recentFileNumber] = new JMenuItem( recentSparqlFiles.get(recentFileNumber).getName()); fileOpenRecentSparqlFile[recentFileNumber] .setToolTipText(recentSparqlFiles.get(recentFileNumber).getAbsolutePath()); fileOpenRecentSparqlFile[recentFileNumber].addActionListener(new RecentSparqlFileOpenListener()); fileSparqlMenu.add(fileOpenRecentSparqlFile[recentFileNumber]); } if (fileOpenRecentSparqlFile.length > 0) { fileSparqlMenu.addSeparator(); } fileSaveSparqlQueryToFile = new JMenuItem("Save SPARQL Query"); fileSaveSparqlQueryToFile .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.ALT_MASK | KeyEvent.CTRL_MASK)); fileSaveSparqlQueryToFile.setMnemonic(KeyEvent.VK_Q); fileSaveSparqlQueryToFile.setToolTipText("Write the SPARQL query to a file"); fileSaveSparqlQueryToFile.addActionListener(new FileSparqlSaveListener()); fileSparqlMenu.add(fileSaveSparqlQueryToFile); fileSaveSparqlResultsToFile = new JMenuItem("Save SPARQL Results"); fileSaveSparqlResultsToFile .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, KeyEvent.ALT_MASK | KeyEvent.CTRL_MASK)); fileSaveSparqlResultsToFile.setMnemonic(KeyEvent.VK_R); fileSaveSparqlResultsToFile.setToolTipText("Write the current SPARQL results to a file"); fileSaveSparqlResultsToFile.addActionListener(new FileSparqlResultsSaveListener()); fileSparqlMenu.add(fileSaveSparqlResultsToFile); fileSparqlMenu.addSeparator(); fileClearSparqlHistory = new JMenuItem("Clear SPARQL Query History"); fileClearSparqlHistory.setMnemonic(KeyEvent.VK_C); fileClearSparqlHistory.setToolTipText("Clear the history of executed SPARQL queries"); fileClearSparqlHistory.addActionListener(new FileClearSparqlHistoryListener()); fileSparqlMenu.add(fileClearSparqlHistory); }
From source file:com.monead.semantic.workbench.SemanticWorkbench.java
/** * Create the edit menu/* w w w. jav a 2 s. c o m*/ * * @return The edit menu */ private JMenu setupEditMenu() { final JMenu menu = new JMenu("Edit"); menu.setMnemonic(KeyEvent.VK_E); menu.setToolTipText("Menu items related to editing the ontology"); editFind = new JMenuItem("Find (in assertions)"); editFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_MASK)); editFind.setMnemonic(KeyEvent.VK_F); editFind.setToolTipText("Find text in the assertions editor"); editFind.addActionListener(new FindAssertionsTextListener()); menu.add(editFind); editFindNextMatch = new JMenuItem("Next (matching assertion text)"); editFindNextMatch.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)); editFindNextMatch.setMnemonic(KeyEvent.VK_N); editFindNextMatch.setToolTipText("Find next text match in the assertions editor"); editFindNextMatch.addActionListener(new FindNextAssertionsTextListener()); menu.add(editFindNextMatch); menu.addSeparator(); editCommentToggle = new JMenuItem("Toggle Comment"); editCommentToggle.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, KeyEvent.CTRL_MASK)); editCommentToggle.setMnemonic(KeyEvent.VK_T); editCommentToggle .setToolTipText("Switch the chosen assertion or query lines between commented and not commented"); editCommentToggle.addActionListener(new CommentToggleListener()); editCommentToggle.setEnabled(false); menu.add(editCommentToggle); editInsertPrefixes = new JMenuItem("Insert Prefixes"); editInsertPrefixes.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.CTRL_MASK)); editInsertPrefixes.setMnemonic(KeyEvent.VK_I); editInsertPrefixes.setToolTipText("Insert standard prefixes (namespaces)"); editInsertPrefixes.addActionListener(new InsertPrefixesListener()); menu.add(editInsertPrefixes); menu.addSeparator(); editExpandAllTreeNodes = new JMenuItem("Expand Entire Tree"); editExpandAllTreeNodes.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, ActionEvent.ALT_MASK)); editExpandAllTreeNodes.setMnemonic(KeyEvent.VK_E); editExpandAllTreeNodes.setToolTipText("Expand all tree nodes"); editExpandAllTreeNodes.addActionListener(new ExpandTreeListener()); menu.add(editExpandAllTreeNodes); editCollapseAllTreeNodes = new JMenuItem("Collapse Entire Tree"); editCollapseAllTreeNodes.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, ActionEvent.ALT_MASK)); editCollapseAllTreeNodes.setMnemonic(KeyEvent.VK_C); editCollapseAllTreeNodes.setToolTipText("Expand all tree nodes"); editCollapseAllTreeNodes.addActionListener(new CollapseTreeListener()); menu.add(editCollapseAllTreeNodes); menu.addSeparator(); editEditListOfSparqlServiceUrls = new JMenuItem("Edit SPARQL Service URLs List"); editEditListOfSparqlServiceUrls.setMnemonic(KeyEvent.VK_S); editEditListOfSparqlServiceUrls.setToolTipText("Remove unwanted URLs from the dropdown list"); editEditListOfSparqlServiceUrls.addActionListener(new EditListOfSparqlServiceUrls()); menu.add(editEditListOfSparqlServiceUrls); return menu; }
From source file:com.monead.semantic.workbench.SemanticWorkbench.java
/** * Create the configuration menu/* w ww.ja va 2 s. com*/ * * @return The configuration menu */ private JMenu setupConfigurationMenu() { final JMenu menu = new JMenu("Configure"); ButtonGroup buttonGroup; menu.setMnemonic(KeyEvent.VK_C); menu.setToolTipText("Menu items related to configuration"); buttonGroup = new ButtonGroup(); setupOutputAssertionLanguage = new JCheckBoxMenuItem[FORMATS.length + 1]; setupOutputAssertionLanguage[0] = new JCheckBoxMenuItem("Output Format: Auto"); buttonGroup.add(setupOutputAssertionLanguage[0]); menu.add(setupOutputAssertionLanguage[0]); for (int index = 0; index < FORMATS.length; ++index) { setupOutputAssertionLanguage[index + 1] = new JCheckBoxMenuItem("Output Format: " + FORMATS[index]); buttonGroup.add(setupOutputAssertionLanguage[index + 1]); menu.add(setupOutputAssertionLanguage[index + 1]); } setupOutputAssertionLanguage[0].setSelected(true); menu.addSeparator(); buttonGroup = new ButtonGroup(); setupOutputModelTypeAssertions = new JCheckBoxMenuItem("Output Assertions Only"); buttonGroup.add(setupOutputModelTypeAssertions); menu.add(setupOutputModelTypeAssertions); setupOutputModelTypeAssertionsAndInferences = new JCheckBoxMenuItem("Output Assertions and Inferences"); buttonGroup.add(setupOutputModelTypeAssertionsAndInferences); menu.add(setupOutputModelTypeAssertionsAndInferences); setupOutputModelTypeAssertions.setSelected(true); menu.addSeparator(); setupAllowMultilineResultOutput = new JCheckBoxMenuItem( "Allow Multiple Lines of Text Per Row in SPARQL Query Output"); setupAllowMultilineResultOutput.setToolTipText("Wrap long values into multiple lines in a display cell"); setupAllowMultilineResultOutput.setSelected(false); menu.add(setupAllowMultilineResultOutput); setupOutputFqnNamespaces = new JCheckBoxMenuItem("Show FQN Namespaces Instead of Prefixes in Query Output"); setupOutputFqnNamespaces .setToolTipText("Use the fully qualified namespace. If unchecked use the prefix, if defined"); setupOutputFqnNamespaces.setSelected(false); menu.add(setupOutputFqnNamespaces); setupOutputDatatypesForLiterals = new JCheckBoxMenuItem("Show Datatypes on Literals"); setupOutputDatatypesForLiterals.setToolTipText("Display the datatype after the value, e.g. 4^^xsd:integer"); setupOutputDatatypesForLiterals.setSelected(false); menu.add(setupOutputDatatypesForLiterals); setupOutputFlagLiteralValues = new JCheckBoxMenuItem("Flag Literal Values in Query Output"); setupOutputFlagLiteralValues.setToolTipText("Includes the text 'Lit:' in front of any literal values"); setupOutputFlagLiteralValues.setSelected(false); menu.add(setupOutputFlagLiteralValues); setupApplyFormattingToLiteralValues = new JCheckBoxMenuItem("Apply Formatting to Literal Values"); setupApplyFormattingToLiteralValues.setToolTipText( "Apply the XSD-based formatting defined in the configuration to literal values in SPARQL results and tree view display"); setupApplyFormattingToLiteralValues.setSelected(true); menu.add(setupApplyFormattingToLiteralValues); setupDisplayImagesInSparqlResults = new JCheckBoxMenuItem( "Display Images in Query Output (Slows Results Retrieval)"); setupDisplayImagesInSparqlResults.setToolTipText("Attempts to download images linked in the results. " + "Can run very slowly depending on number and size of images"); setupDisplayImagesInSparqlResults.setSelected(true); menu.add(setupDisplayImagesInSparqlResults); menu.addSeparator(); buttonGroup = new ButtonGroup(); setupExportSparqlResultsAsCsv = new JCheckBoxMenuItem( "Export SPARQL Results to " + EXPORT_FORMAT_LABEL_CSV); setupExportSparqlResultsAsCsv.setToolTipText("Export to Comma Separated Value format"); buttonGroup.add(setupExportSparqlResultsAsCsv); menu.add(setupExportSparqlResultsAsCsv); setupExportSparqlResultsAsTsv = new JCheckBoxMenuItem( "Export SPARQL Results to " + EXPORT_FORMAT_LABEL_TSV); setupExportSparqlResultsAsTsv.setToolTipText("Export to Tab Separated Value format"); buttonGroup.add(setupExportSparqlResultsAsTsv); menu.add(setupExportSparqlResultsAsTsv); menu.addSeparator(); setupSparqlResultsToFile = new JCheckBoxMenuItem("Send SPARQL Results Directly to File"); setupSparqlResultsToFile.setToolTipText( "For large results sets this permits writing to file without trying to render on screen"); menu.add(setupSparqlResultsToFile); menu.addSeparator(); setupEnableStrictMode = new JCheckBoxMenuItem("Enable Strict Checking Mode"); setupEnableStrictMode.setSelected(true); setupEnableStrictMode.addActionListener(new ReasonerConfigurationChange()); menu.add(setupEnableStrictMode); menu.addSeparator(); setupFont = new JMenuItem("Font"); setupFont.setMnemonic(KeyEvent.VK_F); setupFont.setToolTipText("Set the font used for the display"); setupFont.addActionListener(new FontSetupListener()); menu.add(setupFont); menu.addSeparator(); setupProxyEnabled = new JCheckBoxMenuItem("Enable Proxy"); setupProxyEnabled.setToolTipText("Pass network SPARQL requests through a proxy"); setupProxyEnabled.addActionListener(new ProxyStatusChangeListener()); menu.add(setupProxyEnabled); setupProxyConfiguration = new JMenuItem("Proxy Settings"); setupProxyConfiguration.setToolTipText("Configure the proxy"); setupProxyConfiguration.addActionListener(new ProxySetupListener()); menu.add(setupProxyConfiguration); return menu; }
From source file:com.monead.semantic.workbench.SemanticWorkbench.java
/** * Create the SPARQL server menu//from ww w.j a v a 2 s . c o m * * @return The SPARQL server menu */ private JMenu setupSparqlServerMenu() { final JMenu menu = new JMenu("SPARQL Server"); menu.setMnemonic(KeyEvent.VK_P); menu.setToolTipText("Options for using the SPARQL server"); sparqlServerStartup = new JMenuItem("Startup SPARQL Server"); sparqlServerStartup.setMnemonic(KeyEvent.VK_S); sparqlServerStartup.setToolTipText("Start the SPARQL server"); sparqlServerStartup.addActionListener(new SparqlServerStartupListener()); menu.add(sparqlServerStartup); sparqlServerShutdown = new JMenuItem("Shutdown SPARQL Server"); sparqlServerShutdown.setMnemonic(KeyEvent.VK_H); sparqlServerShutdown.setToolTipText("Stop the SPARQL server"); sparqlServerShutdown.addActionListener(new SparqlServerShutdownListener()); menu.add(sparqlServerShutdown); menu.addSeparator(); sparqlServerPublishCurrentModel = new JMenuItem("Publish Current Reasoned Model"); sparqlServerPublishCurrentModel.setMnemonic(KeyEvent.VK_P); sparqlServerPublishCurrentModel .setToolTipText("Set the model for the SPARQL server to the current one reasoned"); sparqlServerPublishCurrentModel.addActionListener(new SparqlServerPublishModelListener()); menu.add(sparqlServerPublishCurrentModel); menu.addSeparator(); sparqlServerConfig = new JMenuItem("Configure the SPARQL Server"); sparqlServerConfig.setMnemonic(KeyEvent.VK_C); sparqlServerConfig.setToolTipText("Configure the server endpoint"); sparqlServerConfig.addActionListener(new SparqlServerConfigurationListener()); menu.add(sparqlServerConfig); return menu; }
From source file:org.simmi.GeneSetHead.java
License:asdf
public void init(final Stage primaryStage, final Container comp, final SplitPane splitpane, final TableView<Gene> genetable, final TableView<Function> upper, final TableView<GeneGroup> lower, final MenuBar menubar, final ToolBar toolbar, final ToolBar btoolbar) { geneset.user = System.getProperty("user.name"); JavaFasta.user = geneset.user;// w w w . j a v a 2s . c o m this.splitpane = splitpane; this.primaryStage = primaryStage; table = lower; gtable = genetable; //SerifyApplet.user = user; /*try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); }*/ String userhome = System.getProperty("user.home"); boolean windows = false; try { InputStream isk = GeneSet.class.getClassLoader().getResourceAsStream("org/simmi/genesetkey"); //Path gkey = Paths.get( url.toURI() ); InputStream iskp = GeneSet.class.getClassLoader().getResourceAsStream("org/simmi/genesetkey.pub"); //Path gkeypub = Paths.get( url.toURI() ); Path gkeyssh = Paths.get(userhome); //Path gkeyssh = userpath.resolve(".ssh"); if (!Files.exists(gkeyssh)) Files.createDirectory(gkeyssh); Path gkeylocal = gkeyssh.resolve("org/simmi/genesetkey"); Path gkeylocalpub = gkeyssh.resolve("org/simmi/genesetkey.pub"); if (!Files.exists(gkeylocal) && isk != null) { Files.copy(isk, gkeylocal, StandardCopyOption.REPLACE_EXISTING); } if (!Files.exists(gkeylocalpub) && iskp != null) { Files.copy(iskp, gkeylocalpub); } Set<PosixFilePermission> poset = new HashSet<PosixFilePermission>(); poset.add(PosixFilePermission.OWNER_READ); poset.add(PosixFilePermission.OWNER_WRITE); if (Files.exists(gkeylocal)) Files.setPosixFilePermissions(gkeylocal, poset); if (Files.exists(gkeylocalpub)) Files.setPosixFilePermissions(gkeylocalpub, poset); } catch (IOException e1) { e1.printStackTrace(); } catch (UnsupportedOperationException e2) { windows = true; e2.printStackTrace(); } if (windows) { File f = new File(userhome + "\\genesetkey"); f.setExecutable(false, false); f.setWritable(false, false); f.setReadable(false, false); f.setWritable(true, true); f.setReadable(true, true); } this.comp = comp; selcomb = new ComboBox<>(); searchcolcomb = new ComboBox<>(); syncolorcomb = new ComboBox<>(); searchcolcomb.getItems().add("Name"); searchcolcomb.getItems().add("Symbol"); searchcolcomb.getSelectionModel().select(0); setColors(); JMenuBar jmenubar = new JMenuBar(); Menu file = new Menu("File"); MenuItem newitem = new MenuItem("New"); newitem.setOnAction(actionEvent -> newFile()); file.getItems().add(newitem); MenuItem openitem = new MenuItem("Open"); openitem.setOnAction(actionEvent -> { try { importStuff(); } catch (IOException e3) { e3.printStackTrace(); } catch (UnavailableServiceException e3) { e3.printStackTrace(); } }); file.getItems().add(openitem); file.getItems().add(new SeparatorMenuItem()); MenuItem importitem = new MenuItem("Import genomes"); importitem.setOnAction(actionEvent -> fetchGenomes()); file.getItems().add(importitem); MenuItem exportitem = new MenuItem("Export genomes"); exportitem.setOnAction(actionEvent -> exportGenomes(geneset.speccontigMap)); file.getItems().add(exportitem); file.getItems().add(new SeparatorMenuItem()); MenuItem exportproteinitem = new MenuItem("Export protein sequences"); exportproteinitem.setOnAction(actionEvent -> exportProteinSequences(geneset.genelist)); file.getItems().add(exportproteinitem); MenuItem exportgeneitem = new MenuItem("Export gene clusters"); exportgeneitem.setOnAction(actionEvent -> exportGeneClusters(geneset.allgenegroups)); file.getItems().add(exportgeneitem); file.getItems().add(new SeparatorMenuItem()); MenuItem quititem = new MenuItem("Quit"); quititem.setOnAction(actionEvent -> System.exit(0)); file.getItems().add(quititem); Menu edit = new Menu("Edit"); MenuItem clustergenes = new MenuItem("Cluster genes"); clustergenes.setOnAction(actionEvent -> { //fxpanel.setScene( null ); /*Platform.runLater(new Runnable() { @Override public void run() { Label label1 = new Label("Id:"); tb1 = new TextField("0.5"); Label label2 = new Label("Len:"); tb2 = new TextField("0.5"); VBox vbox = new VBox(); HBox hbox1 = new HBox(); hbox1.getChildren().addAll( label1, tb1 ); HBox hbox2 = new HBox(); hbox2.getChildren().addAll( label2, tb2 ); epar = new TextField(); vbox.getChildren().add( epar ); vbox.getChildren().addAll( hbox1, hbox2 ); if( fxs == null ) fxs = new Scene( vbox ); fxs.setRoot( vbox ); fxpanel.setScene( fxs ); } });*/ JPanel panel = new JPanel(); GridBagLayout grid = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); panel.setLayout(grid); /*JLabel label1 = new JLabel("Id:"); JTextField tb1 = new JTextField("0.5"); JLabel label2 = new JLabel("Len:"); JTextField tb2 = new JTextField("0.5"); Dimension d = new Dimension( 300, 30 ); JTextField epar = new JTextField(); epar.setSize( d ); epar.setPreferredSize( d ); c.fill = GridBagConstraints.HORIZONTAL; c.gridwidth = 1; c.gridheight = 1; c.gridx = 0; c.gridy = 0; panel.add( label1, c ); c.gridx = 1; c.gridy = 0; panel.add( tb1, c ); c.gridx = 0; c.gridy = 1; panel.add( label2, c ); c.gridx = 1; c.gridy = 1; panel.add( tb2, c ); c.gridx = 0; c.gridy = 2; c.gridwidth = 2; panel.add( epar, c ); JOptionPane.showMessageDialog(comp, new Object[] {panel}, "Clustering parameters", JOptionPane.PLAIN_MESSAGE );*/ /*if( tb1 != null ) { float id = Float.parseFloat( tb1.getText() ); float len = Float.parseFloat( tb2.getText() ); String expar = epar.getText(); tb1 = null; tb2 = null; epar = null;*/ Set<String> species = getSelspec(null, geneset.getSpecies(), null); geneset.clusterGenes(species, false); //} }); MenuItem alignclusters = new MenuItem("Align clusters"); alignclusters.setOnAction(actionEvent -> { try { String OS = System.getProperty("os.name").toLowerCase(); Map<String, String> env = new HashMap<String, String>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); //s.makeBlastCluster(zipfilesystem.getPath("/"), p, 1); Path aldir = geneset.zipfilesystem.getPath("aligned"); final Path aligneddir = Files.exists(aldir) ? aldir : Files.createDirectory(aldir); Runnable run = new Runnable() { @Override public void run() { try { geneset.zipfilesystem.close(); } catch (IOException e) { e.printStackTrace(); } } }; NativeRun nrun = new NativeRun(run); //ExecutorService es = Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors() ); Object[] cont = new Object[3]; Collection<GeneGroup> ggset; ObservableList<GeneGroup> ogg = table.getSelectionModel().getSelectedItems(); ggset = new HashSet<GeneGroup>(); if (ogg.size() == 0) { for (GeneGroup gg : geneset.allgenegroups) { //GeneGroup gg = allgenegroups.get(table.convertRowIndexToModel(r)); //gg.getCommonTag() if (gg != null && gg.getCommonTag() == null && gg.size() > 1) ggset.add(gg); } } else { for (GeneGroup gg : ogg) { //GeneGroup gg = geneset.allgenegroups.get(table.convertRowIndexToModel(r)); //gg.getCommonTag() if (gg != null && gg.getCommonTag() == null && gg.size() > 1) ggset.add(gg); } } //int i = 0; List commandsList = new ArrayList(); for (GeneGroup gg : ggset) { String fasta = gg.getFasta(true); String[] cmds = new String[] { OS.indexOf("mac") >= 0 ? "/usr/local/bin/mafft" : "/usr/bin/mafft", "-" }; Object[] paths = new Object[] { fasta.getBytes(), aligneddir.resolve(gg.getCommonId() + ".aa"), null }; commandsList.add(paths); commandsList.add(Arrays.asList(cmds)); //if( i++ > 5000 ) break; } nrun.runProcessBuilder("Running mafft", commandsList, cont, true, run, false); } catch (IOException e1) { if (geneset.zipfilesystem != null) { try { geneset.zipfilesystem.close(); } catch (IOException e2) { e2.printStackTrace(); } } e1.printStackTrace(); } }); MenuItem sharenumaction = new MenuItem("Update share numbers"); sharenumaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { Set<String> specs = getSelspec(GeneSetHead.this, geneset.specList, null); geneset.updateShareNum(specs); })); MenuItem importgeneclusteringaction = new MenuItem("Import gene clustering"); importgeneclusteringaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { JPanel panel = new JPanel(); GridBagLayout grid = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); panel.setLayout(grid); JLabel label1 = new JLabel("Id:"); JTextField tb11 = new JTextField("0.5"); JLabel label2 = new JLabel("Len:"); JTextField tb21 = new JTextField("0.5"); Dimension d = new Dimension(300, 30); JTextField epar1 = new JTextField(); epar1.setSize(d); epar1.setPreferredSize(d); c.fill = GridBagConstraints.HORIZONTAL; c.gridwidth = 1; c.gridheight = 1; c.gridx = 0; c.gridy = 0; panel.add(label1, c); c.gridx = 1; c.gridy = 0; panel.add(tb11, c); c.gridx = 0; c.gridy = 1; panel.add(label2, c); c.gridx = 1; c.gridy = 1; panel.add(tb21, c); c.gridx = 0; c.gridy = 2; c.gridwidth = 2; panel.add(epar1, c); JOptionPane.showMessageDialog(comp, new Object[] { panel }, "Clustering parameters", JOptionPane.PLAIN_MESSAGE); float id = Float.parseFloat(tb11.getText()); float len = Float.parseFloat(tb21.getText()); //JFileChooser fc = new JFileChooser(); //if( fc.showOpenDialog( GeneSetHead.this ) == JFileChooser.APPROVE_OPTION ) { Serifier s = new Serifier(); //s.mseq = aas; for (String gk : geneset.refmap.keySet()) { Gene g = geneset.refmap.get(gk); if (g.tegeval.getAlignedSequence() != null) System.err.println(g.tegeval.getAlignedSequence().getName()); s.mseq.put(gk, g.tegeval.getAlignedSequence()); } Map<String, String> idspec = new HashMap<String, String>(); for (String idstr : geneset.refmap.keySet()) { if (idstr.contains(" ")) { System.err.println("coooonnnnnni " + idstr); } Gene gene = geneset.refmap.get(idstr); idspec.put(idstr, gene.getSpecies()); } //Sequences seqs = new Sequences(user, name, type, path, nseq) try { Map<String, String> env = new HashMap<String, String>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path root = geneset.zipfilesystem.getPath("/"); Path p = geneset.zipfilesystem.getPath("cluster.blastout"); //root.resolve("culster.blastout"); List<Set<String>> cluster = geneset.uclusterlist == null ? new ArrayList<>() : new ArrayList<>(geneset.uclusterlist); s.makeBlastCluster(root, p, 1, id, len, idspec, cluster, geneset.refmap); System.err.println(cluster.get(0)); if (geneset.uclusterlist != null) System.err.println(geneset.uclusterlist.get(0)); geneset.zipfilesystem.close(); } catch (IOException e1) { if (geneset.zipfilesystem != null) { try { geneset.zipfilesystem.close(); } catch (IOException e2) { e2.printStackTrace(); } } e1.printStackTrace(); } })); MenuItem importgenesymbolaction = new MenuItem("Import gene symbols"); importgenesymbolaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { JFileChooser fc = new JFileChooser(); if (fc.showOpenDialog(GeneSetHead.this) == JFileChooser.APPROVE_OPTION) { try { Map<String, String> env = new HashMap<>(); env.put("create", "true"); //Path path = zipfile.toPath(); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path nf = geneset.zipfilesystem.getPath("/smap_short.txt"); BufferedWriter bw = Files.newBufferedWriter(nf, StandardOpenOption.CREATE); File f = fc.getSelectedFile(); InputStream is = new FileInputStream(f); if (f.getName().endsWith(".gz")) is = new GZIPInputStream(is); geneset.uni2symbol(new InputStreamReader(is), bw, geneset.unimap); bw.close(); //long bl = Files.copy( new ByteArrayInputStream( baos.toByteArray() ), nf, StandardCopyOption.REPLACE_EXISTING ); geneset.zipfilesystem.close(); } catch (IOException e1) { e1.printStackTrace(); } } })); MenuItem importcazyaction = new MenuItem("Import Cazy"); importcazyaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { JFileChooser fc = new JFileChooser(); if (fc.showOpenDialog(GeneSetHead.this) == JFileChooser.APPROVE_OPTION) { try { BufferedReader rd = Files.newBufferedReader(fc.getSelectedFile().toPath()); geneset.loadcazymap(geneset.cazymap, rd); } catch (IOException e1) { e1.printStackTrace(); } } })); MenuItem gene2refseqaction = new MenuItem("Gene 2 refseq"); gene2refseqaction.setOnAction(actionEvent -> { try { TextField tf = new TextField(); tf.setText("ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2refseq.gz"); Dialog<Path> dialog = new Dialog(); dialog.getDialogPane().setContent(tf); dialog.getDialogPane().getButtonTypes().add(ButtonType.OK); dialog.getDialogPane().getButtonTypes().add(ButtonType.CANCEL); dialog.setResultConverter(param -> param.getButtonData().isCancelButton() ? null : Paths.get(URI.create(tf.getText()))); Optional<Path> opath = dialog.showAndWait(); if (opath.isPresent()) { Map<String, String> env = new HashMap<>(); env.put("create", "true"); //Path path = zipfile.toPath(); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path path = opath.get(); InputStream is = path.toUri().toURL().openStream(); if (path.getFileName().toString().endsWith(".gz")) { is = new GZIPInputStream(is); } Path nf = geneset.zipfilesystem.getPath("/org/simmi/gene2refseq_short.txt"); BufferedWriter bw = Files.newBufferedWriter(nf, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE); geneset.idMapping(new InputStreamReader(is), bw, 5, 1, geneset.refmap, null, geneset.gimap); bw.close(); } } catch (Exception e) { e.printStackTrace(); } finally { try { geneset.zipfilesystem.close(); } catch (IOException e) { e.printStackTrace(); } } }); MenuItem functionmappingaction = new MenuItem("Function mapping"); functionmappingaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { final JTextField tf = new JTextField(); JButton btn = new JButton("File"); JComponent comp2 = new JComponent() { }; comp2.setLayout(new BorderLayout()); comp2.add(tf); comp2.add(btn, BorderLayout.EAST); tf.setText("http://130.208.252.239/data/sp2go.txt.gz"); final File[] file2 = new File[1]; btn.addActionListener(e -> { JFileChooser fc = new JFileChooser(); if (fc.showOpenDialog(GeneSetHead.this) == JFileChooser.APPROVE_OPTION) { file2[0] = fc.getSelectedFile(); try { tf.setText(fc.getSelectedFile().toURI().toURL().toString()); } catch (MalformedURLException e1) { e1.printStackTrace(); } } }); try { Map<String, String> env = new HashMap<>(); env.put("create", "true"); //Path path = zipfile.toPath(); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path nf = geneset.zipfilesystem.getPath("/org/simmi/sp2go_short.txt"); BufferedWriter bw = Files.newBufferedWriter(nf, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE); JOptionPane.showMessageDialog(GeneSetHead.this, comp2); final JDialog dialog = new JDialog(); dialog.setTitle("Function mapping"); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setSize(400, 300); comp2 = new JComponent() { }; comp2.setLayout(new BorderLayout()); final JTextArea ta = new JTextArea(); /*final InputStream fis; if( file[0] != null ) fis = new FileInputStream( file[0] ); else { JTextField host = new JTextField("localhost"); JOptionPane.showMessageDialog(null, host); String username = System.getProperty("user.name"); String hostname = host.getText(); List<String> commandsList = Arrays.asList( new String[] {"ssh",username+"@"+hostname,"cat",tf.getText()} ); ProcessBuilder pb = new ProcessBuilder( commandsList ); Process p = pb.start(); for( Object commands : commandsList ) { if( commands instanceof List ) { for( Object cmd : (List)commands ) { ta.append(cmd+" "); } ta.append("\n"); } else { ta.append(commands+" "); } } ta.append("\n"); fis = p.getInputStream(); }*/ final JProgressBar pbar = new JProgressBar(); final Thread t = new Thread() { public void run() { try { URL url = new URL(tf.getText()); InputStream fis = url.openStream(); BufferedReader br = new BufferedReader(new InputStreamReader(new GZIPInputStream(fis))); //if( unimap != null ) unimap.clear(); //unimap = idMapping(new InputStreamReader(is), bw, 2, 0, refmap, genmap, gimap); geneset.funcMappingUni(br, geneset.unimap, bw); fis.close(); bw.close(); try { geneset.zipfilesystem.close(); } catch (Exception e2) { e2.printStackTrace(); } ; pbar.setIndeterminate(false); pbar.setEnabled(false); } catch (IOException e) { e.printStackTrace(); } } }; ta.setEditable(false); final JScrollPane sp = new JScrollPane(ta); dialog.add(comp2); comp2.add(pbar, BorderLayout.NORTH); comp2.add(sp, BorderLayout.CENTER); pbar.setIndeterminate(true); t.start(); /*okokdialog.addWindowListener( new WindowListener() { @Override public void windowOpened(WindowEvent e) {} @Override public void windowIconified(WindowEvent e) {} @Override public void windowDeiconified(WindowEvent e) {} @Override public void windowDeactivated(WindowEvent e) {} @Override public void windowClosing(WindowEvent e) {} @Override public void windowClosed(WindowEvent e) { if( pbar.isEnabled() ) { pbar.setIndeterminate( false ); pbar.setEnabled( false ); } } @Override public void windowActivated(WindowEvent e) {} });*/ dialog.setVisible(true); //long bl = Files.copy( new ByteArrayInputStream( baos.toByteArray() ), nf, StandardCopyOption.REPLACE_EXISTING ); } catch (IOException e1) { e1.printStackTrace(); } })); MenuItem importidmappingaction = new MenuItem("Import idmapping"); importidmappingaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { final JTextField tf = new JTextField(); JButton btn = new JButton("File"); JComponent comp2 = new JComponent() { }; comp2.setLayout(new BorderLayout()); comp2.add(tf); comp2.add(btn, BorderLayout.EAST); tf.setText( "ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/idmapping/idmapping.dat.gz"); final File[] file2 = new File[1]; btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(); if (fc.showOpenDialog(GeneSetHead.this) == JFileChooser.APPROVE_OPTION) { file2[0] = fc.getSelectedFile(); try { tf.setText(fc.getSelectedFile().toURI().toURL().toString()); } catch (MalformedURLException e1) { e1.printStackTrace(); } } } }); JOptionPane.showMessageDialog(GeneSetHead.this, comp2); //Thread t = new Thread() { // public void run() { try { Map<String, String> env = new HashMap<String, String>(); env.put("create", "true"); //Path path = zipfile.toPath(); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path nf = geneset.zipfilesystem.getPath("/org/simmi/idmapping_short.dat"); final BufferedWriter bw = Files.newBufferedWriter(nf, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); final JDialog dialog = new JDialog(); dialog.setTitle("Id mapping"); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setSize(400, 300); comp2 = new JComponent() { }; comp2.setLayout(new BorderLayout()); final JTextArea ta = new JTextArea(); /*final InputStream fis; if( file[0] != null ) fis = new FileInputStream( file[0] ); else { /*Object[] cont = new Object[3]; Runnable run = new Runnable() { public void run() { try { bw.close(); geneset.zipfilesystem.close(); } catch (IOException e) { e.printStackTrace(); } } };* JTextField host = new JTextField("localhost"); JOptionPane.showMessageDialog(null, host); String username = System.getProperty("user.name"); String hostname = host.getText(); List<String> commandsList = Arrays.asList( new String[] {"ssh",username+"@"+hostname,"cat",tf.getText()} ); ProcessBuilder pb = new ProcessBuilder( commandsList ); Process p = pb.start(); for( Object commands : commandsList ) { if( commands instanceof List ) { for( Object cmd : (List)commands ) { ta.append(cmd+" "); } ta.append("\n"); } else { ta.append(commands+" "); } } ta.append("\n"); fis = p.getInputStream(); }*/ final JProgressBar pbar = new JProgressBar(); final Thread t = new Thread() { public void run() { try { URL url = new URL(tf.getText()); InputStream fis = url.openStream(); InputStream is = new GZIPInputStream(fis); if (geneset.unimap != null) geneset.unimap.clear(); geneset.unimap = geneset.idMapping(new InputStreamReader(is), bw, 2, 0, geneset.refmap, geneset.genmap, geneset.gimap); is.close(); fis.close(); bw.close(); try { geneset.zipfilesystem.close(); } catch (Exception ep) { ep.printStackTrace(); } ; pbar.setIndeterminate(false); pbar.setEnabled(false); } catch (IOException e) { e.printStackTrace(); } } }; ta.setEditable(false); final JScrollPane sp = new JScrollPane(ta); dialog.add(comp2); comp2.add(pbar, BorderLayout.NORTH); comp2.add(sp, BorderLayout.CENTER); pbar.setIndeterminate(true); t.start(); /*System.err.println( "about to run" ); for( Object commands : commandsList ) { if( commands instanceof List ) { for( Object c : (List)commands ) { System.err.print( c+" " ); } System.err.println(); } else { System.err.print( commands+" " ); } } System.err.println();*/ /*okokdialog.addWindowListener( new WindowListener() { @Override public void windowOpened(WindowEvent e) {} @Override public void windowIconified(WindowEvent e) {} @Override public void windowDeiconified(WindowEvent e) {} @Override public void windowDeactivated(WindowEvent e) {} @Override public void windowClosing(WindowEvent e) {} @Override public void windowClosed(WindowEvent e) { if( pbar.isEnabled() ) { /*String result = ta.getText().trim(); if( run != null ) { cont[0] = null; cont[1] = result; cont[2] = new Date( System.currentTimeMillis() ).toString(); run.run(); }* pbar.setIndeterminate( false ); pbar.setEnabled( false ); } } @Override public void windowActivated(WindowEvent e) {} });*/ dialog.setVisible(true); /*NativeRun nrun = new NativeRun(); nrun.runProcessBuilder("Idmapping", Arrays.asList( tf.getText().split(" ") ), run, cont, false); ProcessBuilder pb = new ProcessBuilder( tf.getText().split(" ") ); Process p = pb.start(); fis = p.getInputStream(); }*/ //long bl = Files.copy( new ByteArrayInputStream( baos.toByteArray() ), nf, StandardCopyOption.REPLACE_EXISTING ); } catch (IOException e1) { e1.printStackTrace(); try { geneset.zipfilesystem.close(); } catch (Exception e2) { e2.printStackTrace(); } ; } // } //}; //t.start(); //} })); MenuItem cogblastaction = new MenuItem("Cog blast"); cogblastaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { Set<String> species = getSelspec(null, geneset.getSpecies(), null); if (species != null && species.size() > 0) Platform.runLater(() -> cogBlastDlg(species)); })); MenuItem unresolvedblastaction = new MenuItem("Unresolved blast"); unresolvedblastaction.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { try { Set<String> species = getSelspec(null, geneset.getSpecies(), null); StringWriter sb = new StringWriter(); Path dbPath = Paths.get("/data/nr"); ObservableList<Gene> genes = gtable.getSelectionModel().getSelectedItems(); if (genes.size() > 0) { if (isGeneview()) { for (Gene g : gtable.getSelectionModel().getSelectedItems()) { //int i = table.convertRowIndexToModel(r); //Gene g = geneset.genelist.get(i); Sequence gs = g.tegeval.getProteinSequence(); gs.setName(g.id); gs.writeSequence(sb); } } else { for (GeneGroup gg : table.getSelectionModel().getSelectedItems()) { //int i = table.convertRowIndexToModel(r); //GeneGroup gg = geneset.allgenegroups.get(i); Gene g = null; for (Gene gene : gg.genes) { g = gene; break; } Sequence gs = g.tegeval.getProteinSequence(); gs.setName(g.id); gs.writeSequence(sb); } } } else { for (Gene g : geneset.genelist) { if (g.getTag() == null || g.getTag().equalsIgnoreCase("gene")) { if (species.contains(g.getSpecies())) { Sequence gs = g.tegeval.getProteinSequence(); gs.setName(g.id); gs.writeSequence(sb); /*sb.append(">" + g.id + "\n"); for (int i = 0; i < gs.length(); i += 70) { sb.append( gs.substring(i, Math.min( i + 70, gs.length() )) + "\n"); }*/ } } } } Map<String, String> env = new HashMap<>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path resPath = geneset.zipfilesystem.getPath("/unresolved.blastout"); NativeRun nrun = new NativeRun(); SerifyApplet.blastpRun(nrun, sb.getBuffer(), dbPath, resPath, "-evalue 0.00001", null, true, geneset.zipfilesystem, geneset.user, primaryStage); } catch (IOException e1) { e1.printStackTrace(); } })); MenuItem importbiosystemsaction = new MenuItem("Import biosystems"); importbiosystemsaction.setOnAction(actionEvent -> { Dialog<Map<String, Set<String>>> dialog = new Dialog(); TextField gene = new TextField(); TextField biosys = new TextField(); gene.setText("ftp://ftp.ncbi.nlm.nih.gov/pub/biosystems/biosystems.20160519/biosystems_gene_all.gz"); biosys.setText("ftp://ftp.ncbi.nlm.nih.gov/pub/biosystems/biosystems.20160519/bsid2info.gz"); VBox duo = new VBox(); duo.getChildren().add(gene); duo.getChildren().add(biosys); dialog.getDialogPane().setContent(duo); dialog.getDialogPane().getButtonTypes().add(ButtonType.OK); dialog.getDialogPane().getButtonTypes().add(ButtonType.CANCEL); dialog.setResultConverter(param -> { if (!param.getButtonData().isCancelButton()) { Map<String, Set<String>> result = null; Set<String> geneidset = geneset.genelist.stream().map(g -> g.genid).collect(Collectors.toSet()); try { InputStream p = new URI(gene.getText()).toURL().openStream(); InputStream b = new URI(biosys.getText()).toURL().openStream(); if (gene.getText().endsWith(".gz")) p = new GZIPInputStream(p); if (biosys.getText().endsWith(".gz")) b = new GZIPInputStream(b); Map<String, List<String[]>> group = new BufferedReader(new InputStreamReader(p)).lines() .map(l -> l.split("\t")).filter(s -> geneidset.contains(s[1])) .collect(Collectors.groupingBy(s -> s[1])); Set<String> bsids = group.entrySet().stream().flatMap(e -> e.getValue().stream()) .map(s -> s[0]).collect(Collectors.toSet()); Map<String, String> bsid2name = new BufferedReader(new InputStreamReader(b)).lines() .map(s -> s.split("\t")).filter(s -> bsids.contains(s[0])) .collect(Collectors.toMap(s -> s[0], s -> s[2] + ":" + s[3])); result = group.entrySet().stream() .collect(Collectors.toMap(s -> s.getKey(), s -> s.getValue().stream() .map(sub -> bsid2name.get(sub[0])).collect(Collectors.toSet()))); } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { e.printStackTrace(); } //Path p = Paths.get(gene.getText()); //Path b = Paths.get(biosys.getText()); return result; } return null; }); Optional<Map<String, Set<String>>> od = dialog.showAndWait(); if (od.isPresent()) { geneset.biosystemsmap = od.get(); Map<String, String> env = new HashMap<>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); try { geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); Path resPath = geneset.zipfilesystem.getPath("/biosystems.txt"); BufferedWriter bw = Files.newBufferedWriter(resPath, StandardOpenOption.TRUNCATE_EXISTING); geneset.biosystemsmap.entrySet().stream().forEach(e -> { try { bw.write(e.getKey() + "\t" + e.getValue().stream().collect(Collectors.joining(";")) + "\n"); } catch (IOException e1) { e1.printStackTrace(); } }); bw.close(); } catch (Exception e) { e.printStackTrace(); } finally { try { geneset.zipfilesystem.close(); } catch (IOException e) { e.printStackTrace(); } } } }); MenuItem importkeggpathwayaction = new MenuItem("Import kegg pathways"); importkeggpathwayaction.setOnAction(actionEvent -> { Set<String> keggids = new HashSet<>(); for (Gene g : geneset.genelist) { if (g.keggid != null) { int i = g.keggid.indexOf(':'); if (i > 0) { keggids.add(g.keggid.substring(0, i)); } } } System.err.println(keggids); JTextField tf = new JTextField("http://130.208.252.239/organisms/"); JOptionPane.showMessageDialog(null, tf); Map<String, String> env = new HashMap<>(); env.put("create", "true"); Path rootp = null; try { geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); } catch (Exception ee) { ee.printStackTrace(); } for (Path root : geneset.zipfilesystem.getRootDirectories()) { rootp = root; break; } for (String kegg : keggids) { try { URL url = new URL(tf.getText() + kegg + ".tar.gz"); InputStream is = url.openStream(); GZIPInputStream gz = new GZIPInputStream(is); TarArchiveInputStream tar = new TarArchiveInputStream(gz); TarArchiveEntry tae = (TarArchiveEntry) tar.getNextEntry(); while (tae != null) { geneset.traverseTar(tar, tae, rootp); tae = (TarArchiveEntry) tar.getNextEntry(); } is.close(); } catch (IOException e1) { e1.printStackTrace(); } } try { geneset.zipfilesystem.close(); } catch (Exception ee) { ee.printStackTrace(); } ; }); edit.getItems().add(clustergenes); edit.getItems().add(alignclusters); edit.getItems().add(new SeparatorMenuItem()); edit.getItems().add(sharenumaction); edit.getItems().add(importgeneclusteringaction); edit.getItems().add(importgenesymbolaction); edit.getItems().add(importcazyaction); edit.getItems().add(functionmappingaction); edit.getItems().add(importidmappingaction); edit.getItems().add(gene2refseqaction); edit.getItems().add(importbiosystemsaction); edit.getItems().add(importkeggpathwayaction); edit.getItems().add(new SeparatorMenuItem()); edit.getItems().add(cogblastaction); edit.getItems().add(unresolvedblastaction); Menu view = new Menu("View"); gb = new RadioMenuItem("Genes"); gb.setOnAction(actionEvent -> { splitpane.getItems().remove(table); splitpane.getItems().add(0, gtable); //table.setModel( defaultModel ); }); view.getItems().add(gb); ggb = new RadioMenuItem("Gene groups"); ggb.setOnAction(actionEvent -> { splitpane.getItems().remove(gtable); splitpane.getItems().add(0, table); //table.setModel( groupModel ); }); ToggleGroup bg = new ToggleGroup(); gb.setToggleGroup(bg); ggb.setToggleGroup(bg); //ButtonGroup bg = new ButtonGroup(); //bg.add( gb ); //bg.add( ggb ); ggb.setSelected(true); view.getItems().add(ggb); ActionCollection.addAll(view, geneset.clusterMap, GeneSetHead.this, geneset.speccontigMap, table, comp, geneset.cs); Menu help = new Menu("Help"); MenuItem about = new MenuItem("About"); about.setOnAction(actionEvent -> SwingUtilities .invokeLater(() -> JOptionPane.showMessageDialog(comp, "CompGen 1.0"))); help.getItems().add(about); MenuItem test = new MenuItem("Test"); test.setOnAction(actionEvent -> { /*for( Gene g : geneset.genelist ) { Sequence seq = g.tegeval.getContig(); if( seq == null ) { System.err.println(); } }*/ for (String spec : geneset.speccontigMap.keySet()) { if (spec.contains("RAST")) { List<Sequence> lseq = geneset.speccontigMap.get(spec); for (Sequence seq : lseq) { for (Annotation a : seq.getAnnotations()) { System.err.println(a.getGene().getGeneGroup().species); /*Sequence tseq = a.getContig(); if( tseq == null ) { System.err.println(); }*/ } } } } /*for( GeneGroup gg : allgenegroups ) { if( gg.species.size() > 1 ) { System.err.println( gg.species ); } }*/ }); help.getItems().add(test); help.getItems().add(new SeparatorMenuItem()); MenuItem runserver = new MenuItem("Run server"); runserver.setOnAction(actionEvent -> { SwingUtilities.invokeLater(new Runnable() { public void run() { JSpinner spin = new JSpinner(); JOptionPane.showMessageDialog(GeneSetHead.this, spin, "Port", JOptionPane.QUESTION_MESSAGE); try { geneset.cs = WSServer.startServer(GeneSetHead.this, (Integer) spin.getValue()); } catch (UnknownHostException e1) { e1.printStackTrace(); } } }); }); help.getItems().add(runserver); help.getItems().add(new SeparatorMenuItem()); CheckMenuItem cbmi = new CheckMenuItem("Use geneset user"); help.getItems().add(cbmi); cbmi.setOnAction(actionEvent -> { if (cbmi.isSelected()) { geneset.user = "geneset"; } else geneset.user = System.getProperty("user.name"); JavaFasta.user = geneset.user; if (geneset.currentSerify != null) geneset.currentSerify.user = geneset.user; }); help.getItems().add(new SeparatorMenuItem()); MenuItem helptut = new MenuItem("Help & Tutorial"); helptut.setOnAction(actionEvent -> { try { Desktop.getDesktop().browse(new URI("http://thermusgenes.appspot.com/pancore.html")); } catch (IOException | URISyntaxException e1) { e1.printStackTrace(); } }); help.getItems().add(helptut); Menu sequencemenu = new Menu("Sequence"); MenuItem showgroupseq = new MenuItem("Show group sequences"); showgroupseq.setOnAction(actionEvent -> { //JTextArea textarea = new JTextArea(); //JScrollPane scrollpane = new JScrollPane(textarea); /*try { if (clipboardService == null) clipboardService = (ClipboardService) ServiceManager.lookup("javax.jnlp.ClipboardService"); Action action = new CopyAction("Copy", null, "Copy data", new Integer(KeyEvent.VK_CONTROL + KeyEvent.VK_C)); textarea.getActionMap().put("copy", action); grabFocus = true; } catch (Exception ee) { ee.printStackTrace(); System.err.println("Copy services not available. Copy using 'Ctrl-c'."); } textarea.setDragEnabled(true);*/ JFrame frame = null; if (geneset.currentSerify == null) { frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); frame.setSize(400, 300); Map<String, String> env = new HashMap<String, String>(); //Path path = zipfile.toPath(); String uristr = "jar:" + geneset.zippath.toUri(); geneset.zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); try { geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); } catch (IOException e1) { e1.printStackTrace(); } SerifyApplet sa = new SerifyApplet(geneset.zipfilesystem); sa.init(frame, null, geneset.user); //frame.add( ) geneset.currentSerify = sa; } /* else frame = (JFrame)currentSerify.cnt;*/ String[] farr = new String[] { "o.profundus", "mt.silvanus", "mt.ruber", "m.hydrothermalis", "t.thermophilus_SG0_5JP17_16", "t.thermophilusJL18", "t.thermophilusHB8", "t.thermophilusHB27", "t.scotoductusSA01", "t.scotoductus4063", "t.scotoductus1572", "t.scotoductus2101", "t.scotoductus2127", "t.scotoductus346", "t.scotoductus252", "t.antranikiani", "t.kawarayensis", "t.brockianus", "t.igniterrae", "t.eggertsoni", "t.RLM", "t.oshimai_JL2", "t.oshimai", "t.filiformis", "t.arciformis", "t.islandicus", "t.aquaticus", "t.spCCB" }; Map<Integer, String> ups = new HashMap<Integer, String>(); Set<Integer> stuck = new HashSet<Integer>(); Map<Integer, List<Tegeval>> ups2 = new HashMap<Integer, List<Tegeval>>(); //int[] rr = table.getSelectedRows(); for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //Gene gg = geneset.genelist.get(cr); if (gg.getSpecies() != null) { if (gg.genid != null && gg.genid.length() > 0) { ups.put(gg.getGroupIndex(), gg.name); stuck.add(gg.getGroupIndex()); } if (!stuck.contains(gg.getGroupIndex())) { if (!ups.containsKey(gg.getGroupIndex()) || !(gg.name.contains("unnamed") || gg.name.contains("hypot"))) ups.put(gg.getGroupIndex(), gg.name); } List<Tegeval> tlist; if (ups2.containsKey(gg.getGroupIndex())) tlist = ups2.get(gg.getGroupIndex()); else { tlist = new ArrayList<Tegeval>(); ups2.put(gg.getGroupIndex(), tlist); } //Set<String> specs = new HashSet<String>(); //textarea.append(gg.name + ":\n"); //for (String sp : gg.species.keySet()) { int count = 0; for (String sp : farr) { //Teginfo stv = gg.species.equals(sp) ? gg.teginfo : null; if (gg.getSpecies().equals(sp)) tlist.add(gg.tegeval); /*for( String key : gg.species.keySet() ) { if( key.contains("JL2") ) { System.err.println( " erm " + key ); } }*/ /*if( stv == null && gg.species.size() == 28 ) { System.err.println( gg.species ); System.err.println( sp ); }*/ //System.err.println( gg.species.keySet() ); /*if( stv == null ) { //System.err.println( sp ); } else { count++; //specs.add( sp ); for (Tegeval tv : stv.tset) { tlist.add( tv ); /*textarea.append(">" + tv.cont + " " + tv.teg + " " + tv.eval + "\n"); if (tv.dna != null) { for (int i = 0; i < tv.dna.length(); i += 70) { textarea.append(tv.dna.gg.speciessubstring(i, Math.min(i + 70, tv.dna.length())) + "\n"); } }* } }*/ } //if( count < gg.species.size() ) { // System.err.println( gg.species ); // System.err.println(); //} //if( specs.size() < 28 ) System.err.println("mu " + specs); } } try { StringWriter sb = new StringWriter(); for (int gi : ups.keySet()) { String name = ups.get(gi); List<Tegeval> tlist = ups2.get(gi); sb.append(name.replace('/', '-') + ":\n"); if (tlist.size() < 28) { for (Tegeval tv : tlist) { System.err.println(tv.name); } System.err.println(); } for (Tegeval tv : tlist) { Sequence ps = tv.getProteinSequence(); ps.setName(tv.name.substring(0, tv.name.indexOf('_'))); ps.writeSequence(sb); /*sb.append(">" + tv.name.substring(0, tv.name.indexOf('_')) + "\n"); for (int i = 0; i < ps.length(); i += 70) { sb.append( ps.substring(i, Math.min(i + 70, tv.getProteinLength() )) + "\n"); }*/ } } geneset.currentSerify.addSequences("uh", new StringReader(sb.toString()), Paths.get("/"), null); } catch (URISyntaxException | IOException e1) { e1.printStackTrace(); } frame.setVisible(true); }); sequencemenu.getItems().add(showgroupseq); MenuItem showgroupdnaseq = new MenuItem("Show group DNA sequences"); showgroupdnaseq.setOnAction(actionEvent -> { final JTextArea textarea = new JTextArea(); JScrollPane scrollpane = new JScrollPane(textarea); try { if (clipboardService == null) clipboardService = (ClipboardService) ServiceManager.lookup("javax.jnlp.ClipboardService"); Action action = new CopyAction("Copy", null, "Copy data", new Integer(KeyEvent.VK_CONTROL + KeyEvent.VK_C)); textarea.getActionMap().put("copy", action); grabFocus = true; } catch (Exception ee) { ee.printStackTrace(); System.err.println("Copy services not available. Copy using 'Ctrl-c'."); } textarea.setDragEnabled(true); try { final DataFlavor df = new DataFlavor("text/plain;charset=utf-8"); TransferHandler th = new TransferHandler() { /** * */ private static final long serialVersionUID = 1L; public int getSourceActions(JComponent c) { return TransferHandler.COPY_OR_MOVE; } public boolean canImport(TransferHandler.TransferSupport support) { return false; } protected Transferable createTransferable(JComponent c) { return new Transferable() { @Override public Object getTransferData(DataFlavor arg0) throws UnsupportedFlavorException, IOException { if (arg0.equals(df)) { return new ByteArrayInputStream(textarea.getText().getBytes()); } else { return textarea.getText(); } } @Override public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { df, DataFlavor.stringFlavor }; } @Override public boolean isDataFlavorSupported(DataFlavor arg0) { if (arg0.equals(df) || arg0.equals(DataFlavor.stringFlavor)) { return true; } return false; } }; } public boolean importData(TransferHandler.TransferSupport support) { return false; } }; textarea.setTransferHandler(th); } catch (ClassNotFoundException e1) { e1.printStackTrace(); } Map<Integer, String> ups = new HashMap<Integer, String>(); Set<Integer> stuck = new HashSet<Integer>(); Map<Integer, List<Tegeval>> ups2 = new HashMap<Integer, List<Tegeval>>(); //int[] rr = table.getSelectedRows(); for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //Gene gg = geneset.genelist.get(cr); if (gg.getSpecies() != null) { if (gg.genid != null && gg.genid.length() > 0) { ups.put(gg.getGroupIndex(), gg.name); stuck.add(gg.getGroupIndex()); } if (!stuck.contains(gg.getGroupIndex())) { if (!ups.containsKey(gg.getGroupIndex()) || !(gg.name.contains("unnamed") || gg.name.contains("hypot"))) ups.put(gg.getGroupIndex(), gg.name); } List<Tegeval> tlist; if (ups2.containsKey(gg.getGroupIndex())) tlist = ups2.get(gg.getGroupIndex()); else { tlist = new ArrayList<Tegeval>(); ups2.put(gg.getGroupIndex(), tlist); } //textarea.append(gg.name + ":\n"); tlist.add(gg.tegeval); /*textarea.append(">" + tv.cont + " " + tv.teg + " " + tv.eval + "\n"); if (tv.dna != null) { for (int i = 0; i < tv.dna.length(); i += 70) { textarea.append(tv.dna.substring(i, Math.min(i + 70, tv.dna.length())) + "\n"); } }*/ } } for (int gi : ups.keySet()) { String name = ups.get(gi); List<Tegeval> tlist = ups2.get(gi); textarea.append(name.replace('/', '-') + ":\n"); for (Tegeval tv : tlist) { textarea.append(">" + tv.name.substring(0, tv.name.indexOf('_')) + "\n"); for (int i = 0; i < tv.getLength(); i += 70) { textarea.append(tv.getSubstring(i, Math.min(i + 70, tv.getLength())) + "\n"); } } } JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.add(scrollpane); frame.setSize(400, 300); frame.setVisible(true); }); sequencemenu.getItems().add(showgroupdnaseq); sequencemenu.getItems().add(new SeparatorMenuItem()); MenuItem showallseq = new MenuItem("Show all sequences"); showallseq.setOnAction(actionEvent -> { JFrame frame = new JFrame(); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Serifier serifier = new Serifier(); JavaFasta jf = new JavaFasta((comp instanceof JApplet) ? (JApplet) comp : null, serifier, geneset.cs); jf.initGui(frame); Map<String, Sequence> contset = new HashMap<String, Sequence>(); //int[] rr = table.getSelectedRows(); for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //Gene gg = geneset.genelist.get(cr); Tegeval tv = gg.tegeval; String contig = tv.getContshort().getName(); Sequence seq = tv.getProteinSequence(); seq.setName(contig); serifier.mseq.put(seq.getName(), seq); //Sequence seq = new Sequence( contig, aa, serifier.mseq ); serifier.addSequence(seq); } jf.updateView(); frame.setVisible(true); }); sequencemenu.getItems().add(showallseq); MenuItem showseq = new MenuItem("Show sequences"); showseq.setOnAction(actionEvent -> { Set<GeneGroup> genegroups = new HashSet<GeneGroup>(); //int[] rr = table.getSelectedRows(); if (!isGeneview()) { for (GeneGroup gg : table.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //GeneGroup gg = geneset.allgenegroups.get(cr); genegroups.add(gg); } } else { for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //Gene gg = geneset.genelist.get(cr); genegroups.add(gg.getGeneGroup()); } } Platform.runLater(() -> { Set<String> specs = null; if (table.getItems().size() > 1) specs = getSelspec(comp, geneset.specList, null); showSequences(comp, genegroups, false, specs); }); }); sequencemenu.getItems().add(showseq); MenuItem showseqwgenenames = new MenuItem("Show sequences w/genenames"); showseqwgenenames.setOnAction(actionEvent -> { Set<GeneGroup> genegroups = new HashSet<GeneGroup>(); //int[] rr = table.getSelectedRows(); if (!isGeneview()) { for (GeneGroup gg : table.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //GeneGroup gg = geneset.allgenegroups.get(cr); genegroups.add(gg); } } else { for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { //int cr = table.convertRowIndexToModel(r); //Gene gg = geneset.genelist.get(cr); genegroups.add(gg.getGeneGroup()); } } //Set<String> specs = null; //if( rr.length > 1 ) specs = getSelspec(comp, specList, null); showSequences(comp, genegroups, false, null, true); }); sequencemenu.getItems().add(showseqwgenenames); MenuItem showalignseq = new MenuItem("Show aligned sequences"); showalignseq.setOnAction(actionEvent -> { Set<GeneGroup> genegroups = new HashSet<GeneGroup>(); //int[] rr = table.getSelectedRows(); if (!isGeneview()) { for (GeneGroup gg : table.getSelectionModel().getSelectedItems()) { genegroups.add(gg); } } else { for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { genegroups.add(gg.getGeneGroup()); } } Serifier serifier = new Serifier(); for (GeneGroup ggroup : genegroups) { for (Tegeval tv : ggroup.getTegevals()) { String selspec = tv.getContshort().getSpec();//tv.getContig(); String spec = geneset.nameFix(selspec); /*if( selspec.contains("hermus") ) spec = selspec; else { Matcher m = Pattern.compile("\\d").matcher(selspec); int firstDigitLocation = m.find() ? m.start() : 0; if( firstDigitLocation == 0 ) spec = "Thermus_" + selspec; else spec = "Thermus_" + selspec.substring(0,firstDigitLocation) + "_" + selspec.substring(firstDigitLocation); }*/ Sequence seq = tv.getAlignedSequence(); //System.err.println( "seqlen " + seq.length() ); if (seq != null) { seq.setName(spec); //Sequence seq = new Sequence( contig, seqstr, null ); serifier.addSequence(seq); } else { Sequence sb = tv.getProteinSequence(); sb.setName(spec); //Sequence sseq = new Sequence( spec, sb, serifier.mseq ); serifier.addSequence(sb); } } } showAlignedSequences(comp, serifier); }); sequencemenu.getItems().add(showalignseq); MenuItem splitseq = new MenuItem("Split/Show sequences"); splitseq.setOnAction(actionEvent -> { try { StringBuffer sb = getSelectedASeqs(table, geneset.genelist, GeneSetHead.this, geneset.specList); if (geneset.currentSerify == null) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); frame.setSize(800, 600); SerifyApplet sa = new SerifyApplet(geneset.zipfilesystem); sa.init(frame, null, geneset.user); geneset.currentSerify = sa; frame.setVisible(true); } geneset.currentSerify.addSequences("uh", new StringReader(sb.toString()), Paths.get("/"), null); } catch (URISyntaxException | IOException e1) { e1.printStackTrace(); } //JTextArea textarea = new JTextArea(); //textarea.append( sb.toString() ); /*try { if (clipboardService == null) clipboardService = (ClipboardService) ServiceManager.lookup("javax.jnlp.ClipboardService"); Action action = new CopyAction("Copy", null, "Copy data", new Integer(KeyEvent.VK_CONTROL + KeyEvent.VK_C)); textarea.getActionMap().put("copy", action); grabFocus = true; } catch (Exception ee) { ee.printStackTrace(); System.err.println("Copy services not available. Copy using 'Ctrl-c'."); } * * final DataFlavor df = * DataFlavor.getTextPlainUnicodeFlavor();//new * DataFlavor("text/plain;charset=utf-8"); final String charset * = df.getParameter("charset"); final Transferable transferable * = new Transferable() { * * @Override public Object getTransferData(DataFlavor arg0) * throws UnsupportedFlavorException, IOException { String ret = * makeCopyString( detailTable ); return new * ByteArrayInputStream( ret.getBytes( charset ) ); } * * @Override public DataFlavor[] getTransferDataFlavors() { * return new DataFlavor[] { df }; } * * @Override public boolean isDataFlavorSupported(DataFlavor * arg0) { if( arg0.equals(df) ) { return true; } return false; * } }; * * TransferHandler th = new TransferHandler() { private static * final long serialVersionUID = 1L; * * public int getSourceActions(JComponent c) { return * TransferHandler.COPY_OR_MOVE; } * * public boolean canImport(TransferHandler.TransferSupport * support) { return false; } * * protected Transferable createTransferable(JComponent c) { * return transferable; } * * public boolean importData(TransferHandler.TransferSupport * support) { /*try { Object obj = * support.getTransferable().getTransferData( df ); InputStream * is = (InputStream)obj; * * byte[] bb = new byte[2048]; int r = is.read(bb); * * //importFromText( new String(bb,0,r) ); } catch * (UnsupportedFlavorException e) { e.printStackTrace(); } catch * (IOException e) { e.printStackTrace(); }* return false; } }; * textarea.setTransferHandler( th ); * textarea.setDragEnabled(true); JScrollPane scrollpane = new JScrollPane(textarea); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.add(scrollpane); frame.setSize(400, 300); frame.setVisible(true);*/ }); sequencemenu.getItems().add(splitseq); MenuItem showdnaseq = new MenuItem("Show DNA sequences"); showdnaseq.setOnAction(actionEvent -> { Set<GeneGroup> genegroups = new HashSet<GeneGroup>(); int rr = 0; if (!isGeneview()) { ObservableList<GeneGroup> lgg = table.getSelectionModel().getSelectedItems(); genegroups.addAll(lgg); rr = lgg.size(); } else { for (Gene gg : gtable.getSelectionModel().getSelectedItems()) { genegroups.add(gg.getGeneGroup()); rr++; } } Set<String> specs = null; if (rr > 1) specs = getSelspec(comp, geneset.specList, null); showSequences(comp, genegroups, true, specs); /*StringBuilder sb = getSelectedSeqs( table, genelist ); if( currentSerify == null ) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); frame.setSize(800, 600); SerifyApplet sa = new SerifyApplet(); sa.init( frame ); try { sa.addSequences("uh", new StringReader( sb.toString() ), "/"); } catch (URISyntaxException | IOException e1) { e1.printStackTrace(); } frame.setVisible( true ); } JTextArea textarea = new JTextArea(); JScrollPane scrollpane = new JScrollPane(textarea); try { if (clipboardService == null) clipboardService = (ClipboardService) ServiceManager.lookup("javax.jnlp.ClipboardService"); Action action = new CopyAction("Copy", null, "Copy data", new Integer(KeyEvent.VK_CONTROL + KeyEvent.VK_C)); textarea.getActionMap().put("copy", action); grabFocus = true; } catch (Exception ee) { ee.printStackTrace(); System.err.println("Copy services not available. Copy using 'Ctrl-c'."); } textarea.setDragEnabled(true); textarea.append( sb.toString() ); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.add(scrollpane); frame.setSize(400, 300); frame.setVisible(true);*/ }); sequencemenu.getItems().add(showdnaseq); MenuItem expalldna = new MenuItem("Export all DNA sequences"); expalldna.setOnAction(actionEvent -> { JFileChooser jfc = new JFileChooser(); jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); try { Map<Integer, FileWriter> lfw = new HashMap<Integer, FileWriter>(); if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { File f = jfc.getSelectedFile(); for (Gene gg : getGeneTable().getSelectionModel().getSelectedItems()) { FileWriter fw = null; if (lfw.containsKey(gg.getGroupIndex())) { fw = lfw.get(gg.getGroupIndex()); } else { fw = new FileWriter(new File(f, "group_" + gg.getGroupIndex() + ".fasta")); lfw.put(gg.getGroupIndex(), fw); } Tegeval tv = gg.tegeval; fw.append(">" + tv.name + " " + tv.teg + " " + tv.eval + "\n"); for (int i = 0; i < tv.getLength(); i += 70) { fw.append(tv.getSubstring(i, Math.min(i + 70, tv.getLength())) + "\n"); } } } for (int gi : lfw.keySet()) { lfw.get(gi).close(); } } catch (IOException e1) { e1.printStackTrace(); } }); sequencemenu.getItems().add(expalldna); MenuItem exprelcont = new MenuItem("Export relevant contigs"); exprelcont.setOnAction(actionEvent -> { JFileChooser jfc = new JFileChooser(); try { Map<Integer, FileWriter> lfw = new HashMap<Integer, FileWriter>(); if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { File f = jfc.getSelectedFile(); Set<Sequence> contset = new HashSet<Sequence>(); for (Gene gg : getGeneTable().getSelectionModel().getSelectedItems()) { Tegeval tv = gg.tegeval; contset.add(tv.getContshort()); } FileWriter fw = new FileWriter(f); for (Sequence contig : contset) { fw.append(">" + contig + "\n"); if (geneset.contigmap.containsKey(contig)) { StringBuilder dna = geneset.contigmap.get(contig).getStringBuilder(); for (int i = 0; i < dna.length(); i += 70) { fw.append(dna.substring(i, Math.min(i + 70, dna.length())) + "\n"); } } } fw.close(); } for (int gi : lfw.keySet()) { lfw.get(gi).close(); } } catch (IOException e1) { e1.printStackTrace(); } }); sequencemenu.getItems().add(exprelcont); sequencemenu.getItems().add(new SeparatorMenuItem()); MenuItem viewselrange = new MenuItem("View selected range"); viewselrange.setOnAction(actionEvent -> { JFrame frame = new JFrame(); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Serifier serifier = new Serifier(); JavaFasta jf = new JavaFasta((comp instanceof JApplet) ? (JApplet) comp : null, serifier, geneset.cs); jf.initGui(frame); Set<Sequence> contset = new HashSet<Sequence>(); Set<Tegeval> tvset = new HashSet<>(); if (isGeneview()) { for (Gene gg : getGeneTable().getSelectionModel().getSelectedItems()) { Tegeval tv = gg.tegeval; tvset.add(tv); //serifier.addAnnotation( tv ); contset.add(tv.getContshort()); } } else { for (GeneGroup gg : getGeneGroupTable().getSelectionModel().getSelectedItems()) { for (Tegeval tv : gg.getTegevals()) { tv.color = Color.red; tvset.add(tv); Sequence contig = tv.getContshort(); contset.add(contig); //serifier.addAnnotation( tv ); } } } /*Sequence seq; Sequence contig = tv.getContshort(); /*if (contset.containsKey(contig)) { seq = contset.get(contig); } else { if( contigmap.containsKey(contig) ) { StringBuilder dna = contigmap.get(contig).getStringBuilder(); seq = new Sequence(contig.getName(), dna, serifier.mseq); } else seq = new Sequence(contig.getName(), serifier.mseq); contset.put(contig, seq); } Annotation a = new Annotation(contig, contig.getName(), Color.green, serifier.mann); a.setStart(tv.start); a.setStop(tv.stop); a.setOri(tv.ori); a.setGroup(gg.name); a.setType("gene");*/ // seq.addAnnotation( new Annotation( seq, ) ); for (Sequence contig : contset) { int start = Integer.MAX_VALUE; int stop = Integer.MIN_VALUE; for (Tegeval tv : tvset) { if (contig == tv.seq) { start = Math.min(start, tv.start); stop = Math.max(stop, tv.stop); } } int rstart = 0; int rstop = contig.length(); if (contig.annset != null) for (Annotation tv : contig.annset) { if (contig == tv.seq) { if (tv.stop < start && tv.stop > rstart) { rstart = tv.stop; } if (tv.start > stop && tv.start < rstop) { rstop = tv.start; } } } start = rstart; stop = rstop; Sequence newseq = new Sequence(contig.getName(), new StringBuilder(contig.getSubstring(start, stop, 1)), serifier.mseq); /*if( contig.isReverse() ) { newseq.reverse(); newseq.complement(); }*/ serifier.addSequence(newseq); for (Tegeval tv : tvset) { Annotation newann = new Annotation(newseq, tv.start - start, tv.stop - start, tv.ori, tv.name); if (contig == tv.seq) { newseq.addAnnotation(newann); } serifier.addAnnotation(newann); } /*for( Annotation ann : contig.getAnnotations() ) { serifier.addAnnotation( ann ); }*/ /*if (seq.getAnnotations() != null) Collections.sort(seq.getAnnotations());*/ } jf.updateView(); frame.setVisible(true); }); sequencemenu.getItems().add(viewselrange); MenuItem viewwhole = new MenuItem("View whole contigs for selection"); viewwhole.setOnAction(actionEvent -> { JFrame frame = new JFrame(); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Serifier serifier = new Serifier(); JavaFasta jf = new JavaFasta((comp instanceof JApplet) ? (JApplet) comp : null, serifier, geneset.cs); jf.initGui(frame); //Map<Sequence, Sequence> contset = new HashMap<Sequence, Sequence>(); /*int[] rr = table.getSelectedRows(); for (int r : rr) { int cr = table.convertRowIndexToModel(r); Gene gg = geneset.genelist.get(cr); if (gg.species != null) { for (String sp : gg.species.keySet()) { Teginfo stv = gg.species.get(sp); for (Tegeval tv : stv.tset) { Sequence seq; Sequence contig = tv.getContshort(); if (contset.containsKey(contig)) { seq = contset.get(contig); } else { if( GeneSet.contigmap.containsKey(contig) ) { //StringBuilder dna = GeneSet.contigmap.get(contig).seq; StringBuilder dna = contig.getSequence().getStringBuilder(); seq = new Sequence(contig.getName(), dna, serifier.mseq); } else { seq = new Sequence(contig.getName(), serifier.mseq); } contset.put(contig, seq); } /* * Annotation a = jf.new Annotation( seq, * contig, Color.red ); a.setStart( tv.start ); * a.setStop( tv.stop ); a.setOri( tv.ori ); * a.setGroup( gg.name ); a.setType( "gene" ); * jf.addAnnotation( a ); * // seq.addAnnotation( new Annotation( seq, ) ); } } } }*/ Set<Sequence> contigs = new HashSet<Sequence>(); if (isGeneview()) { for (Gene gg : getGeneTable().getSelectionModel().getSelectedItems()) { Tegeval tv = gg.tegeval; tv.color = Color.red; Sequence contig = tv.getContshort(); //contig.offset = -tv.start; contigs.add(contig); } /*Annotation a = new Annotation(contig, contig.getName(), Color.red, serifier.mann); a.setStart(tv.start); a.setStop(tv.stop); a.setOri(tv.ori); a.setGroup(g.name); a.setType("gene");*/ //serifier.addAnnotation( tv ); } else { for (GeneGroup gg : getGeneGroupTable().getSelectionModel().getSelectedItems()) { for (Tegeval tv : gg.getTegevals()) { tv.color = Color.red; Sequence contig = tv.getContshort(); //contig.offset = -tv.start; contigs.add(contig); /*Annotation a = new Annotation(contig, contig.getName(), Color.red, serifier.mann); a.setStart(tv.start); a.setStop(tv.stop); a.setOri(tv.ori); a.setGroup(gg.getCommonName()); a.setType("gene");*/ //serifier.addAnnotation( tv ); } } } //Gene gg = geneset.genelist.get(cr); //for (Gene g : geneset.genelist) { //if (g.species != null) { //for (String sp : g.species.keySet()) { for (Sequence contig : contigs) { for (Annotation ann : contig.getAnnotations()) { serifier.addAnnotation(ann); } serifier.addSequence(contig); serifier.mseq.put(contig.getName(), contig); //if(contig.getAnnotations() != null) // Collections.sort(contig.getAnnotations()); } jf.updateView(); frame.setVisible(true); }); sequencemenu.getItems().add(viewwhole); sequencemenu.getItems().add(new SeparatorMenuItem()); MenuItem viewspecseq = new MenuItem("View species sequence"); viewspecseq.setOnAction(actionEvent -> { Set<String> selspec = getSelspec(GeneSetHead.this, geneset.specList); JFrame frame = new JFrame(); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Serifier serifier = new Serifier(); JavaFasta jf = new JavaFasta((comp instanceof JApplet) ? (JApplet) comp : null, serifier, geneset.cs); jf.initGui(frame); for (String spec : selspec) { List<Sequence> contigs = geneset.speccontigMap.get(spec); for (Sequence contig : contigs) { List<Annotation> lann = contig.getAnnotations(); if (lann != null) for (Annotation ann : lann) { serifier.addAnnotation(ann); } serifier.addSequence(contig); serifier.mseq.put(contig.getName(), contig); } } jf.updateView(); frame.setVisible(true); }); sequencemenu.getItems().add(viewspecseq); Menu windowmenu = new Menu("Tools"); MenuItem seqviewer = new MenuItem("Sequence viewer"); seqviewer.setOnAction(actionEvent -> { JFrame frame = new JFrame(); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Serifier serifier = new Serifier(); JavaFasta jf = new JavaFasta((comp instanceof JApplet) ? (JApplet) comp : null, serifier, geneset.cs); jf.initGui(frame); jf.updateView(); frame.setVisible(true); }); windowmenu.getItems().add(seqviewer); windowmenu.getItems().add(new SeparatorMenuItem()); MenuItem genesorter = new MenuItem("Gene sorter"); genesorter.setOnAction(actionEvent -> { try { //if( gb.isSelected() ) new GeneSorter().mynd( GeneSetHead.this, genelist, table, null, contigmap ); //else new GeneSorter().groupMynd(GeneSetHead.this, geneset.allgenegroups, geneset.specList, geneset.genelist, table, geneset.contigmap, geneset.specset); } catch (IOException e1) { e1.printStackTrace(); } }); windowmenu.getItems().add(genesorter); MenuItem specorderaction = new MenuItem("Order species list"); specorderaction.setOnAction(actionEvent -> { TreeUtil tu = new TreeUtil(); /*corrInd.clear(); for( String spec : specList ) { corrInd.add( nameFix( spec ) ); }*/ Serifier serifier = getConcatenatedSequences(false, false); Map<String, Integer> blosumap = JavaFasta.getBlosumMap(); double[] dmat = new double[serifier.lseq.size() * serifier.lseq.size()]; Sequence.distanceMatrixNumeric(serifier.lseq, dmat, null, false, false, null, blosumap); List<String> ret = new ArrayList<String>(); for (Sequence seqname : serifier.lseq) { ret.add(seqname.getName()); //.replace(' ', '_') ); } //List<String> corrInd = currentjavafasta.getNames(); //Sequence.distanceMatrixNumeric(serifier.lseq, dmat, idxs, bootstrap, cantor, ent, blosum); Node n = tu.neighborJoin(dmat, ret, null, false, false); Comparator<Node> comp2 = (o1, o2) -> { int c1 = o1.countLeaves(); int c2 = o2.countLeaves(); if (c1 > c2) return 1; else if (c1 == c2) return 0; return -1; }; tu.arrange(n, comp2); //corrInd.clear(); List<String> ordInd = n.traverse(); for (String spec : ordInd) { System.err.println(spec); } for (String oldspec : geneset.specList) { if (!ordInd.contains(oldspec)) { ordInd.add(oldspec); } } geneset.specList = ordInd; //TableModel model = table.getModel(); //table.setModel( nullmodel ); //table.setModel( model ); //table.tableChanged( new TableModelEvent( table.getModel() ) ); //table.getColumnModel(). System.err.println(geneset.specList.size()); }); MenuItem matrixaction = new MenuItem("Relation matrix"); matrixaction.setOnAction(actionEvent -> { SwingUtilities.invokeLater(() -> { JComboBox<String> descombo = new JComboBox<String>( geneset.deset.toArray(new String[geneset.deset.size()])); JCheckBox anicheck = new JCheckBox("ANImatrix"); JCheckBox plasmidcheck = new JCheckBox("Skip plasmids"); descombo.insertItemAt("", 0); descombo.setSelectedIndex(0); JOptionPane.showMessageDialog(GeneSetHead.this, new Object[] { descombo, anicheck, plasmidcheck }); String val = descombo.getSelectedItem().toString(); Collection<GeneGroup> ss = new HashSet<>(); /*int[] rr = table.getSelectedRows(); for( int r : rr ) { ss.add( geneset.allgenegroups.get( table.convertRowIndexToModel(r) ) ); }*/ ss.addAll(table.getSelectionModel().getSelectedItems()); if (ss.isEmpty()) ss = geneset.allgenegroups; Set<String> species = getSelspec(GeneSetHead.this, geneset.specList); bimg = anicheck.isSelected() ? geneset.animatrix(species, geneset.clusterMap, val, ss, plasmidcheck.isSelected()) : geneset.bmatrix(species, geneset.clusterMap, val); JFrame f = new JFrame("Relation matrix"); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setSize(500, 500); /* * { public void paintComponent( Graphics g ) { * super.paintComponent(g); g.drawImage(bimg, 0, 0, this); } }; */ try { final DataFlavor df = new DataFlavor("text/plain;charset=utf-8"); final Transferable transferable = new Transferable() { @Override public Object getTransferData(DataFlavor arg0) throws UnsupportedFlavorException, IOException { StringBuilder ret = new StringBuilder(); int i = 0; for (String spc : geneset.specList) { if (++i == geneset.specList.size()) ret.append(spc + "\n"); else ret.append(spc + "\t"); } int where = 0; for (String spc1 : geneset.specList) { int wherex = 0; for (String spc2 : geneset.specList) { int spc1tot = 0; int spc2tot = 0; int totot = 0; int spc1totwocore = 0; int spc2totwocore = 0; int tototwocore = 0; for (Set<String> set : geneset.clusterMap.keySet()) { Set<Map<String, Set<String>>> erm = geneset.clusterMap.get(set); if (set.contains(spc1)) { if (set.size() < geneset.specList.size()) { spc1totwocore += erm.size(); for (Map<String, Set<String>> sm : erm) { Set<String> hset = sm.get(spc1); tototwocore += hset.size(); } if (set.contains(spc2)) { spc2totwocore += erm.size(); } if (spc2totwocore > spc1totwocore) System.err.println( "okoko " + spc1totwocore + " " + spc2totwocore); } spc1tot += erm.size(); for (Map<String, Set<String>> sm : erm) { Set<String> hset = sm.get(spc1); totot += hset.size(); } if (set.contains(spc2)) { spc2tot += erm.size(); } } } if (where == wherex) { if (where == geneset.specList.size() - 1) ret.append(0 + "\n"); else ret.append(0 + "\t"); } else { double hlut = (double) spc2totwocore / (double) spc1totwocore; double sval = hlut; // 1.0/( 1.1-hlut ); double val = Math.pow(50.0, sval - 0.3) - 1.0; double dval = Math.round(100.0 * (val)) / 100.0; if (wherex == geneset.specList.size() - 1) ret.append(dval + "\n"); else ret.append(dval + "\t"); } wherex++; } where++; } return new ByteArrayInputStream(ret.toString().getBytes()); } @Override public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { df }; } @Override public boolean isDataFlavorSupported(DataFlavor arg0) { if (arg0.equals(df)) { return true; } return false; } }; final TransferComponent comp2 = new TransferComponent(bimg, transferable); TransferHandler th = new TransferHandler() { private static final long serialVersionUID = 1L; public int getSourceActions(JComponent c) { return TransferHandler.COPY_OR_MOVE; } public boolean canImport(TransferSupport support) { return false; } protected Transferable createTransferable(JComponent c) { return transferable; } public boolean importData(TransferSupport support) { return true; } }; comp2.setTransferHandler(th); comp2.setEnabled(true); JScrollPane fsc = new JScrollPane(comp2); comp2.setPreferredSize(new Dimension(bimg.getWidth(), bimg.getHeight())); JPopupMenu popup = new JPopupMenu(); popup.add(new AbstractAction("Save image") { @Override public void actionPerformed(ActionEvent e) { FileSaveService fss = null; FileContents fileContents = null; try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(baos); ImageIO.write(bimg, "png", baos); baos.close(); try { fss = (FileSaveService) ServiceManager.lookup("javax.jnlp.FileSaveService"); } catch (UnavailableServiceException e1) { fss = null; } if (fss != null) { ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); fileContents = fss.saveFileDialog(null, null, bais, "export.png"); bais.close(); OutputStream os = fileContents.getOutputStream(true); os.write(baos.toByteArray()); os.close(); } else { JFileChooser jfc = new JFileChooser(); if (jfc.showSaveDialog(GeneSetHead.this) == JFileChooser.APPROVE_OPTION) { File f = jfc.getSelectedFile(); FileOutputStream fos = new FileOutputStream(f); fos.write(baos.toByteArray()); fos.close(); Desktop.getDesktop().browse(f.toURI()); } } } catch (IOException e2) { e2.printStackTrace(); } } }); comp2.setComponentPopupMenu(popup); f.add(fsc); f.setVisible(true); } catch (ClassNotFoundException e1) { e1.printStackTrace(); } }); }); MenuItem tniaction = new MenuItem("TNI/ANI"); tniaction.setOnAction(actionEvent -> { SwingUtilities.invokeLater(() -> { Set<String> species = getSelspec(GeneSetHead.this, geneset.specList); String makeblastdb = "makeblastdb"; String OS = System.getProperty("os.name").toLowerCase(); if (OS.indexOf("mac") != -1) makeblastdb = "/usr/local/bin/makeblastdb"; for (String spec : species) { List<Sequence> lseq = geneset.speccontigMap.get(spec); ProcessBuilder pb = new ProcessBuilder(makeblastdb, "-dbtype", "nucl", "-title", spec, "-out", spec); File dir = new File(System.getProperty("user.home")); /*try { FileWriter w = new FileWriter( new File(dir, spec+".fna") ); for( Sequence seq : lseq ) { seq.writeSequence(w); } w.close(); } catch (IOException e2) { e2.printStackTrace(); }*/ pb.directory(dir); try { Process p = pb.start(); Writer fw = new OutputStreamWriter(p.getOutputStream()); for (Sequence seq : lseq) { seq.writeSequence(fw); } fw.close(); } catch (IOException e1) { e1.printStackTrace(); } } int y = 0; double[] matrix = new double[species.size() * species.size()]; for (String dbspec : species) { int x = 0; for (String spec : species) { //if( !spec.equals(dbspec) ) { final List<Sequence> lseq = geneset.speccontigMap.get(spec); String blastn = "blastn"; if (OS.indexOf("mac") != -1) blastn = "/usr/local/bin/blastn"; ProcessBuilder pb = new ProcessBuilder(blastn, "-db", dbspec, "-num_threads", Integer.toString(Runtime.getRuntime().availableProcessors()), "-num_alignments", "1", "-num_descriptions", "1"); //,"-max_hsps","1"); File dir = new File(System.getProperty("user.home")); pb.directory(dir); try { Process p = pb.start(); final BufferedWriter fw = new BufferedWriter( new OutputStreamWriter(p.getOutputStream())); Thread t = new Thread() { public void run() { try { for (Sequence seq : lseq) { seq.writeSplitSequence(fw); //seq.writeSequence(fw); } fw.close(); } catch (IOException e1) { e1.printStackTrace(); } } }; t.start(); //Path path = Paths.get("/Users/sigmar/"+spec+"_"+dbspec+".blastout"); //Files.copy(p.getInputStream(), path, StandardCopyOption.REPLACE_EXISTING); int tnum = 0; int tdenum = 0; double avg = 0.0; int count = 0; BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = br.readLine(); while (line != null) { if (line.startsWith(" Identities")) { int i = line.indexOf('('); String sub = line.substring(14, i - 1); String[] split = sub.split("/"); int num = Integer.parseInt(split[0]); int denum = Integer.parseInt(split[1]); avg += (double) num / (double) denum; tnum += num; tdenum += denum; count++; } line = br.readLine(); } br.close(); if (count > 0) avg /= count; double val = (double) tnum / (double) tdenum; matrix[y * species.size() + x] = avg;//val; System.err.println(spec + " on " + dbspec + " " + val); } catch (IOException e1) { e1.printStackTrace(); } //} x++; } y++; } geneset.corrInd.clear(); for (String spec : species) { geneset.corrInd.add(geneset.nameFix(spec)); } final BufferedImage bi = geneset.showRelation(geneset.corrInd, matrix, false); JFrame f = new JFrame("TNI matrix"); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setSize(500, 500); JComponent comp2 = new JComponent() { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(bi, 0, 0, bi.getWidth(), bi.getHeight(), 0, 0, bi.getWidth(), bi.getHeight(), this); } }; Dimension dim = new Dimension(bi.getWidth(), bi.getHeight()); comp2.setPreferredSize(dim); comp2.setSize(dim); JScrollPane scroll = new JScrollPane(comp2); f.add(scroll); f.setVisible(true); }); }); MenuItem anitreeaction = new MenuItem("ANI tree"); anitreeaction.setOnAction(actionEvent -> { Set<String> species = getSelspec(GeneSetHead.this, geneset.specList); List<String> speclist = new ArrayList<String>(species); Collection<GeneGroup> allgg = new HashSet<GeneGroup>(); allgg.addAll(table.getSelectionModel().getSelectedItems()); if (allgg.isEmpty()) allgg = geneset.allgenegroups; Map<String, Integer> blosumap = JavaFasta.getBlosumMap(); double[] corrarr = new double[speclist.size() * speclist.size()]; int where = 0; for (String spec1 : speclist) { int wherex = 0; String spc1 = geneset.nameFix(spec1); //String spc1 = nameFix( spec1 ); for (String spec2 : speclist) { if (where != wherex) { int totalscore = 0; int totaltscore = 1; for (GeneGroup gg : allgg) { if ( /*gg.getSpecies().size() > 40 &&*/ gg.getSpecies().contains(spec1) && gg.getSpecies().contains(spec2)) { Teginfo ti1 = gg.species.get(spec1); Teginfo ti2 = gg.species.get(spec2); //if( ti1.tset.size() == 1 && ti2.tset.size() == 1 ) { //double bval = 0.0; int score = 0; int tscore = 1; for (Tegeval tv1 : ti1.tset) { for (Tegeval tv2 : ti2.tset) { Sequence seq1 = tv1.getAlignedSequence(); Sequence seq2 = tv2.getAlignedSequence(); if (seq1 != null && seq2 != null) { int mest = 0; int tmest = 0; int startcheck = 0; int start = -1; int stopcheck = 0; int stop = -1; for (int i = 0; i < seq1.length(); i++) { if (seq1.getCharAt(i) != '-') { startcheck |= 1; } if (seq2.getCharAt(i) != '-') { startcheck |= 2; } if (start == -1 && startcheck == 3) { start = i; break; } } for (int i = seq1.length() - 1; i >= 0; i--) { if (seq1.getCharAt(i) != '-') { stopcheck |= 1; } if (seq2.getCharAt(i) != '-') { stopcheck |= 2; } if (stop == -1 && stopcheck == 3) { stop = i + 1; break; } } //count += stop-start; for (int i = start; i < stop; i++) { char lc = seq1.getCharAt(i); char c = Character.toUpperCase(lc); //if( ) String comb = c + "" + c; if (blosumap.containsKey(comb)) tmest += blosumap.get(comb); } for (int i = start; i < stop; i++) { char lc = seq1.getCharAt(i); char c = Character.toUpperCase(lc); char lc2 = seq2.getCharAt(i); char c2 = Character.toUpperCase(lc2); String comb = c + "" + c2; if (blosumap.containsKey(comb)) mest += blosumap.get(comb); } double tani = (double) mest / (double) tmest; if (tani > (double) score / (double) tscore) { score = mest; tscore = tmest; } //ret = (double)score/(double)tscore; //int cval = tscore == 0 ? 0 : Math.min( 192, 512-score*512/tscore ); //return ret; } //if( where == 0 ) d1.add( gg.getCommonName() ); //else d2.add( gg.getCommonName() ); } } totalscore += score; totaltscore += tscore; /*if( bval > 0 ) { ani += bval; count++; }*/ //} } } double ani = (double) (totaltscore - totalscore) / (double) totaltscore; corrarr[where * speclist.size() + wherex] = ani; } wherex++; } where++; } TreeUtil tu = new TreeUtil(); geneset.corrInd.clear(); for (String spec : speclist) { geneset.corrInd.add(geneset.nameFix(spec)); } Node n = tu.neighborJoin(corrarr, geneset.corrInd, null, false, false); System.err.println(n); }); windowmenu.getItems().add(specorderaction); windowmenu.getItems().add(matrixaction); windowmenu.getItems().add(tniaction); windowmenu.getItems().add(anitreeaction); MenuItem neighbourhood = new MenuItem("Neighbourhood"); neighbourhood.setOnAction(actionEvent -> { try { Set<GeneGroup> genset = new HashSet<>(); if (!isGeneview()) { for (GeneGroup gg : table.getSelectionModel().getSelectedItems()) { genset.add(gg); } } else { for (Gene gene : gtable.getSelectionModel().getSelectedItems()) { genset.add(gene.getGeneGroup()); } } new Neighbour(genset).neighbourMynd(GeneSetHead.this, comp, geneset.genelist, geneset.contigmap); } catch (IOException e1) { e1.printStackTrace(); } }); windowmenu.getItems().add(neighbourhood); MenuItem synteny = new MenuItem("Synteny"); synteny.setOnAction(actionEvent -> { SwingUtilities.invokeLater(() -> { //Set<String> species = speciesFromCluster( clusterMap ); new Synteni().syntenyMynd(GeneSetHead.this, comp, geneset.genelist); }); }); windowmenu.getItems().add(synteny); MenuItem compareplotaction = new MenuItem("Gene atlas"); compareplotaction.setOnAction(actionEvent -> { SwingUtilities.invokeLater(() -> { try { new GeneCompare().comparePlot(GeneSetHead.this, comp, geneset.genelist, geneset.clusterMap, 8192, 8192); } catch (IOException e1) { e1.printStackTrace(); } }); /*gatest("MAT4726"); final JFrame frame = new JFrame(); frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); frame.setSize(800, 600); final JComponent c = new JComponent() { public void paintComponent( Graphics g ) { g.drawImage(bimg, 0, 0, frame); } }; c.setPreferredSize( new Dimension(bimg.getWidth(), bimg.getHeight()) ); JScrollPane scrollpane = new JScrollPane( c ); frame.add( scrollpane ); frame.setVisible( true );*/ }); windowmenu.getItems().add(compareplotaction); MenuItem syntenygradientaction = new MenuItem("Synteny gradient"); syntenygradientaction.setOnAction(actionEvent -> { SwingUtilities.invokeLater(() -> { Set<String> presel = new HashSet<>(); if (isGeneview()) { for (Gene g : gtable.getSelectionModel().getSelectedItems()) { presel.addAll(g.getGeneGroup().getSpecies()); } } else { for (GeneGroup gg : table.getSelectionModel().getSelectedItems()) { presel.addAll(gg.getSpecies()); } } new SyntGrad().syntGrad(GeneSetHead.this, 4096, 4096, presel); }); }); windowmenu.getItems().add(syntenygradientaction); MenuItem genexyplotaction = new MenuItem("Gene XY plot"); genexyplotaction.setOnAction(actionEvent -> SwingUtilities.invokeLater( () -> new XYPlot().xyPlot(GeneSetHead.this, comp, geneset.genelist, geneset.clusterMap))); windowmenu.getItems().add(genexyplotaction); MenuItem refalignaction = new MenuItem("Reference align"); refalignaction.setOnAction(actionEvent -> { SwingUtilities.invokeLater(() -> { final TableView<Gene> table12 = getGeneTable(); final Collection<String> specset = geneset.getSpecies(); //speciesFromCluster( clusterMap ); final List<String> species = new ArrayList<>(specset); TableModel model = new TableModel() { @Override public int getRowCount() { return species.size(); } @Override public int getColumnCount() { return 1; } @Override public String getColumnName(int columnIndex) { return null; } @Override public Class<?> getColumnClass(int columnIndex) { return String.class; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Object getValueAt(int rowIndex, int columnIndex) { return geneset.nameFix(species.get(rowIndex)); } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { } @Override public void addTableModelListener(TableModelListener l) { } @Override public void removeTableModelListener(TableModelListener l) { } }; JTable table1 = new JTable(model); JTable table2 = new JTable(model); table1.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table2.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); JScrollPane scroll1 = new JScrollPane(table1); JScrollPane scroll2 = new JScrollPane(table2); FlowLayout flowlayout = new FlowLayout(); JComponent c = new JComponent() { }; c.setLayout(flowlayout); c.add(scroll1); c.add(scroll2); JOptionPane.showMessageDialog(comp, c); int r = table1.getSelectedRow(); int i = table1.convertRowIndexToModel(r); String spec = i == -1 ? null : species.get(i); List<Sequence> lcont = geneset.speccontigMap.get(spec); r = table2.getSelectedRow(); i = table2.convertRowIndexToModel(r); String refspec = i == -1 ? null : species.get(i); List<Sequence> lrefcont = geneset.speccontigMap.get(spec); /*ByteArrayOutputStream baos = new ByteArrayOutputStream(); Writer fw = new OutputStreamWriter( baos ); try { List<Sequence> lcont = geneset.speccontigMap.get(spec); for( Sequence seq : lcont ) { seq.writeSequence(fw); } fw.close(); } catch (IOException e1) { e1.printStackTrace(); } String comp = spec; byte[] bb = baos.toByteArray();*/ FlxReader flx = new FlxReader(); Map<String, String> env = new HashMap<String, String>(); env.put("create", "true"); //String uristr = "jar:" + geneset.zippath.toUri(); //URI geneset.zipuri = URI.create( uristr /*.replace("file://", "file:")*/ ); try { geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); for (Path root : geneset.zipfilesystem.getRootDirectories()) { Path subf = root.resolve(spec + ".grp"); if (Files.exists(subf)) { BufferedReader br = Files.newBufferedReader(subf); Map<String, Map<String, String>> mm = flx.loadContigGraph(br); br.close(); String home = System.getProperty("user.home") + "/"; StringBuilder sb = comp != null ? flx.referenceAssembly(home, spec, refspec, lrefcont, lcont) : null; Sequence cseq = new Sequence(spec + "_chromosome", null); if (sb != null && sb.length() > 0) { br = new BufferedReader(new StringReader(sb.toString())); } else { Path sca = root.resolve(spec + ".csc"); if (!Files.exists(sca)) { sca = root.resolve(spec + ".sca"); } br = Files.newBufferedReader(sca); } //br = new BufferedReader( fr ); flx.connectContigs(br, cseq, false, new FileWriter(home + spec + "_new.fna"), spec); br.close(); } break; } } catch (Exception ex) { ex.printStackTrace(); } finally { try { geneset.zipfilesystem.close(); } catch (IOException ie) { ie.printStackTrace(); } ; } }); //flx.start( f.getParentFile().getAbsolutePath()+"/", f.getName(), false, fw, comp, bb); }); windowmenu.getItems().add(refalignaction); windowmenu.getItems().add(new SeparatorMenuItem()); MenuItem runantismash = new MenuItem("Run antismash"); runantismash.setOnAction(actionEvent -> SwingUtilities.invokeLater(new Runnable() { public void run() { try { Serifier ser = new Serifier(); Set<String> selspec = getSelspec(null, geneset.getSpecies(), null); JTextField host = new JTextField("localhost"); JOptionPane.showMessageDialog(null, host); String username = System.getProperty("user.name"); String hostname = host.getText(); /*Path[] pt = null; JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY ); if( fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION ) { pt = new Path[3]; pt[2] = fc.getSelectedFile().toPath(); }*/ List<Object> commands = new ArrayList<Object>(); //commands.add(genexyplotaction) for (String spec : selspec) { Path pp = Paths.get(userhome); Path p = pp.resolve(spec + ".gbk"); //BufferedWriter fw = Files.newBufferedWriter( p ); List<Sequence> clist = geneset.speccontigMap.get(spec); Map<String, List<Annotation>> mapan = new HashMap<String, List<Annotation>>(); Serifier serifier = new Serifier(); for (Sequence c : clist) { serifier.addSequence(c); serifier.mseq.put(c.getName(), c); List<Annotation> lann = new ArrayList<Annotation>(); if (c.getAnnotations() != null) for (Annotation ann : c.getAnnotations()) { Tegeval tv = (Tegeval) ann; Gene g = tv.getGene(); GeneGroup gg = g.getGeneGroup(); String name = g.getName(); if (gg != null && name.contains(spec)) { name = gg.getName(); } Annotation anno = new Annotation(c, tv.start, tv.stop, tv.ori, name); anno.id = tv.getGene().getId(); anno.type = "CDS"; String cazy = gg != null ? gg.getCommonCazy(geneset.cazymap) : null; if (cazy != null) anno.addDbRef("CAZY:" + cazy); lann.add(anno); } mapan.put(c.getName(), lann); } Sequences s = new Sequences(null, spec, "nucl", null, clist.size()); //serifier.addSequences(seqs); serifier.writeGenebank(p, false, true, s, mapan); //fw.close(); String apath = p.toAbsolutePath().toString(); if (hostname.equals("localhost")) { String[] cmds = { "run_antismash", apath }; //commands.add( pt ); commands.add(Arrays.asList(cmds)); } else { String aname = p.getFileName().toString(); String adir = aname.substring(0, aname.length() - 4); String cyghome = NativeRun.cygPath(userhome); String[] cmds = { "scp", apath, hostname + ":~", ";", "ssh", hostname, "run_antismash", aname, ";", "scp", "-r", hostname + ":~/" + adir, cyghome };//userhome+"~"}; //commands.add( pt ); commands.add(Arrays.asList(cmds)); } } Runnable run = new Runnable() { @Override public void run() { for (String spec : selspec) { Path p = Paths.get(userhome, spec); Map<String, String> env = new HashMap<String, String>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); URI zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); final List<Path> lbi = new ArrayList<Path>(); try { geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); for (Path root : geneset.zipfilesystem.getRootDirectories()) { Path specdir = root; Files.walkFileTree(p, new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { final Path destFile = Paths.get(specdir.toString(), file.toString()); //System.out.printf("Extracting file %s to %s\n", file, destFile); Files.copy(file, destFile, StandardCopyOption.REPLACE_EXISTING); return FileVisitResult.CONTINUE; } @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { String specdirstr = specdir.toString(); String dirstr = dir.toString(); final Path dirToCreate = specdir .resolve(dirstr.substring(userhome.length() + 1)); if (Files.notExists(dirToCreate)) { System.out.printf("Creating directory %s\n", dirToCreate); Files.createDirectory(dirToCreate); } return FileVisitResult.CONTINUE; } }); break; } URI uri = new URI("file://" + userhome + "/" + spec + "/index.html"); Desktop.getDesktop().browse(uri); } catch (Exception ex) { ex.printStackTrace(); } finally { try { geneset.zipfilesystem.close(); } catch (Exception e) { e.printStackTrace(); } ; } } } }; NativeRun nr = new NativeRun(run); nr.runProcessBuilder("antismash", commands, new Object[3], false, run, false); } catch (IOException e1) { e1.printStackTrace(); } } })); windowmenu.getItems().add(runantismash); MenuItem runsignalp = new MenuItem("Run signalP"); runsignalp.setOnAction(actionEvent -> SwingUtilities.invokeLater(new Runnable() { public void run() { try { Serifier ser = new Serifier(); Set<String> selspec = getSelspec(null, geneset.getSpecies(), null); JTextField host = new JTextField("localhost"); JOptionPane.showMessageDialog(null, host); String username = System.getProperty("user.name"); String hostname = host.getText(); /*Path[] pt = null; JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY ); if( fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION ) { pt = new Path[3]; pt[2] = fc.getSelectedFile().toPath(); }*/ List<Object> commands = new ArrayList<Object>(); //commands.add(genexyplotaction) try { Map<String, String> env = new HashMap<String, String>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); URI zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); for (Path root : geneset.zipfilesystem.getRootDirectories()) { for (String spec : selspec) { /*Path specdir = root.resolve(spec+".prodigal.fsa"); if( !Files.exists(specdir) ) { if( spec.startsWith("MAT") ) { specdir = root.resolve(spec+".gbk.aa"); } else specdir = root.resolve("fn_"+spec+"_scaffolds.prodigal.fsa"); }*/ Stream<Gene> genestream = geneset.genelist.stream() .filter(gene -> spec.equals(gene.getSpecies()) && (gene.tegeval.type == null || gene.tegeval.type.length() == 0)); Path sigout = root.resolve(spec + ".signalp"); Path[] pt = new Path[] { null, sigout, null }; if (hostname.equals("localhost")) { String[] cmds = { "signalp", "-t", "gram-", "-" }; commands.add(pt); commands.add(Arrays.asList(cmds)); } else { Path p = Paths.get(spec + ".signalp"); BufferedWriter bw = Files.newBufferedWriter(p, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE); genestream.forEachOrdered(gene -> { try { gene.writeGeneIdFasta(bw); } catch (Exception e1) { e1.printStackTrace(); } }); bw.close(); //Files.copy(specdir, p, StandardCopyOption.REPLACE_EXISTING); String[] cmds = { "scp", spec + ".signalp", hostname + ":~", ";", "ssh", hostname, "signalp", "-t", "gram-", spec + ".signalp" }; //String[] cmds = {"ssh",hostname,"signalp","-t","gram-","-"}; commands.add(pt); commands.add(Arrays.asList(cmds)); } } break; } } catch (Exception ex) { ex.printStackTrace(); } Runnable run = new Runnable() { @Override public void run() { try { geneset.zipfilesystem.close(); } catch (Exception e) { e.printStackTrace(); } ; } }; NativeRun nr = new NativeRun(run); nr.runProcessBuilder("signalp", commands, new Object[3], false, run, false); } catch (IOException e1) { e1.printStackTrace(); } } })); windowmenu.getItems().add(runsignalp); MenuItem runtransm = new MenuItem("Run TransM"); runtransm.setOnAction(actionEvent -> SwingUtilities.invokeLater(new Runnable() { public void run() { try { Serifier ser = new Serifier(); Set<String> selspec = getSelspec(null, geneset.getSpecies(), null); JTextField host = new JTextField("localhost"); JOptionPane.showMessageDialog(null, host); String username = System.getProperty("user.name"); String hostname = host.getText(); /*Path[] pt = null; JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY ); if( fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION ) { pt = new Path[3]; pt[2] = fc.getSelectedFile().toPath(); }*/ List<Object> commands = new ArrayList<>(); //commands.add(genexyplotaction) try { Map<String, String> env = new HashMap<>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); URI zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); for (Path root : geneset.zipfilesystem.getRootDirectories()) { for (String spec : selspec) { /*Path specdir = root.resolve(spec+".prodigal.fsa"); if( !Files.exists(specdir) ) { if( spec.startsWith("MAT") ) { specdir = root.resolve(spec+".gbk.aa"); } else specdir = root.resolve("fn_"+spec+"_scaffolds.prodigal.fsa"); }*/ Stream<Gene> genestream = geneset.genelist.stream() .filter(gene -> spec.equals(gene.getSpecies()) && (gene.tegeval.type == null || gene.tegeval.type.length() == 0)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(baos)); genestream.forEach(gene -> { try { gene.writeGeneIdFasta(bw); } catch (Exception e1) { e1.printStackTrace(); } }); bw.close(); baos.close(); String seqs = baos.toString(); seqs = seqs.replace('*', 'X'); byte[] bb = seqs.getBytes(); Path sigout = root.resolve(spec + ".tm"); Object[] pt = new Object[] { bb, sigout, null }; if (hostname.equals("localhost")) { String[] cmds = { "decodeanhmm", "-f", "/opt/tmhmm-2.0c/lib/TMHMM2.0.options", "-modelfile", "/opt/tmhmm-2.0c/lib/TMHMM2.0.model" }; commands.add(pt); commands.add(Arrays.asList(cmds)); } else { //Path p = Paths.get(spec+".tm"); //Files.copy(specdir, p, StandardCopyOption.REPLACE_EXISTING); String[] cmds = { "ssh", hostname, "decodeanhmm", "-f", "/opt/tmhmm-2.0c/lib/TMHMM2.0.options", "-modelfile", "/opt/tmhmm-2.0c/lib/TMHMM2.0.model" }; commands.add(pt); commands.add(Arrays.asList(cmds)); } } break; } } catch (Exception ex) { ex.printStackTrace(); } Runnable run = () -> { try { geneset.zipfilesystem.close(); } catch (Exception e) { e.printStackTrace(); } ; }; NativeRun nr = new NativeRun(run); nr.runProcessBuilder("transm", commands, new Object[3], false, run, false); } catch (IOException e1) { e1.printStackTrace(); } } })); windowmenu.getItems().add(runtransm); MenuItem runtrnascan = new MenuItem("tRNAscan"); runtrnascan.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> { try { Serifier ser = new Serifier(); Set<String> selspec = getSelspec(null, geneset.getSpecies(), null); JTextField host = new JTextField("localhost"); JOptionPane.showMessageDialog(null, host); String username = System.getProperty("user.name"); String hostname = host.getText(); /*Path[] pt = null; JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY ); if( fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION ) { pt = new Path[3]; pt[2] = fc.getSelectedFile().toPath(); }*/ List<Object> commands = new ArrayList<>(); //commands.add(genexyplotaction) try { Map<String, String> env = new HashMap<>(); env.put("create", "true"); String uristr = "jar:" + geneset.zippath.toUri(); URI zipuri = URI.create(uristr /*.replace("file://", "file:")*/ ); geneset.zipfilesystem = FileSystems.newFileSystem(geneset.zipuri, env); for (Path root : geneset.zipfilesystem.getRootDirectories()) { for (String spec : selspec) { Path specdir = root.resolve(spec + ".fna"); if (!Files.exists(specdir)) { if (spec.startsWith("MAT")) { specdir = root.resolve(spec + ".gbk.fna"); } else specdir = root.resolve("fn_" + spec + "_scaffolds.fastg"); } System.err.println(Files.exists(specdir)); Path sigout = root.resolve("trnas.txt"); if (hostname.equals("localhost1")) { Path[] pt = new Path[] { specdir, sigout, null }; String[] cmds = { "/usr/local/bin/tRNAscan-SE", "-B", "-" }; commands.add(pt); commands.add(Arrays.asList(cmds)); } else { Path[] pt = new Path[] { null, sigout, null }; Path p = Paths.get(spec + ".trnascan"); Files.copy(specdir, p, StandardCopyOption.REPLACE_EXISTING); List<String> lcmd; if (hostname.equals("localhost")) { //String[] cmds = {"/usr/local/bin/trnascan-1.4", spec + ".trnascan"}; String[] cmds = { "/usr/local/bin/tRNAscan-SE", "-B", spec + ".trnascan" }; lcmd = Arrays.asList(cmds); } else { String[] cmds = { "scp", spec + ".trnascan", hostname + ":~", ";", "ssh", hostname, "trnascan-1.4", spec + ".trnascan" }; lcmd = Arrays.asList(cmds); //String[] cmds = {"ssh",hostname,"tRNAscan-SE","-B","-"}; } commands.add(pt); commands.add(lcmd); } } break; } } catch (Exception ex) { ex.printStackTrace(); } Runnable run = () -> { try { geneset.zipfilesystem.close(); } catch (Exception e) { e.printStackTrace(); } ; }; NativeRun nr = new NativeRun(run); nr.runProcessBuilder("tRNAscan", commands, new Object[3], false, run, false); } catch (IOException e1) { e1.printStackTrace(); } })); windowmenu.getItems().add(runtrnascan); Menu select = new Menu("Select"); MenuItem breakpointselAction = new MenuItem("Select breakpoints"); breakpointselAction.setOnAction(actionEvent -> { String spec = syncolorcomb.getSelectionModel().getSelectedItem(); int rr = 0; for (Gene g : geneset.genelist) { if (!spec.equals(g.getSpecies()) && g.getSpecies().contains("eggert")) { Tegeval tv2 = g.tegeval; Annotation n2 = tv2.getNext(); Annotation p2 = tv2.getPrevious(); GeneGroup gg = g.getGeneGroup(); if (gg.getName().contains("rhodane")) { System.err.println(); } Teginfo ti = gg.getGenes(spec); int msimcount = 0; if (ti != null) { for (Tegeval tv1 : ti.tset) { int simcount = 0; Annotation n = tv1.getNext(); Annotation p = tv1.getPrevious(); GeneGroup ggg = tv1.getGene().getGeneGroup(); if (n2 != null) { if (ggg == n2.getGene().getGeneGroup()) { simcount++; } Annotation nn2 = n2.getNext(); if (nn2 != null) { if (ggg == nn2.getGene().getGeneGroup()) { simcount++; } } } if (p2 != null) { if (ggg == p2.getGene().getGeneGroup()) { simcount++; } Annotation pp2 = p2.getPrevious(); if (pp2 != null) { if (ggg == pp2.getGene().getGeneGroup()) { simcount++; } } } if (n != null) { GeneGroup ngg = n.getGene().getGeneGroup(); if (ngg == tv2.getGene().getGeneGroup()) { simcount++; } if (n2 != null) { if (ngg == n2.getGene().getGeneGroup()) { simcount++; } } if (p2 != null) { if (ngg == p2.getGene().getGeneGroup()) { simcount++; } } Annotation nn = n.getNext(); if (nn != null) { ngg = nn.getGene().getGeneGroup(); if (ngg == tv2.getGene().getGeneGroup()) { simcount++; } if (n2 != null) { if (ngg == n2.getGene().getGeneGroup()) { simcount++; } } if (p2 != null) { if (ngg == p2.getGene().getGeneGroup()) { simcount++; } } } } if (p != null) { GeneGroup pgg = p.getGene().getGeneGroup(); if (pgg == tv2.getGene().getGeneGroup()) { simcount++; } if (n2 != null) { if (pgg == n2.getGene().getGeneGroup()) { simcount++; } } if (p2 != null) { if (pgg == p2.getGene().getGeneGroup()) { simcount++; } } Annotation pp = p.getPrevious(); if (pp != null) { pgg = pp.getGene().getGeneGroup(); if (pgg == tv2.getGene().getGeneGroup()) { simcount++; } if (n2 != null) { if (pgg == n2.getGene().getGeneGroup()) { simcount++; } } if (p2 != null) { if (pgg == p2.getGene().getGeneGroup()) { simcount++; } } } } //double rat = GeneCompare.invertedGradientRatio(spec, contigs, -1.0, gg, tv); if (simcount >= msimcount) { //tv = tv1; msimcount = simcount; } //double ratio = GeneCompare.invertedGradientRatio(spec, contigs, -1.0, gg, tv); //GeneCompare.gradientColor(); } if (msimcount < 2) { gtable.getSelectionModel().select(g); } } } rr++; } /*List<Sequence> contigs = geneset.speccontigMap.get( spec ); for( Sequence c : contigs ) { for( Annotation ann : c.annset ) { Tegeval tv = (Tegeval)ann; } }*/ }); MenuItem saveselAction = new MenuItem("Save selection"); saveselAction.setOnAction(actionEvent -> { /*int[] rr = table.getSelectedRows(); if( rr.length > 0 ) { String val = Integer.toString( table.convertRowIndexToModel(rr[0]) ); for( int i = 1; i < rr.length; i++ ) { val += ","+table.convertRowIndexToModel(rr[i]); } String selname = JOptionPane.showInputDialog("Selection name"); if( comp instanceof Applet ) { try { ((GeneSetHead)comp).saveSel( selname, val); } catch (Exception e1) { e1.printStackTrace(); } } }*/ }); select.getItems().add(breakpointselAction); select.getItems().add(saveselAction); select.getItems().add(new SeparatorMenuItem()); MenuItem showall = new MenuItem("Show all"); showall.setOnAction(actionEvent -> { genefilterset.clear(); updateFilter(table, label); }); select.getItems().add(showall); MenuItem croptosel = new MenuItem("Crop to selection"); croptosel.setOnAction(actionEvent -> { Set<GeneGroup> selitems = new HashSet<>(table.getSelectionModel().getSelectedItems()); filteredData.setPredicate(p -> selitems.contains(p)); }); select.getItems().add(croptosel); MenuItem croptoinvsel = new MenuItem("Crop to inverted selection"); croptoinvsel.setOnAction(actionEvent -> { genefilterset.clear(); for (int i = 0; i < table.getItems().size(); i++) { if (!table.getSelectionModel().isSelected(i)) { genefilterset.add(i); } } updateFilter(table, label); }); select.getItems().add(croptoinvsel); MenuItem removesel = new MenuItem("Remove selection"); removesel.setOnAction(actionEvent -> { // genefilterset.clear(); //int[] rr = table.getSelectedRows(); if (genefilterset.isEmpty()) { Set<Integer> ii = new HashSet<Integer>(); for (int r : table.getSelectionModel().getSelectedIndices()) ii.add(r); for (int i = 0; i < geneset.genelist.size(); i++) { if (!ii.contains(i)) genefilterset.add(i); } } else { for (int r : table.getSelectionModel().getSelectedIndices()) { //int mr = table.convertRowIndexToModel(r); genefilterset.remove(r); } } updateFilter(table, label); }); select.getItems().add(removesel); MenuItem invsel = new MenuItem("Invert selection"); invsel.setOnAction(actionEvent -> { ObservableList<GeneGroup> selitems = table.getSelectionModel().getSelectedItems(); List<GeneGroup> newsel = new ArrayList<>(filteredData); newsel.removeAll(selitems); table.getSelectionModel().clearSelection(); newsel.stream().forEach(gg -> table.getSelectionModel().select(gg)); // genefilterset.clear(); //int[] rr = table.getSelectedRows(); /*Set<Integer> iset = new HashSet<>(); for( int r : table.getSelectionModel().getSelectedIndices() ) { iset.add( r ); } table.getSelectionModel().clearSelection(); for (int r = 0; r < table.getItems().size(); r++) { if( !iset.contains(r) ) table.getSelectionModel().select(r); /*if (table.isRowSelected(r)) table.removeRowSelectionInterval(r, r); else table.addRowSelectionInterval(r, r); }*/ }); select.getItems().add(invsel); //select.addSeparator(); select.getItems().add(new SeparatorMenuItem()); MenuItem selsinglemult = new MenuItem("Select single copy genes found in multiple strains"); selsinglemult.setOnAction(actionEvent -> { Set<String> specset = getSelspec(GeneSetHead.this, geneset.specList); for (GeneGroup gg : geneset.allgenegroups) { Set<String> checkspec = new HashSet<String>(gg.species.keySet()); checkspec.retainAll(specset); if (gg.getCommonTag() == null && checkspec.size() > 1 && gg.getTegevals().size() == gg.species.size()) {//gg.getTegevals(checkspec).size() == checkspec.size() ) { table.getSelectionModel().select(gg); //table.setro } } }); select.getItems().add(selsinglemult); MenuItem selsinglemultstrain = new MenuItem( "Select single copy genes in accessory genome of multiple strains"); selsinglemultstrain.setOnAction(actionEvent -> { Set<String> specset = getSelspec(GeneSetHead.this, geneset.specList); for (GeneGroup gg : geneset.allgenegroups) { Set<String> checkspec = new HashSet<String>(gg.species.keySet()); checkspec.retainAll(specset); if (gg.getCommonTag() == null && checkspec.size() > 1 && checkspec.size() < specset.size() && gg.getTegevals().size() == gg.species.size()) {//gg.getTegevals(checkspec).size() == checkspec.size() ) { table.getSelectionModel().select(gg); //table.setro } } }); select.getItems().add(selsinglemultstrain); MenuItem selsinglecopygenes = new MenuItem("Select single copy genes"); selsinglecopygenes.setOnAction(actionEvent -> { Set<String> specset = getSelspec(GeneSetHead.this, geneset.specList); for (GeneGroup gg : geneset.allgenegroups) { if (gg.getTegevals().size() == gg.species.size()) { table.getSelectionModel().select(gg); //table.setro } } }); select.getItems().add(selsinglecopygenes); MenuItem selduplgenes = new MenuItem("Select duplicated genes"); selduplgenes.setOnAction(actionEvent -> { for (GeneGroup gg : geneset.allgenegroups) { int cnt = 0; for (String spec : gg.species.keySet()) { Teginfo ti = gg.species.get(spec); if (ti.tset.size() == 2) { List<Tegeval> ta = new ArrayList<Tegeval>(ti.tset); if (ta.get(0).getNext() == ta.get(1) || ta.get(0).getPrevious() == ta.get(1)) cnt++; } } if ((float) cnt / (float) gg.species.size() > 0.7) { table.getSelectionModel().select(gg); } } }); select.getItems().add(selduplgenes); MenuItem seltriplgenes = new MenuItem("Select triplicated genes"); seltriplgenes.setOnAction(actionEvent -> { for (GeneGroup gg : geneset.allgenegroups) { int cnt = 0; for (String spec : gg.species.keySet()) { Teginfo ti = gg.species.get(spec); if (ti.tset.size() == 3) { List<Tegeval> ta = new ArrayList<Tegeval>(ti.tset); if ((ta.get(0).getNext() == ta.get(1) || ta.get(0).getPrevious() == ta.get(1)) && (ta.get(1).getNext() == ta.get(2) || ta.get(1).getPrevious() == ta.get(2))) cnt++; } } if ((float) cnt / (float) gg.species.size() > 0.7) { table.getSelectionModel().select(gg); } } }); select.getItems().add(seltriplgenes); MenuItem selplasmidgenes = new MenuItem("Select plasmid genes"); selplasmidgenes.setOnAction(actionEvent -> { for (GeneGroup gg : geneset.allgenegroups) { if (gg.isOnAnyPlasmid()) { table.getSelectionModel().select(gg); } /*int cnt = 0; for( String spec : gg.species.keySet() ) { Teginfo ti = gg.species.get( spec ); if( ti.tset.size() == 3 ) { List<Tegeval> ta = new ArrayList<Tegeval>( ti.tset ); if( (ta.get(0).getNext() == ta.get(1) || ta.get(0).getPrevious() == ta.get(1)) && (ta.get(1).getNext() == ta.get(2) || ta.get(1).getPrevious() == ta.get(2))) cnt++; } } if( (float)cnt / (float)gg.species.size() > 0.7 ) { int r = table.convertRowIndexToView(gg.index); table.addRowSelectionInterval(r, r); }*/ } }); select.getItems().add(selplasmidgenes); MenuItem selectphagegenes = new MenuItem("Select phage genes"); selectphagegenes.setOnAction(actionEvent -> { for (GeneGroup gg : geneset.allgenegroups) { if (gg.isInAnyPhage()) { table.getSelectionModel().select(gg); } /*int cnt = 0; for( String spec : gg.species.keySet() ) { Teginfo ti = gg.species.get( spec ); if( ti.tset.size() == 3 ) { List<Tegeval> ta = new ArrayList<Tegeval>( ti.tset ); if( (ta.get(0).getNext() == ta.get(1) || ta.get(0).getPrevious() == ta.get(1)) && (ta.get(1).getNext() == ta.get(2) || ta.get(1).getPrevious() == ta.get(2))) cnt++; } } if( (float)cnt / (float)gg.species.size() > 0.7 ) { int r = table.convertRowIndexToView(gg.index); table.addRowSelectionInterval(r, r); }*/ } }); select.getItems().add(selectphagegenes); select.getItems().add(new SeparatorMenuItem()); MenuItem selectsharingaction = new MenuItem("Select sharing"); selectsharingaction.setOnAction(actionEvent -> { RadioButton panbtn = new RadioButton("Pan"); RadioButton corebtn = new RadioButton("Core"); RadioButton blehbtn = new RadioButton("Only in"); ToggleGroup tg = new ToggleGroup(); panbtn.setToggleGroup(tg); corebtn.setToggleGroup(tg); blehbtn.setToggleGroup(tg); HBox sp = new HBox(); sp.getChildren().add(panbtn); sp.getChildren().add(corebtn); sp.getChildren().add(blehbtn); Scene scene = new Scene(sp); //FlowLayout flowlayout = new FlowLayout(); final JFXPanel c = new JFXPanel(); c.setScene(scene); /*Group root = new Group(); Scene scene = new Scene(root, javafx.scene.paint.Color.ALICEBLUE); root.getChildren().add(panbtn); root.getChildren().add(corebtn); root.getChildren().add(blehbtn); JFXPanel fxpanel = new JFXPanel(); fxpanel.setScene( scene );*/ //bg.add( panbtn ); //bg.add( corebtn ); //bg.add( blehbtn ); corebtn.setSelected(true); //Object[] objs = new Object[] { panbtn, corebtn }; //JOptionPane.showMessageDialog( geneset, objs, "Select id types", JOptionPane.PLAIN_MESSAGE ); SwingUtilities.invokeLater(new Runnable() { public void run() { final List<String> species = geneset.getSpecies(); TableModel model = new TableModel() { @Override public int getRowCount() { return species.size(); } @Override public int getColumnCount() { return 1; } @Override public String getColumnName(int columnIndex) { return null; } @Override public Class<?> getColumnClass(int columnIndex) { return String.class; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Object getValueAt(int rowIndex, int columnIndex) { return species.get(rowIndex); } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { } @Override public void addTableModelListener(TableModelListener l) { } @Override public void removeTableModelListener(TableModelListener l) { } }; JTable table = new JTable(model); table.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); JScrollPane scroll = new JScrollPane(table); Object[] objs = new Object[] { scroll, c }; JOptionPane.showMessageDialog(comp, objs); final Set<String> specs = new HashSet<String>(); int[] rr = table.getSelectedRows(); for (int r : rr) { String spec = (String) table.getValueAt(r, 0); specs.add(spec); } Platform.runLater(new Runnable() { public void run() { for (GeneGroup gg : geneset.allgenegroups) { if (blehbtn.isSelected()) { Set<String> ss = new HashSet<String>(gg.species.keySet()); ss.removeAll(specs); if (ss.size() == 0) { GeneSetHead.this.table.getSelectionModel().select(gg); } } else if (gg.species.keySet().containsAll(specs) && (panbtn.isSelected() || specs.size() == gg.species.size())) { GeneSetHead.this.table.getSelectionModel().select(gg); } } } }); } }); }); select.getItems().add(selectsharingaction); MenuItem selectdirtyaction = new MenuItem("Select dirty"); selectdirtyaction.setOnAction(actionEvent -> { if (!isGeneview()) { int i = 0; for (GeneGroup gg : geneset.allgenegroups) { if (gg.containsDirty()) { table.getSelectionModel().select(gg); } i++; } } }); select.getItems().add(selectdirtyaction); MenuItem selectdesignationaction = new MenuItem("Select designation"); selectdesignationaction.setOnAction(actionEvent -> { JComboBox<String> descombo = new JComboBox<String>( geneset.deset.toArray(new String[geneset.deset.size()])); descombo.insertItemAt("", 0); descombo.setSelectedIndex(0); JOptionPane.showMessageDialog(GeneSetHead.this, descombo); String seldes = (String) descombo.getSelectedItem(); if (!isGeneview()) { int i = 0; for (GeneGroup gg : geneset.allgenegroups) { if (gg.genes != null) for (Gene g : gg.genes) { if (seldes.equals(g.tegeval.designation)) { table.getSelectionModel().select(gg); } } i++; } } }); select.getItems().add(selectdesignationaction); MenuItem blastselect = new MenuItem("Blast select"); blastselect.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> blast(false))); select.getItems().add(blastselect); MenuItem blastxselect = new MenuItem("Blastx select"); blastxselect.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> blast(true))); select.getItems().add(blastxselect); MenuItem blastnselect = new MenuItem("Blastn select"); blastnselect.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> blastn(true))); select.getItems().add(blastnselect); MenuItem blastsearch = new MenuItem("Blastn search"); blastsearch.setOnAction(actionEvent -> SwingUtilities.invokeLater(() -> blastn(false))); select.getItems().add(blastsearch); menubar.getMenus().add(file); menubar.getMenus().add(edit); menubar.getMenus().add(view); menubar.getMenus().add(sequencemenu); menubar.getMenus().add(windowmenu); menubar.getMenus().add(select); menubar.getMenus().add(help); if (comp != null) { final Window window = SwingUtilities.windowForComponent(comp); initFSKeyListener(window); if (comp instanceof JFrame || window instanceof JFrame) { JFrame frame = (JFrame) (window == null ? comp : window); if (!frame.isResizable()) frame.setResizable(true); frame.addKeyListener(keylistener); frame.setJMenuBar(jmenubar); } } final Button jb = new Button("Atlas"); jb.setOnAction(event -> { try { URL url = new URL("file:///home/sigmar/workspace/distann/bin/circle.html"); GeneSetHead.this.getAppletContext().showDocument(url, "_blank"); } catch (MalformedURLException e1) { e1.printStackTrace(); } }); try { newSoft(jb, comp, genetable, upper, lower, toolbar, btoolbar, GeneSetHead.this, selcomb); } catch (IOException e) { e.printStackTrace(); } if (comp != null) { if (comp instanceof Applet) try { ((GeneSetHead) comp).saveSel(null, null); } catch (NoSuchMethodError | Exception e1) { e1.printStackTrace(); } //comp.add( cc ); } }