Mercurial > hg > accesspd
view java/src/uk/ac/qmul/eecs/ccmi/gui/awareness/AwarenessTextPane.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.awareness; import java.awt.Component; import java.awt.event.KeyEvent; import java.util.LinkedList; import java.util.List; import javax.swing.JTextPane; import javax.swing.KeyStroke; import javax.swing.text.DefaultEditorKit; import uk.ac.qmul.eecs.ccmi.main.DiagramEditorApp; import uk.ac.qmul.eecs.ccmi.speech.SpeechUtilities; @SuppressWarnings("serial") class AwarenessTextPane extends JTextPane { AwarenessTextPane(String accessibleName){ records = new LinkedList<String>(); addKeyListener(SpeechUtilities.getSpeechKeyListener(false,true)); /* prevents getText() from automatically turn all the \n to \r\n */ getDocument().putProperty(DefaultEditorKit.EndOfLineStringProperty, "\n"); getAccessibleContext().setAccessibleName(accessibleName); getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,0), "none"); SpeechUtilities.changeTabListener(this,DiagramEditorApp.getFrame()); } void insert(String record){ records.add(0, record); update(); } void remove(String record){ records.remove(record); update(); } void clear(){ records.clear(); update(); } protected void processKeyEvent(KeyEvent e){ if(e.getKeyCode() != KeyEvent.VK_UP && e.getKeyCode() != KeyEvent.VK_DOWN && e.getKeyCode() != KeyEvent.VK_RIGHT && e.getKeyCode() != KeyEvent.VK_LEFT && e.getKeyCode() != KeyEvent.VK_TAB) return; super.processKeyEvent(new KeyEvent((Component)e.getSource(),e.getID(), e.getWhen(),0,e.getKeyCode(),e.getKeyChar())); } private void update(){ StringBuilder builder = new StringBuilder(); for(String r : records){ builder.append(r); } selectAll(); replaceSelection(builder.toString()); } private List<String> records; }