Improvement: disable save button when none of the compute device are selected

This commit is contained in:
Laurent Clouet
2015-01-28 01:02:05 +00:00
parent 8f88e0e3fc
commit 9b66979d60

View File

@@ -32,6 +32,8 @@ public class Settings implements Activity {
private JCheckBox useCPU; private JCheckBox useCPU;
private List<JCheckBoxGPU> useGPUs; private List<JCheckBoxGPU> useGPUs;
JButton saveButton;
public Settings(GuiSwing parent_) { public Settings(GuiSwing parent_) {
parent = parent_; parent = parent_;
cacheDir = null; cacheDir = null;
@@ -125,6 +127,7 @@ public class Settings implements Activity {
} }
int size = 60; int size = 60;
useCPU.addActionListener(new CpuChangeAction());
useCPU.setBounds(start_label_right, n, size, size_height_label); useCPU.setBounds(start_label_right, n, size, size_height_label);
parent.getContentPane().add(useCPU); parent.getContentPane().add(useCPU);
@@ -144,13 +147,23 @@ public class Settings implements Activity {
n += sep; n += sep;
JButton saveButton = new JButton("Start"); saveButton = new JButton("Start");
saveButton.setBounds(start_label_right, n, 80, size_height_label); saveButton.setBounds(start_label_right, n, 80, size_height_label);
saveButton.addActionListener(new SaveAction()); saveButton.addActionListener(new SaveAction());
parent.getContentPane().add(saveButton); parent.getContentPane().add(saveButton);
} }
public void checkDisplaySaveButton() {
boolean selected = useCPU.isSelected();
for (JCheckBoxGPU box : useGPUs) {
if (box.isSelected()) {
selected = true;
}
}
saveButton.setEnabled(selected);
}
class ChooseFileAction implements ActionListener { class ChooseFileAction implements ActionListener {
@Override @Override
@@ -164,6 +177,14 @@ public class Settings implements Activity {
} }
} }
class CpuChangeAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
checkDisplaySaveButton();
}
}
class GpuChangeAction implements ActionListener { class GpuChangeAction implements ActionListener {
@Override @Override
@@ -173,6 +194,7 @@ public class Settings implements Activity {
box.setSelected(false); box.setSelected(false);
} }
} }
checkDisplaySaveButton();
} }
} }