Mercurial > hg > accesspd
view java/src/uk/ac/qmul/eecs/ccmi/gui/EditorTabbedPane.java @ 1:e3935c01cde2 tip
moved license of PdPersistenceManager to the beginning of the file
author | Fiore Martin <f.martin@qmul.ac.uk> |
---|---|
date | Tue, 08 Jul 2014 19:52:03 +0100 |
parents | 78b7fc5391a2 |
children |
line wrap: on
line source
/* CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool Copyright (C) 2011 Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package uk.ac.qmul.eecs.ccmi.gui; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import javax.swing.JTabbedPane; import javax.swing.KeyStroke; import uk.ac.qmul.eecs.ccmi.speech.NarratorFactory; import uk.ac.qmul.eecs.ccmi.speech.SpeechUtilities; /** * * The tabbed pane of the editor. On each tab a {@code DiagramPanel} is displayed. * */ @SuppressWarnings("serial") public class EditorTabbedPane extends JTabbedPane { /** * Creates a new {@code EditorTabbedPane} * * @param frame the frame when this tabbed pane will be placed */ public EditorTabbedPane(EditorFrame frame){ setFocusTraversalKeysEnabled(false); SpeechUtilities.changeTabListener(this,frame); getAccessibleContext().setAccessibleName("tab "); /* shut up the narrator upon pressing ctrl */ getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_CONTROL,InputEvent.CTRL_DOWN_MASK),"ctrldown"); getActionMap().put("ctrldown",new AbstractAction(){ public void actionPerformed(ActionEvent evt){ NarratorFactory.getInstance().shutUp(); } }); } /** * Sets the title of the tab containing a component. * * @param component the component in the tab whose title has to be set * @param title the new title */ public void setComponentTabTitle(Component component, String title){ int index = indexOfComponent(component); if(index == -1) return; setTitleAt(index,title); } /** * Returns the title of the tab containing a component. * * @param component the component contained by the tab * @return the title of the tab containing {@code component} */ public String getComponentTabTitle(Component component){ int index = indexOfComponent(component); if(index == -1) return null; return getTitleAt(index); } /** * Repaints the title on a tab containing a component. * * @param component the component contained by the tab whose title will be repainted */ public void refreshComponentTabTitle(Component component){ setComponentTabTitle(component,component.getName()); } @Override public DiagramPanel getComponentAt(int n){ return (DiagramPanel)super.getComponent(n); } /** * The components in an {@code EditorTabbedPane} are all instances of {@code DiagramPanel}, which in turns * holds an instance of {@code Diagram}. This utility methods retrieves the index of * the {@code DiagramPanel} whose diagram has the same name than the {@code String} passed as argument. * * @param diagramName the name of the diagram to look for * @return the index of the diagram named as {@code diagramName} or {@code -1} if * such diagram doesn't exist */ public int getDiagramNameTabIndex(String diagramName){ for(int i=0; i<getTabCount();i++){ DiagramPanel dPanel = getComponentAt(i); if(diagramName.equals(dPanel.getDiagram().getName())){ return i; } } return -1; } /** * The components in an {@code EditorTabbedPane} are all instances of {@code DiagramPanel}, which in turns * hold an instance of {@code Diagram}. This method returns the index of the {@code DiagramPanel} * whose diagram has been saved on the file system at the path specified as argument. * * @param path a path on the file system identifying the diagram * @return the index of the {@code DiagramPanel} whose diagram has been saved on * the file system in {@code path}, or {@code -1} if such diagram doesn't exist */ public int getPathTabIndex(String path){ for(int i=0; i<getTabCount();i++){ DiagramPanel dPanel = getComponentAt(i); if(path.equals(dPanel.getFilePath())){ return i; } } return -1; } }