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 |
}); |
}); |
268 |
|
|
269 |
private void |
private void |
270 |
showHidePopup() { |
showHidePopup() { |
271 |
|
if(!CC.verifyConnection()) return; |
272 |
getCreateDevicePane().setCollapsed(!getCreateDevicePane().isCollapsed()); |
getCreateDevicePane().setCollapsed(!getCreateDevicePane().isCollapsed()); |
273 |
} |
} |
274 |
|
|
288 |
pane.btnCreate.setEnabled(false); |
pane.btnCreate.setEnabled(false); |
289 |
final AudioOutputDriver driver = pane.getSelectedDriver(); |
final AudioOutputDriver driver = pane.getSelectedDriver(); |
290 |
final Audio.CreateDevice cmd = |
final Audio.CreateDevice cmd = |
291 |
new Audio.CreateDevice(driver.getName(), driver.getParameters()); |
new Audio.CreateDevice(driver.getName(), pane.getParameters()); |
292 |
|
|
293 |
cmd.addTaskListener(new TaskListener() { |
cmd.addTaskListener(new TaskListener() { |
294 |
public void |
public void |
300 |
|
|
301 |
CC.getTaskQueue().add(cmd); |
CC.getTaskQueue().add(cmd); |
302 |
} |
} |
303 |
|
|
304 |
|
private void |
305 |
|
ensureCreateDevicePaneIsVisible() { |
306 |
|
Container p = createDevicePane.getParent(); |
307 |
|
JScrollPane sp = null; |
308 |
|
int i = createDevicePane.getLocation().y + createDevicePane.getHeight(); |
309 |
|
while(p != null) { |
310 |
|
if(p instanceof JScrollPane) { |
311 |
|
sp = (JScrollPane)p; |
312 |
|
break; |
313 |
|
} |
314 |
|
i += p.getLocation().y; |
315 |
|
p = p.getParent(); |
316 |
|
} |
317 |
|
|
318 |
|
if(sp == null) return; |
319 |
|
sp.getViewport().scrollRectToVisible(new Rectangle(0, i, 5, 5)); |
320 |
|
} |
321 |
} |
} |
322 |
|
|
323 |
private final EventHandler eventHandler = new EventHandler(); |
private final EventHandler eventHandler = new EventHandler(); |