/* * CollageList.java * (FScape) * * Copyright (c) 2001-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.fscape.gui; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; /** * Panel containing a list of sound file * names and list edit buttons to add * or remove entries. */ public class CollageList extends Panel implements ActionListener, AdjustmentListener, MouseListener { // -------- private variables -------- // dieser Button wird nicht angezeigt, sondern dient nur als // Institution zum Verwalten der ActionListener und fuer // den Event-Dispatch! private Button actionComponent; protected Scrollbar ggVScroll; // protected Scrollbar ggHScroll; protected JButton ggAdd, ggDel, ggDup; // -------- public methods -------- public CollageList() { super(); actionComponent = new Button(); Panel toolBar; setLayout( new BorderLayout() ); // ggHScroll = new Scrollbar( Scrollbar.HORIZONTAL, 0, 0x8000, 0, 0x8000 ); ggVScroll = new Scrollbar( Scrollbar.VERTICAL, 0, 0x8000, 0, 0x8000 ); // ggHScroll.addAdjustmentListener( ggCurve ); ggVScroll.addAdjustmentListener( this ); toolBar = new Panel(); toolBar.setLayout( new FlowLayout( FlowLayout.LEFT, 2, 2 ) ); ggAdd = new JButton( " Add " ); ggDel = new JButton( " Delete " ); ggDup = new JButton( " Duplicate " ); ggAdd.addActionListener( this ); ggDel.addActionListener( this ); ggDup.addActionListener( this ); toolBar.add( ggAdd ); toolBar.add( ggDel ); toolBar.add( ggDup ); add( toolBar, BorderLayout.NORTH ); // add( ggHScroll, BorderLayout.SOUTH ); add( ggVScroll, BorderLayout.EAST ); add( new CollageCanvas( this ), BorderLayout.CENTER ); // add( ggCurve, BorderLayout.CENTER ); } /** * Registriert einen ActionListener; * Action-Events kommen, wenn sich der Wert des ParamFieldes aendert */ public void addActionListener( ActionListener list ) { actionComponent.addActionListener( list ); } /** * Entfernt einen ActionListener */ public void removeActionListener( ActionListener list ) { actionComponent.removeActionListener( list ); } // -------- Action Listener methods -------- public void actionPerformed( ActionEvent e ) {} // -------- Adjustment Listener methods -------- public void adjustmentValueChanged( AdjustmentEvent e ) {} // -------- Mouse Listener methods -------- public void mousePressed( MouseEvent e ) {} public void mouseReleased( MouseEvent e ) {} public void mouseClicked( MouseEvent e ) {} public void mouseEntered( MouseEvent e ) {} public void mouseExited( MouseEvent e ) {} // -------- private methods -------- // -------- interne CollageCanvas-Klasse -------- class CollageCanvas extends Canvas { // ........ private variables ........ CollageList cl; // ........ public methods ........ public CollageCanvas(CollageList cl) { super(); this.cl = cl; setForeground(SystemColor.control); } public void paint(Graphics g) { Dimension dim = getSize(); g.draw3DRect(1, 1, dim.width - 3, dim.height - 3, true); g.setColor(Color.black); g.drawRect(0, 0, dim.width - 1, dim.height - 1); } // public Dimension getPreferredSize() // { // return new Dimension( 64, 64 ); // } // public Dimension getMinimumSize() // { // return getPreferredSize(); // } } // class CollageCanvas }