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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
package org.openslx.dozmod.gui.wizard;
import java.awt.Window;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.bwlp.thrift.iface.ImageVersionWrite;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.gui.wizard.page.ImageUploadPage;
import org.openslx.dozmod.gui.wizard.page.ImageUploadSummaryPage;
import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.dozmod.thrift.ThriftActions;
import org.openslx.dozmod.thrift.UploadInitiator.GotUploadTokenCallback;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
@SuppressWarnings("serial")
public class ImageUpdateWizard extends Wizard implements UiFeedback {
private final static Logger LOGGER = Logger.getLogger(ImageCreationWizard.class);
private final UploadWizardState state = new UploadWizardState();
protected ImageUploadPage imageUploadPage;
public ImageUpdateWizard(final Window parent, final ImageDetailsRead image) {
super(parent);
imageUploadPage = new ImageUploadPage(this, state, image);
addPage(imageUploadPage);
}
@Override
protected boolean wantFinish() {
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
state.upload.startUpload(new GotUploadTokenCallback() {
@Override
public void fire() {
// push version data
try {
ThriftActions.updateImageVersion(state.upload.getToken(), new ImageVersionWrite(
state.isRestricted));
} catch (TException e) {
if (state.isRestricted) {
Gui.showMessageBox(
null,
"Unerwarteter Fehler beim Setzen der Option"
+ " 'Enthält lizenzpflichtige Software' für diese Virtuelle Maschine.",
MessageType.WARNING, LOGGER, e);
}
}
}
});
}
}, 500);
return true;
}
@Override
public WizardPage performFinish() {
return new ImageUploadSummaryPage(this, state, false);
}
@Override
protected boolean onCancelRequest() {
if (state.uuid == null)
return true;
boolean confirmed = Gui.showMessageBox(this, "Möchten Sie den Vorgang wirklich abbrechen?",
MessageType.QUESTION_YESNO, null, null);
if (confirmed && state.upload != null) {
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
state.upload.cancelError();
}
});
}
return confirmed;
}
@Override
public boolean wantConfirmQuit() {
return state.upload != null;
}
@Override
public void escapePressed() {
doCancel();
}
@Override
public String getWindowTitle() {
return "Neue VM-Version";
}
}
|