23 |
package org.jsampler.view.fantasia; |
package org.jsampler.view.fantasia; |
24 |
|
|
25 |
import java.awt.BorderLayout; |
import java.awt.BorderLayout; |
26 |
|
import java.awt.Container; |
27 |
import java.awt.Cursor; |
import java.awt.Cursor; |
28 |
import java.awt.Dimension; |
import java.awt.Dimension; |
29 |
import java.awt.Insets; |
import java.awt.Insets; |
30 |
|
import java.awt.Rectangle; |
31 |
|
|
32 |
import java.awt.event.ActionEvent; |
import java.awt.event.ActionEvent; |
33 |
import java.awt.event.ActionListener; |
import java.awt.event.ActionListener; |
41 |
import javax.swing.Box; |
import javax.swing.Box; |
42 |
import javax.swing.BoxLayout; |
import javax.swing.BoxLayout; |
43 |
import javax.swing.JPanel; |
import javax.swing.JPanel; |
44 |
|
import javax.swing.JScrollPane; |
45 |
import javax.swing.ListSelectionModel; |
import javax.swing.ListSelectionModel; |
46 |
|
|
47 |
import net.sf.juife.ComponentList; |
import net.sf.juife.ComponentList; |
225 |
createDevicePane.addPropertyChangeListener(s, new PropertyChangeListener() { |
createDevicePane.addPropertyChangeListener(s, new PropertyChangeListener() { |
226 |
public void |
public void |
227 |
propertyChange(PropertyChangeEvent e) { |
propertyChange(PropertyChangeEvent e) { |
228 |
if(e.getNewValue() == "collapsed") { |
Object o = e.getNewValue(); |
229 |
|
if(o == "collapsed") { |
230 |
if(createDevice) { |
if(createDevice) { |
231 |
createAudioDevice0(pane); |
createAudioDevice0(pane); |
232 |
createDevice = false; |
createDevice = false; |
233 |
} |
} |
234 |
|
} else if(o == "expanded" || o == "expanding/collapsing") { |
235 |
|
ensureCreateDevicePaneIsVisible(); |
236 |
} |
} |
237 |
} |
} |
238 |
}); |
}); |
287 |
pane.btnCreate.setEnabled(false); |
pane.btnCreate.setEnabled(false); |
288 |
final AudioOutputDriver driver = pane.getSelectedDriver(); |
final AudioOutputDriver driver = pane.getSelectedDriver(); |
289 |
final Audio.CreateDevice cmd = |
final Audio.CreateDevice cmd = |
290 |
new Audio.CreateDevice(driver.getName(), driver.getParameters()); |
new Audio.CreateDevice(driver.getName(), pane.getParameters()); |
291 |
|
|
292 |
cmd.addTaskListener(new TaskListener() { |
cmd.addTaskListener(new TaskListener() { |
293 |
public void |
public void |
299 |
|
|
300 |
CC.getTaskQueue().add(cmd); |
CC.getTaskQueue().add(cmd); |
301 |
} |
} |
302 |
|
|
303 |
|
private void |
304 |
|
ensureCreateDevicePaneIsVisible() { |
305 |
|
Container p = createDevicePane.getParent(); |
306 |
|
JScrollPane sp = null; |
307 |
|
int i = createDevicePane.getLocation().y + createDevicePane.getHeight(); |
308 |
|
while(p != null) { |
309 |
|
if(p instanceof JScrollPane) { |
310 |
|
sp = (JScrollPane)p; |
311 |
|
break; |
312 |
|
} |
313 |
|
i += p.getLocation().y; |
314 |
|
p = p.getParent(); |
315 |
|
} |
316 |
|
|
317 |
|
if(sp == null) return; |
318 |
|
sp.getViewport().scrollRectToVisible(new Rectangle(0, i, 5, 5)); |
319 |
|
} |
320 |
} |
} |
321 |
|
|
322 |
private final EventHandler eventHandler = new EventHandler(); |
private final EventHandler eventHandler = new EventHandler(); |