📄 resultsmenubar.java
字号:
colourMenu.add(cm); add(colourMenu); // saving to the remote file system if(addRemoteSaveMenu) { saveToRemoteFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JTextComponent jtc = getJTextComponentAt(rtb,rtb.getSelectedIndex()); String tabTitle = rtb.getTitleAt(rtb.getSelectedIndex()); if(org.emboss.jemboss.Jemboss.withSoap) { Vector params = new Vector(); params.addElement(project); params.addElement(tabTitle); // remove return characters for Win machines params.addElement(jtc.getText().replace('\r',' ')); try { PrivateRequest gReq = new PrivateRequest(mysettings, "save_project_file",params); } catch(JembossSoapException jse){} } else { JembossServer js = new JembossServer(mysettings.getResultsHome()); js.save_project_file(project, tabTitle, jtc.getText().replace('\r',' ')); } } }); } //Font size selection String sizes[] = {"10", "12", "14", "16", "18"}; final JComboBox fntSize = new JComboBox(sizes); fntSize.setSelectedItem("12"); fntSize.setPreferredSize(fntSize.getMinimumSize()); fntSize.setMaximumSize(fntSize.getMinimumSize()); fntSize.setEditable(true); toolBar.add(fntSize); fntSize.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JTextPane jtp = getSelectedJTextPane(rtb); if(jtp != null) { Font fnt = jtp.getFont(); try { String fsize = (String)fntSize.getSelectedItem(); if(fsize.indexOf(".") > -1) fsize = fsize.substring(0,fsize.indexOf(".")); fnt = new Font("monospaced",fnt.getStyle(), Integer.parseInt(fsize)); jtp.setFont(fnt); } catch(NumberFormatException nfe){} } } }); //Font style String styles[] = {"Plain","Bold","Italic"}; final JComboBox cbFonts = new JComboBox(styles); cbFonts.setMaximumSize(cbFonts.getPreferredSize()); cbFonts.setToolTipText("Available styles"); cbFonts.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int index = cbFonts.getSelectedIndex(); if (index < 0) return; JTextPane jtp = getSelectedJTextPane(rtb); if(jtp == null) return; Font fnt = jtp.getFont(); if(index == 0) fnt = fnt.deriveFont(Font.PLAIN); else if(index == 1) fnt = fnt.deriveFont(Font.BOLD); else fnt = fnt.deriveFont(Font.ITALIC); jtp.setFont(fnt); } }); toolBar.add(cbFonts); } /** * * Sets up a results menu bar with save and close * @param frame frame containing the results * @param addRemoteSaveMenu true to add a remote save menu * */ public void setResultsMenuBar(final JFrame frame, boolean addRemoteSaveMenu) { this.frame = frame; add(Box.createRigidArea(new Dimension(5,24))); JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); if(addRemoteSaveMenu) { if(org.emboss.jemboss.Jemboss.withSoap) saveToRemoteFile = new JMenuItem("Save to Server File"); else saveToRemoteFile = new JMenuItem("Save Back to Project Directory"); fileMenu.add(saveToRemoteFile); } saveToLocalFile = new JMenuItem("Save to Local File..."); fileMenu.add(saveToLocalFile); fileMenu.addSeparator(); // undo - redo fileMenu.add(undo); undo.setEnabled(false); undo.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_U, ActionEvent.CTRL_MASK)); fileMenu.add(redo); redo.setEnabled(false); redo.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_R, ActionEvent.CTRL_MASK)); fileMenu.addSeparator(); // close JMenuItem resFileMenuExit = new JMenuItem("Close"); resFileMenuExit.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_E, ActionEvent.CTRL_MASK)); resFileMenuExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); fileMenu.add(resFileMenuExit); add(fileMenu); frame.setJMenuBar(this); frame.getContentPane().add(toolBar, BorderLayout.NORTH); } /** * * Update the undo and redo menus and enable or disable * dependent on the editing event that proceeded. * */ private void updateMenu() { undo.setText(undoManager.getUndoPresentationName()); redo.setText(undoManager.getRedoPresentationName()); undo.setEnabled(undoManager.canUndo()); redo.setEnabled(undoManager.canRedo()); } /** * * Get the tool bar * @return tool bar * */ protected JToolBar getToolBar() { return toolBar; } /** * * Save to a local file * @param cwd current working directory * @param fileSelected selected file * @param tabTitle title of tab pane to save content of * @param h hash table * */ private void fileSave(String cwd, String fileSelected, String tabTitle, Hashtable h) { fileSave(cwd,fileSelected,h.get(tabTitle)); } /** * * Save to a local file * @param cwd current working directory * @param fileSelected selected file * @param fileContents contents to save * */ private void fileSave(String cwd, String fileSelected, Object fileContents) { String fs = new String(System.getProperty("file.separator")); FileSave fsave = new FileSave(new File(cwd + fs + fileSelected)); if(fsave.doWrite()) fsave.fileSaving(fileContents); if(!fsave.fileExists()) { org.emboss.jemboss.Jemboss.tree.addObject(fileSelected,cwd,null); DragTree ltree = SetUpMenuBar.getLocalDragTree(); if(ltree!=null) ltree.addObject(fileSelected,cwd,null); } } /** * * Get the menu bar * @return menu bar * */ //public JMenuBar getJMenuBar()//{// return this;//} /** * * Get selected text pane from tabbed pane * @param rtb tabbed pane * @return text pane * */ private JTextPane getSelectedJTextPane(JTabbedPane rtb) { try { JScrollPane jsp = (JScrollPane)(rtb.getSelectedComponent()); return (JTextPane)(jsp.getViewport().getView()); } catch(ClassCastException cce) { try //standalone results { JPanel panel = (JPanel)rtb.getSelectedComponent(); JScrollPane jsp = (JScrollPane)(panel.getComponent(0)); ScrollPanel panel2 = (ScrollPanel)jsp.getViewport().getView(); return (JTextPane)panel2.getComponent(0); } catch(ClassCastException cce2) { } } return null; } /** * * Get text component from a tabbed pane * @param rtb tabbed pane * @param index tab index * @return text component * */ private JTextComponent getJTextComponentAt(JTabbedPane rtb, int index) { try { JScrollPane jsp = (JScrollPane)(rtb.getComponentAt(index)); return (JTextComponent)(jsp.getViewport().getView()); } catch(ClassCastException cce) { try //standalone results { JPanel panel = (JPanel)rtb.getComponentAt(index); JScrollPane jsp = (JScrollPane)(panel.getComponent(0)); ScrollPanel panel2 = (ScrollPanel)jsp.getViewport().getView(); return (JTextPane)panel2.getComponent(0); } catch(ClassCastException cce2) { } } return null; } }/**** Colour pallette menu**/class ColorMenu extends JMenu{ protected Border unselectedBorder; protected Border selectedBorder; protected Border activeBorder; protected Hashtable panes; protected ColorPane selected; public ColorMenu(String name) { super(name); unselectedBorder = new CompoundBorder( new MatteBorder(1, 1, 1, 1, getBackground()), new BevelBorder(BevelBorder.LOWERED, Color.white, Color.gray)); selectedBorder = new CompoundBorder( new MatteBorder(2, 2, 2, 2, Color.red), new MatteBorder(1, 1, 1, 1, getBackground())); activeBorder = new CompoundBorder( new MatteBorder(2, 2, 2, 2, Color.blue), new MatteBorder(1, 1, 1, 1, getBackground())); JPanel p = new JPanel(); p.setBorder(new EmptyBorder(5, 5, 5, 5)); p.setLayout(new GridLayout(8, 8)); panes = new Hashtable(); int[] values = new int[] { 0, 128, 192, 255 }; for (int r=0; r<values.length; r++) { for (int g=0; g<values.length; g++) { for (int b=0; b<values.length; b++) { Color c = new Color(values[r], values[g], values[b]); ColorPane pn = new ColorPane(c); p.add(pn); panes.put(c, pn); } } } add(p); } public void setColor(Color c) { Object obj = panes.get(c); if (obj == null) return; if (selected != null) selected.setSelected(false); selected = (ColorPane)obj; selected.setSelected(true); } public Color getColor() { if (selected == null) return null; return selected.getColor(); } public void doSelection() { fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, getActionCommand())); } class ColorPane extends JPanel implements MouseListener { protected Color col; protected boolean selected; public ColorPane(Color c) { col = c; setBackground(c); setBorder(unselectedBorder); String msg = "R "+c.getRed()+", G "+c.getGreen()+ ", B "+c.getBlue(); setToolTipText(msg); addMouseListener(this); } public Color getColor() { return col; } public Dimension getPreferredSize() { return new Dimension(15, 15); } public Dimension getMaximumSize() { return getPreferredSize(); } public Dimension getMinimumSize() { return getPreferredSize(); } public void setSelected(boolean select) { selected = select; if (selected) setBorder(selectedBorder); else setBorder(unselectedBorder); } public boolean isSelected() { return selected; } public void mousePressed(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseReleased(MouseEvent e) { setColor(col); MenuSelectionManager.defaultManager().clearSelectedPath(); doSelection(); } public void mouseEntered(MouseEvent e) { setBorder(activeBorder); } public void mouseExited(MouseEvent e) { setBorder(selected ? selectedBorder : unselectedBorder); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -