annotate java/src/uk/ac/qmul/eecs/ccmi/diagrammodel/NodeReferenceMutableTreeNode.java @ 8:ea7885bd9bff tip

fixed bug : render solid line as dotted/dashed when moving the stylus from dotted/dashed to solid
author ccmi-guest
date Thu, 03 Jul 2014 16:12:20 +0100
parents 9e67171477bc
children
rev   line source
fiore@0 1 /*
fiore@0 2 CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool
fiore@0 3
fiore@0 4 Copyright (C) 2011 Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/)
fiore@0 5
fiore@0 6 This program is free software: you can redistribute it and/or modify
fiore@0 7 it under the terms of the GNU General Public License as published by
fiore@0 8 the Free Software Foundation, either version 3 of the License, or
fiore@0 9 (at your option) any later version.
fiore@0 10
fiore@0 11 This program is distributed in the hope that it will be useful,
fiore@0 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
fiore@0 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fiore@0 14 GNU General Public License for more details.
fiore@0 15
fiore@0 16 You should have received a copy of the GNU General Public License
fiore@0 17 along with this program. If not, see <http://www.gnu.org/licenses/>.
fiore@0 18 */
fiore@0 19 package uk.ac.qmul.eecs.ccmi.diagrammodel;
fiore@0 20
fiore@0 21 /**
fiore@3 22 * The {@code DiagramModeltreeNode} placed in an edge subtree representing a node connected
fiore@0 23 * by the edge itself.
fiore@0 24 */
fiore@0 25 @SuppressWarnings("serial")
fiore@3 26 public class NodeReferenceMutableTreeNode extends DiagramTreeNode {
fiore@3 27 NodeReferenceMutableTreeNode(DiagramNode node, DiagramEdge edge){
fiore@0 28 super();
fiore@0 29 this.node = node;
fiore@0 30 this.edge = edge;
fiore@0 31 }
fiore@0 32
fiore@0 33
fiore@0 34 @Override
fiore@0 35 public String toString(){
fiore@0 36 StringBuilder b = new StringBuilder();
fiore@0 37 if(edge.getEndDescription(node) != null){
fiore@0 38 b.append(' ');
fiore@0 39 b.append(edge.getEndDescription(node));
fiore@0 40 b.append(' ');
fiore@0 41 }
fiore@0 42 b.append(node.getName());
fiore@0 43 b.append(' ');
fiore@0 44 if(edge.getEndLabel(node) != null){
fiore@0 45 b.append(edge.getEndLabel(node));
fiore@0 46 }
fiore@0 47 /* set the user object so that superclass toString can be called, which
fiore@0 48 * decorates the string with notes and bookmarks
fiore@0 49 */
fiore@0 50 setUserObject(b.toString());
fiore@0 51 return super.toString();
fiore@0 52 }
fiore@0 53
fiore@0 54 /**
fiore@3 55 * Returns the tree node name "as it is", without any decoration such as notes, bookmarks or cardinality
fiore@3 56 * ,unlike the String returned by toString.
fiore@3 57 *
fiore@0 58 * @return the tree node name
fiore@0 59 */
fiore@0 60 @Override
fiore@0 61 public String getName(){
fiore@0 62 return node.getName();
fiore@0 63 }
fiore@0 64
fiore@0 65 /**
fiore@0 66 * Returns a String representing this object for this tree node in a way more suitable
fiore@0 67 * for a text to speech synthesizer to read, than toString().
fiore@3 68 *
fiore@0 69 * @return a String suitable for text to speech synthesis
fiore@0 70 */
fiore@0 71 @Override
fiore@0 72 public String spokenText(){
fiore@0 73 toString();
fiore@0 74 return super.spokenText();
fiore@0 75 }
fiore@0 76
fiore@0 77 /**
fiore@0 78 * Returns the diagram edge that has this node in its subtree. Note that diagram edges
fiore@0 79 * are DiagramModelTreeNodes as well.
fiore@3 80 *
fiore@0 81 * @return a reference to the diagram edge
fiore@0 82 */
fiore@0 83 public DiagramEdge getEdge(){
fiore@0 84 return edge;
fiore@0 85 }
fiore@0 86
fiore@0 87 /**
fiore@3 88 * Returns the diagram node that this tree node represents inside the edge subtree.
fiore@3 89 *
fiore@0 90 * @return a reference to the actual diagram node
fiore@0 91 */
fiore@0 92 public DiagramNode getNode(){
fiore@0 93 return node;
fiore@0 94 }
fiore@0 95
fiore@0 96 private DiagramNode node;
fiore@0 97 private DiagramEdge edge;
fiore@0 98 }