blob: 2a492e4527c16905ee67540055ebf6575204ca8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
package net.sourceforge.subsonic.booter.mac;
import com.jgoodies.forms.factories.Borders;
import com.jgoodies.forms.factories.ButtonBarFactory;
import net.sourceforge.subsonic.booter.Main;
import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
/**
* Frame with Subsonic status. Used on Mac installs.
*
* @author Sindre Mehus
*/
public class SubsonicFrame extends JFrame {
private final SubsonicDeployerService deployer;
private StatusPanel statusPanel;
private JButton hideButton;
private JButton exitButton;
public SubsonicFrame(SubsonicDeployerService deployer) {
super("Subsonic");
this.deployer = deployer;
createComponents();
layoutComponents();
addBehaviour();
URL url = Main.class.getResource("/images/subsonic-512.png");
setIconImage(Toolkit.getDefaultToolkit().createImage(url));
}
public void setActive(boolean active) {
if (active) {
pack();
centerComponent();
setVisible(true);
toFront();
} else {
dispose();
}
}
private void centerComponent() {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(screenSize.width / 2 - getWidth() / 2,
screenSize.height / 2 - getHeight() / 2);
}
private void createComponents() {
statusPanel = new StatusPanel(deployer);
hideButton = new JButton("Hide");
exitButton = new JButton("Exit");
}
private void layoutComponents() {
JPanel pane = (JPanel) getContentPane();
pane.setLayout(new BorderLayout(10, 10));
pane.add(statusPanel, BorderLayout.CENTER);
pane.add(ButtonBarFactory.buildRightAlignedBar(hideButton, exitButton), BorderLayout.SOUTH);
pane.setBorder(Borders.DIALOG_BORDER);
}
private void addBehaviour() {
hideButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setActive(false);
}
});
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
}
|