//----------------------------------------------------------------------------// // // // C h o r d S y m b o l // // // //----------------------------------------------------------------------------// // <editor-fold defaultstate="collapsed" desc="hdr"> // // Copyright © Hervé Bitteur and others 2000-2013. All rights reserved. // // This software is released under the GNU General Public License. // // Goto http://kenai.com/projects/audiveris to report bugs or suggestions. // //----------------------------------------------------------------------------// // </editor-fold> package omr.score.entity; import omr.score.visitor.ScoreVisitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.Point; /** * Class {@code ChordSymbol} represents a chord symbol in the score. * * @author Chris Lahey * @author Hervé Bitteur */ public class ChordSymbol extends MeasureElement { //~ Static fields/initializers --------------------------------------------- /** Usual logger utility */ private static final Logger logger = LoggerFactory.getLogger( ChordSymbol.class); //~ Instance fields -------------------------------------------------------- // /** Underlying text. */ private final Text.ChordText text; /** The underlying chord information. */ public ChordInfo info; //~ Constructors ----------------------------------------------------------- //-------------// // ChordSymbol // //-------------// /** * Creates a new instance of ChordSymbol event * * @param measure measure that contains this mark * @param referencePoint the reference location of the mark * @param chord the chord related to the mark, if any * @param text the sentence text */ public ChordSymbol (Measure measure, Point referencePoint, Chord chord, Text.ChordText text) { super( measure, true, referencePoint, chord, text.getSentence().getFirstWord().getGlyph()); this.text = text; info = ChordInfo.create(text.getContent()); // Register at its related chord if (chord != null) { chord.setChordSymbol(this); } else { addError(getGlyph(), "Chord statement with no related chord"); } } //~ Methods ---------------------------------------------------------------- //--------// // accept // //--------// @Override public boolean accept (ScoreVisitor visitor) { return visitor.visit(this); } //---------// // getInfo // //---------// public ChordInfo getInfo () { return info; } //---------// // getText // //---------// public Text.ChordText getText () { return text; } //-----------------------// // computeReferencePoint // //-----------------------// @Override protected void computeReferencePoint () { setReferencePoint(text.getReferencePoint()); } //-----------------// // internalsString // //-----------------// @Override protected String internalsString () { return info.toString(); } }