Class Hierarchy

# Hierarchy For All Packages

Package Hierarchies:

- compose,
- data,
- database,
- genetic,
- gui,
- hanson,
- midi,
- motif

## Class Hierarchy

- java.lang.Object
  - data.Beat
  - data.BeatTransition
  - gui.ColorRowRenderer
  - java.awt.Component (implements java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable)
    - java.awt.Container
      - javax.swing.JComponent (implements java.io.Serializable)
        - javax.swing.AbstractButton (implements java.awt.ItemSelectable, javax.swing.SwingConstants)
          - javax.swing.JToggleButton (implements javax.accessibility.Accessible)
            - javax.swing.JCheckBox (implements javax.accessibility.Accessible)
              - gui.TristateCheckBox
        - javax.swing.JLabel (implements javax.accessibility.Accessible, javax.swing.SwingConstants)
          - javax.swing.table.DefaultTableCellRenderer (implements java.io.Serializable, javax.swing.table.TableCellRenderer)
            - gui.ColorColumnCellRenderer
            - gui.MatrixDialog.CustomCellRenderer
            - gui.MatrixDialogAverage.CustomCellRenderer
            - gui.MatrixDialogAverage.CustomNumberCellRenderer
        - javax.swing.JPanel (implements javax.accessibility.Accessible)
          - gui.CheckTreeCellRenderer (implements javax.swing.tree.TreeCellRenderer)
      - java.awt.Window (implements javax.accessibility.Accessible)
        - java.awt.Dialog
          - javax.swing.JDialog (implements javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants)
            - gui.AllInOneStatusDialog
            - gui.ComposeProgress
            - gui.ComposingDialog (implements javax.swing.event.ChangeListener)
            - gui.ComposingStatusDialog
            - gui.ConvertDialog
            - gui.DatabaseLoginDialog
            - gui.DatabaseLoginDialogAllInOne
            - gui.DatabaseLoginDialogAnalyser
            - gui.DatabaseLoginDialogComposing
            - gui.DatabaseLoginDialogConverter
            - gui.DatabaseLoginDialogMotifViewer
            - gui.DatabaseSettingsDialog
            - gui.DetectionDialogAllInOne
            - gui.DetectionDialogLarge
            - gui.InstrumentDialog
            - gui.MatrixDialog
            - gui.MatrixDialogAverage
            - gui.MotifViewer
            - gui.PolyphoneComposingDialog
        - java.awt.Frame (implements java.awt.MenuContainer)
          - javax.swing.JFrame (implements javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants)
            - gui.AnalyserForm
  - compose.Composer
    - compose.GeneticComposer (implements java.lang.Runnable)
    - compose.MarkovComposer
  - genetic.CrossOver
  - database.Database
  - database.DatabaseInterface
  - javax.swing.tree.DefaultTreeSelectionModel (implements java.lang.Cloneable, java.io.Serializable, javax.swing.tree.TreeSelectionModel)
    - gui.CheckTreeSelectionModel
  - genetic.FitnessFunction
  - hanson.HansonParser
  - hanson.HansonStatics
  - data.IHanson
  - data.IInstrument
  - data.IMotif (implements data.BasicDataElement)
  - data.INote (implements data.BasicDataElement)
  - data.INoteAmount
  - data.InstrumentStatics
  - data.IPart (implements data.BasicDataElement)
  - data.IPhrase (implements data.BasicDataElement)
  - data.IScore (implements data.BasicDataElement)
  - data.ITonality
  - midi.KeyFinder
  - midi.MIDIAnalyser
  - data.MIDIBaseChord
  - data.MIDIBaseChords
  - data.MIDIFileData
    - data.AverageMIDIFileData
  - data.MIDIInstrumentData
  - data.MIDIMelodicInstrument
  - data.MIDIPartData
  - midi.MIDIPlayer
  - midi.MidiQuantizer
  - midi.MidiToSheetMusic
  - data.MotifData
  - motif.MotifDetection
  - java.awt.event.MouseAdapter (implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener)
    - gui.CheckTreeManager (implements javax.swing.event.TreeSelectionListener)
  - data.MultiBeat
  - data.MultiMotifData
  - genetic.Mutation
  - data.NoteData
  - motif.PatternMatcher
  - genetic.PolyphonFitnessFunction
  - compose.PolyphonGeneticComposer
  - motif.PolyphonMotifDetection
  - motif.RepetitionMotifDectorHanson (implements motif.MotifDetector)
  - motif.RhythmicMotifDetectorHanson (implements motif.MotifDetector)
  - genetic.Selection
  - gui.TreeSelector
  - gui.TristateCheckBox.State
  - gui.TristateCheckBox.TristateDecorator (implements javax.swing.ButtonModel)
  - motif.VariationMotifDetectorHanson (implements motif.MotifDetector)

## Interface Hierarchy

- data.BasicDataElement
- gui.CheckChangeListener
- motif.MotifDetector

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - data.MotifType
    - hanson.HansonStatics.OCTAVE_INERVAL
    - hanson.HansonStatics.NOTE_INTERVAL
    - hanson.HansonStatics.DIRECTION