annotate 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
rev   line source
f@0 1 /*
f@0 2 CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool
f@0 3
f@0 4 Copyright (C) 2011 Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/)
f@0 5
f@0 6 This program is free software: you can redistribute it and/or modify
f@0 7 it under the terms of the GNU General Public License as published by
f@0 8 the Free Software Foundation, either version 3 of the License, or
f@0 9 (at your option) any later version.
f@0 10
f@0 11 This program is distributed in the hope that it will be useful,
f@0 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
f@0 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f@0 14 GNU General Public License for more details.
f@0 15
f@0 16 You should have received a copy of the GNU General Public License
f@0 17 along with this program. If not, see <http://www.gnu.org/licenses/>.
f@0 18 */
f@0 19
f@0 20 package uk.ac.qmul.eecs.ccmi.gui.awareness;
f@0 21
f@0 22 import java.awt.Component;
f@0 23 import java.awt.event.KeyEvent;
f@0 24 import java.util.LinkedList;
f@0 25 import java.util.List;
f@0 26
f@0 27 import javax.swing.JTextPane;
f@0 28 import javax.swing.KeyStroke;
f@0 29 import javax.swing.text.DefaultEditorKit;
f@0 30
f@0 31 import uk.ac.qmul.eecs.ccmi.main.DiagramEditorApp;
f@0 32 import uk.ac.qmul.eecs.ccmi.speech.SpeechUtilities;
f@0 33
f@0 34 @SuppressWarnings("serial")
f@0 35 class AwarenessTextPane extends JTextPane {
f@0 36 AwarenessTextPane(String accessibleName){
f@0 37 records = new LinkedList<String>();
f@0 38 addKeyListener(SpeechUtilities.getSpeechKeyListener(false,true));
f@0 39 /* prevents getText() from automatically turn all the \n to \r\n */
f@0 40 getDocument().putProperty(DefaultEditorKit.EndOfLineStringProperty, "\n");
f@0 41 getAccessibleContext().setAccessibleName(accessibleName);
f@0 42 getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,0), "none");
f@0 43 SpeechUtilities.changeTabListener(this,DiagramEditorApp.getFrame());
f@0 44 }
f@0 45
f@0 46 void insert(String record){
f@0 47 records.add(0, record);
f@0 48 update();
f@0 49 }
f@0 50
f@0 51 void remove(String record){
f@0 52 records.remove(record);
f@0 53 update();
f@0 54 }
f@0 55
f@0 56 void clear(){
f@0 57 records.clear();
f@0 58 update();
f@0 59 }
f@0 60
f@0 61 protected void processKeyEvent(KeyEvent e){
f@0 62 if(e.getKeyCode() != KeyEvent.VK_UP &&
f@0 63 e.getKeyCode() != KeyEvent.VK_DOWN &&
f@0 64 e.getKeyCode() != KeyEvent.VK_RIGHT &&
f@0 65 e.getKeyCode() != KeyEvent.VK_LEFT &&
f@0 66 e.getKeyCode() != KeyEvent.VK_TAB)
f@0 67 return;
f@0 68 super.processKeyEvent(new KeyEvent((Component)e.getSource(),e.getID(),
f@0 69 e.getWhen(),0,e.getKeyCode(),e.getKeyChar()));
f@0 70 }
f@0 71
f@0 72 private void update(){
f@0 73 StringBuilder builder = new StringBuilder();
f@0 74 for(String r : records){
f@0 75 builder.append(r);
f@0 76 }
f@0 77 selectAll();
f@0 78 replaceSelection(builder.toString());
f@0 79 }
f@0 80
f@0 81 private List<String> records;
f@0 82 }