/[svn]/jsampler/trunk/src/org/jsampler/view/fantasia/StandardBar.java
ViewVC logotype

Annotation of /jsampler/trunk/src/org/jsampler/view/fantasia/StandardBar.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1785 - (hide annotations) (download)
Tue Oct 7 00:07:14 2008 UTC (15 years, 6 months ago) by iliev
File size: 5855 byte(s)
* Fantasia: Implemented multiple channels panels
* Fantasia: Refactoring - all basic UI components moved to
  org.jsampler.view.fantasia.basic package

1 iliev 1286 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4 iliev 1778 * Copyright (C) 2005-2008 Grigor Iliev <grigor@grigoriliev.com>
5 iliev 1286 *
6     * This file is part of JSampler.
7     *
8     * JSampler is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License version 2
10     * as published by the Free Software Foundation.
11     *
12     * JSampler is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with JSampler; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20     * MA 02111-1307 USA
21     */
22    
23     package org.jsampler.view.fantasia;
24    
25     import java.awt.BorderLayout;
26 iliev 1778 import java.awt.Color;
27     import java.awt.Composite;
28 iliev 1286 import java.awt.Dimension;
29     import java.awt.Graphics;
30 iliev 1778 import java.awt.Graphics2D;
31     import java.awt.Paint;
32 iliev 1286
33 iliev 1778 import java.awt.event.ActionEvent;
34     import java.awt.event.ActionListener;
35    
36 iliev 1286 import javax.swing.Action;
37     import javax.swing.BorderFactory;
38     import javax.swing.Box;
39     import javax.swing.BoxLayout;
40     import javax.swing.JLabel;
41     import javax.swing.JPanel;
42 iliev 1778 import javax.swing.JToggleButton;
43 iliev 1286 import javax.swing.JToolBar;
44    
45 iliev 1778 import org.jsampler.CC;
46 iliev 1785 import org.jsampler.view.fantasia.basic.*;
47 iliev 1778
48 iliev 1286 import static org.jsampler.view.fantasia.A4n.a4n;
49    
50     /**
51     *
52     * @author Grigor Iliev
53     */
54 iliev 1778 public class StandardBar extends JPanel {
55 iliev 1286 private final JToolBar toolbar = new JToolBar();
56 iliev 1778 private final JPanel mainPane;
57 iliev 1286
58     private final ToolbarButton btnSamplerInfo = new ToolbarButton(a4n.samplerInfo);
59     private final ToolbarButton btnLoadSession = new ToolbarButton(a4n.loadScript);
60     private final ToolbarButton btnExportSession = new ToolbarButton(a4n.exportSamplerConfig);
61     private final ToolbarButton btnRefresh = new ToolbarButton(a4n.refresh);
62     private final ToolbarButton btnResetSampler = new ToolbarButton(a4n.resetSampler);
63    
64 iliev 1778 protected final ToggleButton btnMidiKeyboard = new ToggleButton();
65 iliev 1286 private final ToolbarButton btnLSConsole = new ToolbarButton(a4n.windowLSConsole);
66     private final ToolbarButton btnInstrumentsDb = new ToolbarButton(a4n.windowInstrumentsDb);
67    
68     private final ToolbarButton btnPreferences = new ToolbarButton(a4n.editPreferences);
69    
70 iliev 1323 private final JLabel lLogo = new JLabel(Res.gfxFantasiaLogo);
71    
72 iliev 1286 /** Creates a new instance of <code>StandardBar</code> */
73     public
74     StandardBar() {
75 iliev 1778 //super(Res.gfxToolBarBg);
76     //setPixmapInsets(new Insets(0, 6, 6, 6));
77 iliev 1286
78     setLayout(new BorderLayout());
79     setOpaque(false);
80    
81 iliev 1778 Dimension d = new Dimension(60, 51);
82 iliev 1286 setMinimumSize(d);
83     setPreferredSize(d);
84 iliev 1778 d = new Dimension(Short.MAX_VALUE, 51);
85 iliev 1286 setMaximumSize(d);
86 iliev 1778 setBorder(BorderFactory.createEmptyBorder(0, 5, 2, 5));
87 iliev 1286
88    
89 iliev 1778 //mainPane = new PixmapPane(Res.gfxToolBar);
90     //mainPane.setPixmapInsets(Res.insetsToolBar);
91     mainPane = new MainPane();
92     mainPane.setOpaque(false);
93 iliev 1323 mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.X_AXIS));
94 iliev 1286
95     toolbar.setOpaque(false);
96     toolbar.setFloatable(false);
97    
98     toolbar.add(btnSamplerInfo);
99     toolbar.addSeparator();
100     toolbar.add(btnLoadSession);
101     toolbar.add(btnExportSession);
102     toolbar.add(btnRefresh);
103     toolbar.add(btnResetSampler);
104     toolbar.addSeparator();
105 iliev 1778 btnMidiKeyboard.setIcon(Res.iconMidiKeyboard32);
106     btnMidiKeyboard.addActionListener(new ActionListener() {
107     public void
108     actionPerformed(ActionEvent e) {
109     boolean b = btnMidiKeyboard.isSelected();
110     MainFrame frm = (MainFrame)CC.getMainFrame();
111     if(frm == null) return;
112     frm.setMidiKeyboardVisible(b);
113     }
114     });
115     toolbar.add(btnMidiKeyboard);
116 iliev 1286 toolbar.add(btnLSConsole);
117     toolbar.add(btnInstrumentsDb);
118     toolbar.addSeparator();
119     toolbar.add(btnPreferences);
120    
121 iliev 1323 mainPane.add(toolbar);
122     mainPane.add(Box.createGlue());
123 iliev 1286
124 iliev 1323 mainPane.add(lLogo);
125     mainPane.add(Box.createRigidArea(new Dimension(17, 0)));
126 iliev 1778 FantasiaSubPanel fsp = new FantasiaSubPanel(true, false, false);
127     fsp.add(mainPane);
128     add(fsp);
129 iliev 1286 }
130    
131 iliev 1323 public void
132     showFantasiaLogo(boolean b) { lLogo.setVisible(b); }
133 iliev 1778
134     private Color midColor = new Color(0x797979);
135    
136     @Override
137     public void
138     paintComponent(Graphics g) {
139     Graphics2D g2 = (Graphics2D)g;
140    
141     Paint oldPaint = g2.getPaint();
142     Composite oldComposite = g2.getComposite();
143    
144     double h = getSize().getHeight();
145     double w = getSize().getWidth();
146    
147     FantasiaPainter.paintGradient(g2, 0.0, 0.0, w - 1, h - 1, FantasiaPainter.color5, midColor);
148    
149     FantasiaPainter.Border b = new FantasiaPainter.Border(false, true, false, true);
150     FantasiaPainter.paintBoldOuterBorder(g2, 0, 0, w - 1, h + 2, b);
151    
152     g2.setPaint(oldPaint);
153     g2.setComposite(oldComposite);
154     }
155    
156     class ToggleButton extends JToggleButton {
157     /** Creates a new instance of <code>ToolbarButton</code>. */
158     ToggleButton() {
159     setFocusable(false);
160     }
161    
162     /** Creates a new instance of <code>ToolbarButton</code>. */
163     public
164     ToggleButton(Action a) {
165     super(a);
166     setFocusable(false);
167     }
168    
169     /** This method does nothing. */
170     @Override
171     public void
172     setText(String text) { /* We don't want any text in toolbar buttons */ }
173     }
174    
175     class MainPane extends JPanel {
176     private final Color color1 = new Color(0x505050);
177     private final Color color2 = new Color(0x3e3e3e);
178    
179     @Override
180     public void
181     paintComponent(Graphics g) {
182     Graphics2D g2 = (Graphics2D)g;
183    
184     Paint oldPaint = g2.getPaint();
185     Composite oldComposite = g2.getComposite();
186    
187     double h = getSize().getHeight();
188     double w = getSize().getWidth();
189    
190     FantasiaPainter.paintGradient(g2, 0.0, 0.0, w - 1, h - 1, color1, color2);
191    
192     FantasiaPainter.paintOuterBorder(g2, 0, 0, w - 1, h - 1, true, 0.5f, 0.3f);
193    
194     g2.setPaint(oldPaint);
195     g2.setComposite(oldComposite);
196     }
197     }
198 iliev 1286 }

  ViewVC Help
Powered by ViewVC