/[svn]/jsampler/trunk/src/org/jsampler/view/std/StdA4n.java
ViewVC logotype

Annotation of /jsampler/trunk/src/org/jsampler/view/std/StdA4n.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1688 - (hide annotations) (download)
Thu Feb 14 16:52:36 2008 UTC (16 years, 2 months ago) by iliev
File size: 5903 byte(s)
* Implemented a backend list with option to manually choose a backend
  to connect on startup(Edit/Preferences, then click the `Backend' tab)
  and option to change the backend without restarting JSampler
  (Actions/Change Backend or Ctrl + B)

* Added confirmation messages for removing sampler channels and
  audio/MIDI devices (Edit/Preferences, then click the `View' tab)

1 iliev 1286 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4     * Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5     *
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.std;
24    
25     import java.awt.event.ActionEvent;
26    
27     import java.io.FileOutputStream;
28    
29     import java.util.logging.Level;
30    
31     import javax.swing.AbstractAction;
32     import javax.swing.Action;
33     import javax.swing.JFileChooser;
34    
35     import org.jsampler.CC;
36     import org.jsampler.HF;
37     import org.jsampler.JSPrefs;
38    
39     import org.jsampler.view.LscpFileFilter;
40    
41     import static org.jsampler.view.std.StdI18n.i18n;
42    
43    
44     /**
45     * This class provides an <code>Action</code> instances performing some of the common tasks.
46     * @author Grigor Iliev
47     */
48 iliev 1567 public class StdA4n {
49     protected static StdA4n a4n = new StdA4n();
50    
51 iliev 1286 protected StdA4n() { }
52    
53 iliev 1567 protected JSPrefs preferences() { return CC.getViewConfig().preferences(); }
54 iliev 1286
55     protected void
56     exportSamplerConfig() {
57     String s = preferences().getStringProperty("lastScriptLocation");
58     JFileChooser fc = new JFileChooser(s);
59     fc.setFileFilter(new LscpFileFilter());
60     int result = fc.showSaveDialog(CC.getMainFrame());
61     if(result != JFileChooser.APPROVE_OPTION) return;
62    
63     String path = fc.getCurrentDirectory().getAbsolutePath();
64     preferences().setStringProperty("lastScriptLocation", path);
65    
66     try {
67     FileOutputStream fos = new FileOutputStream(fc.getSelectedFile());
68     fos.write(CC.exportSessionToLscpScript().getBytes("US-ASCII"));
69     fos.close();
70     } catch(Exception x) {
71     CC.getLogger().log(Level.FINE, HF.getErrorMessage(x), x);
72     HF.showErrorMessage(x);
73     }
74     }
75    
76     protected void
77     exportMidiInstrumentMaps() {
78     String s = preferences().getStringProperty("lastScriptLocation");
79     JFileChooser fc = new JFileChooser(s);
80     fc.setFileFilter(new LscpFileFilter());
81     int result = fc.showSaveDialog(CC.getMainFrame());
82     if(result != JFileChooser.APPROVE_OPTION) return;
83    
84     String path = fc.getCurrentDirectory().getAbsolutePath();
85     preferences().setStringProperty("lastScriptLocation", path);
86    
87     try {
88     FileOutputStream fos = new FileOutputStream(fc.getSelectedFile());
89     fos.write(CC.exportInstrMapsToLscpScript().getBytes("US-ASCII"));
90     fos.close();
91     } catch(Exception x) {
92     CC.getLogger().log(Level.FINE, HF.getErrorMessage(x), x);
93     HF.showErrorMessage(x);
94     };
95     }
96    
97     public final Action connect = new Connect();
98    
99     private class Connect extends AbstractAction {
100     Connect() {
101     super(i18n.getMenuLabel("actions.connect"));
102    
103     putValue(SHORT_DESCRIPTION, i18n.getMenuLabel("actions.connect.tt"));
104     }
105    
106     public void
107     actionPerformed(ActionEvent e) { CC.reconnect(); }
108     }
109    
110     public final Action refresh = new Refresh();
111    
112     private class Refresh extends AbstractAction {
113     Refresh() {
114     super(i18n.getMenuLabel("actions.refresh"));
115    
116     putValue(SHORT_DESCRIPTION, i18n.getMenuLabel("actions.refresh.tt"));
117     }
118    
119     public void
120 iliev 1688 actionPerformed(ActionEvent e) {
121     if(!CC.verifyConnection()) {
122     CC.changeBackend();
123     return;
124     }
125     CC.reconnect();
126     }
127 iliev 1286 }
128    
129     public final Action resetSampler = new Reset();
130    
131     private class Reset extends AbstractAction {
132     Reset() {
133     super(i18n.getMenuLabel("actions.resetSampler"));
134    
135     putValue(SHORT_DESCRIPTION, i18n.getMenuLabel("actions.resetSampler.tt"));
136     }
137    
138     public void
139 iliev 1688 actionPerformed(ActionEvent e) {
140     if(!CC.verifyConnection()) return;
141    
142     String s = i18n.getMessage("StdA4n.resetSampler?");
143     if(!HF.showYesNoDialog(CC.getMainFrame(), s)) return;
144     CC.getSamplerModel().resetBackend();
145     }
146 iliev 1286 }
147    
148     public final Action exportSamplerConfig = new ExportSamplerConfig();
149    
150     private class ExportSamplerConfig extends AbstractAction {
151     ExportSamplerConfig() {
152     super(i18n.getMenuLabel("actions.export.samplerConfiguration"));
153    
154     String s = i18n.getMenuLabel("actions.export.samplerConfiguration.tt");
155     putValue(SHORT_DESCRIPTION, s);
156    
157     }
158    
159     public void
160     actionPerformed(ActionEvent e) {
161 iliev 1688 if(!CC.verifyConnection()) return;
162 iliev 1286 exportSamplerConfig();
163     }
164     }
165    
166     public final Action exportMidiInstrumentMaps = new ExportMidiInstrumentMaps();
167    
168     private class ExportMidiInstrumentMaps extends AbstractAction {
169     ExportMidiInstrumentMaps() {
170     super(i18n.getMenuLabel("actions.export.MidiInstrumentMaps"));
171    
172     String s = i18n.getMenuLabel("actions.export.MidiInstrumentMaps.tt");
173     putValue(SHORT_DESCRIPTION, s);
174     }
175    
176     public void
177     actionPerformed(ActionEvent e) {
178 iliev 1688 if(!CC.verifyConnection()) return;
179 iliev 1286 exportMidiInstrumentMaps();
180     }
181     }
182 iliev 1496
183 iliev 1688 public final Action changeBackend = new ChangeBackend();
184    
185     private class ChangeBackend extends AbstractAction {
186     ChangeBackend() {
187     super(i18n.getMenuLabel("actions.changeBackend"));
188    
189     putValue(SHORT_DESCRIPTION, i18n.getMenuLabel("actions.changeBackend.tt"));
190     }
191    
192     public void
193     actionPerformed(ActionEvent e) { CC.changeBackend(); }
194     }
195    
196 iliev 1496 public final Action browseOnlineTutorial = new BrowseOnlineTutorial();
197    
198     private class BrowseOnlineTutorial extends AbstractAction {
199     BrowseOnlineTutorial() {
200     super(i18n.getMenuLabel("help.onlineTutorial"));
201    
202     putValue(SHORT_DESCRIPTION, i18n.getMenuLabel("help.onlineTutorial.tt"));
203     }
204    
205     public void
206     actionPerformed(ActionEvent e) {
207     StdUtils.browse("http://jsampler.sourceforge.net/");
208     }
209     }
210 iliev 1286 }

  ViewVC Help
Powered by ViewVC