Skip to content

Commit f3ed30e

Browse files
committed
Update buildModeMenu to show device list in a submenu
1 parent c418c63 commit f3ed30e

File tree

1 file changed

+39
-6
lines changed

1 file changed

+39
-6
lines changed

src/processing/mode/android/AndroidEditor.java

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
import java.awt.event.ActionListener;
3131
import java.io.File;
3232
import java.io.IOException;
33-
33+
import java.util.TimerTask;
34+
import java.util.Timer;
3435

3536
public class AndroidEditor extends JavaEditor {
3637
private AndroidMode androidMode;
3738

38-
3939
protected AndroidEditor(Base base, String path, EditorState state, Mode mode) throws Exception {
4040
super(base, path, state, mode);
4141
androidMode = (AndroidMode) mode;
@@ -120,13 +120,46 @@ public void actionPerformed(ActionEvent e) {
120120
item.setEnabled(false);
121121
menu.add(item); */
122122

123-
item = new JMenuItem("Device selector");
124-
item.addActionListener(new ActionListener() {
123+
final JMenu deviceMenu = new JMenu("Device selector");
124+
/*item.addActionListener(new ActionListener() {
125125
public void actionPerformed(ActionEvent e) {
126126
new DeviceSelector();
127127
}
128-
});
129-
menu.add(item);
128+
});*/
129+
130+
JMenuItem noDevicesItem = new JMenuItem("No connected devices");
131+
noDevicesItem.setEnabled(false);
132+
deviceMenu.add(noDevicesItem);
133+
menu.add(deviceMenu);
134+
135+
// start updating device menus
136+
TimerTask task = new TimerTask() {
137+
@Override
138+
public void run() {
139+
Devices devices = Devices.getInstance();
140+
java.util.List<Device> deviceList = devices.findMultiple(false);
141+
142+
if(deviceList.size() == 0) {
143+
if(deviceMenu.getItem(0).isEnabled()) {
144+
deviceMenu.removeAll();
145+
JMenuItem noDevicesItem = new JMenuItem("No connected devices");
146+
noDevicesItem.setEnabled(false);
147+
deviceMenu.add(noDevicesItem);
148+
}
149+
} else {
150+
deviceMenu.removeAll();
151+
JMenuItem deviceItem;
152+
153+
for(int i = 0; i < deviceList.size(); i++) {
154+
deviceItem = new JMenuItem(deviceList.get(i).getName());
155+
deviceItem.setEnabled(true);
156+
deviceMenu.add(deviceItem);
157+
}
158+
}
159+
}
160+
};
161+
Timer timer = new Timer();
162+
timer.schedule(task, 0, 5000);
130163

131164
menu.addSeparator();
132165

0 commit comments

Comments
 (0)