/* * AudioTrackRowHeader.java * Eisenkraut * * Copyright (c) 2004-2016 Hanns Holger Rutz. All rights reserved. * * This software is published under the GNU General Public License v3+ * * * For further information, please contact Hanns Holger Rutz at * contact@sciss.de */ package de.sciss.eisenkraut.timeline; import de.sciss.eisenkraut.gui.PanoramaButton; import de.sciss.eisenkraut.session.FlagsPanel; import de.sciss.eisenkraut.session.SessionCollection; import javax.swing.*; import javax.swing.undo.UndoManager; import java.awt.*; /** * A row header in Swing's table 'ideology' * is a component left to the leftmost * column of each row in a table. It serves * as a kind of label for that specific row. * This class shows a header left to each * sound file's waveform display, with information * about the channel index, possible selections * and soloing/muting. In the future it could * carry insert effects and the like. */ @SuppressWarnings("serial") public class AudioTrackRowHeader extends TrackRowHeader { private final PanoramaButton pan; public static final int ROW_WIDTH = 64; public AudioTrackRowHeader(final AudioTrack t, final SessionCollection tracks, final SessionCollection selectedTracks, UndoManager undo) { super(t, tracks, selectedTracks, undo); final JPanel flags; final SpringLayout lay = (SpringLayout) getLayout(); pan = new PanoramaButton(t, tracks); flags = new FlagsPanel(t, tracks); add(pan); add(flags); lay.putConstraint(SpringLayout.EAST , flags, -4, SpringLayout.EAST , this); lay.putConstraint(SpringLayout.SOUTH, flags, -8, SpringLayout.SOUTH, this); lay.putConstraint(SpringLayout.EAST , pan , -3, SpringLayout.EAST , this); lay.putConstraint(SpringLayout.SOUTH, pan , 0, SpringLayout.NORTH, flags); setPreferredSize(new Dimension(ROW_WIDTH, 16)); // XXX setMaximumSize(new Dimension(ROW_WIDTH, getMaximumSize().height)); // XXX } public void dispose() { pan.dispose(); super.dispose(); } }